diff --git a/ash-examples/src/lib.rs b/ash-examples/src/lib.rs index ae53f8d6..7b70494d 100644 --- a/ash-examples/src/lib.rs +++ b/ash-examples/src/lib.rs @@ -12,12 +12,9 @@ use std::{ }; use ash::{ - vk, - vk::{ - ext::debug_utils, - khr::{surface, swapchain}, - }, - Device, Entry, Instance, + ext::debug_utils, + khr::{surface, swapchain}, + vk, Device, Entry, Instance, }; use winit::{ event::{ElementState, Event, KeyEvent, WindowEvent}, @@ -233,9 +230,9 @@ impl ExampleBase { #[cfg(any(target_os = "macos", target_os = "ios"))] { - extension_names.push(vk::khr::portability_enumeration::NAME.as_ptr()); + extension_names.push(ash::khr::portability_enumeration::NAME.as_ptr()); // Enabling this extension is a requirement when using `VK_KHR_portability_subset` - extension_names.push(vk::khr::get_physical_device_properties2::NAME.as_ptr()); + extension_names.push(ash::khr::get_physical_device_properties2::NAME.as_ptr()); } let appinfo = vk::ApplicationInfo::default() diff --git a/ash-window/examples/winit.rs b/ash-window/examples/winit.rs index e641dd7a..70537b26 100644 --- a/ash-window/examples/winit.rs +++ b/ash-window/examples/winit.rs @@ -35,7 +35,7 @@ fn main() -> Result<(), Box> { .build(&event_loop)?; // Load the surface extensions - let surface_fn = vk::khr::surface::Instance::new(&entry, &instance); + let surface_fn = ash::khr::surface::Instance::new(&entry, &instance); let mut surface = None; let _ = event_loop.run(move |event, elwp| match event { diff --git a/ash-window/src/lib.rs b/ash-window/src/lib.rs index bfab2f23..edb001a2 100644 --- a/ash-window/src/lib.rs +++ b/ash-window/src/lib.rs @@ -3,15 +3,10 @@ use std::os::raw::c_char; use ash::{ + ext::metal_surface, + khr::{android_surface, surface, wayland_surface, win32_surface, xcb_surface, xlib_surface}, prelude::*, - vk, - vk::{ - ext::metal_surface, - khr::{ - android_surface, surface, wayland_surface, win32_surface, xcb_surface, xlib_surface, - }, - }, - Entry, Instance, + vk, Entry, Instance, }; use raw_window_handle::{RawDisplayHandle, RawWindowHandle}; diff --git a/ash/src/device.rs b/ash/src/device.rs index 3b930b9e..25050d21 100644 --- a/ash/src/device.rs +++ b/ash/src/device.rs @@ -12,14 +12,14 @@ use core::ptr; pub struct Device { pub(crate) handle: vk::Device, - pub(crate) device_fn_1_0: vk::DeviceFnV1_0, - pub(crate) device_fn_1_1: vk::DeviceFnV1_1, - pub(crate) device_fn_1_2: vk::DeviceFnV1_2, - pub(crate) device_fn_1_3: vk::DeviceFnV1_3, + pub(crate) device_fn_1_0: crate::DeviceFnV1_0, + pub(crate) device_fn_1_1: crate::DeviceFnV1_1, + pub(crate) device_fn_1_2: crate::DeviceFnV1_2, + pub(crate) device_fn_1_3: crate::DeviceFnV1_3, } impl Device { - pub unsafe fn load(instance_fn: &vk::InstanceFnV1_0, device: vk::Device) -> Self { + pub unsafe fn load(instance_fn: &crate::InstanceFnV1_0, device: vk::Device) -> Self { Self::load_with( |name| mem::transmute((instance_fn.get_device_proc_addr)(device, name.as_ptr())), device, @@ -32,20 +32,20 @@ impl Device { ) -> Self { Self::from_parts_1_3( device, - vk::DeviceFnV1_0::load(&mut load_fn), - vk::DeviceFnV1_1::load(&mut load_fn), - vk::DeviceFnV1_2::load(&mut load_fn), - vk::DeviceFnV1_3::load(&mut load_fn), + crate::DeviceFnV1_0::load(&mut load_fn), + crate::DeviceFnV1_1::load(&mut load_fn), + crate::DeviceFnV1_2::load(&mut load_fn), + crate::DeviceFnV1_3::load(&mut load_fn), ) } #[inline] pub fn from_parts_1_3( handle: vk::Device, - device_fn_1_0: vk::DeviceFnV1_0, - device_fn_1_1: vk::DeviceFnV1_1, - device_fn_1_2: vk::DeviceFnV1_2, - device_fn_1_3: vk::DeviceFnV1_3, + device_fn_1_0: crate::DeviceFnV1_0, + device_fn_1_1: crate::DeviceFnV1_1, + device_fn_1_2: crate::DeviceFnV1_2, + device_fn_1_3: crate::DeviceFnV1_3, ) -> Self { Self { handle, @@ -66,7 +66,7 @@ impl Device { /// Vulkan core 1.3 impl Device { #[inline] - pub fn fp_v1_3(&self) -> &vk::DeviceFnV1_3 { + pub fn fp_v1_3(&self) -> &crate::DeviceFnV1_3 { &self.device_fn_1_3 } @@ -556,7 +556,7 @@ impl Device { /// Vulkan core 1.2 impl Device { #[inline] - pub fn fp_v1_2(&self) -> &vk::DeviceFnV1_2 { + pub fn fp_v1_2(&self) -> &crate::DeviceFnV1_2 { &self.device_fn_1_2 } @@ -736,7 +736,7 @@ impl Device { /// Vulkan core 1.1 impl Device { #[inline] - pub fn fp_v1_1(&self) -> &vk::DeviceFnV1_1 { + pub fn fp_v1_1(&self) -> &crate::DeviceFnV1_1 { &self.device_fn_1_1 } @@ -982,7 +982,7 @@ impl Device { /// Vulkan core 1.0 impl Device { #[inline] - pub fn fp_v1_0(&self) -> &vk::DeviceFnV1_0 { + pub fn fp_v1_0(&self) -> &crate::DeviceFnV1_0 { &self.device_fn_1_0 } diff --git a/ash/src/entry.rs b/ash/src/entry.rs index 6148399a..7af6b263 100644 --- a/ash/src/entry.rs +++ b/ash/src/entry.rs @@ -1,4 +1,6 @@ use crate::instance::Instance; +#[cfg(doc)] +use crate::khr; use crate::prelude::*; use crate::vk; use crate::RawPtr; @@ -14,9 +16,9 @@ use libloading::Library; /// Holds the Vulkan functions independent of a particular instance #[derive(Clone)] pub struct Entry { - static_fn: vk::StaticFn, - entry_fn_1_0: vk::EntryFnV1_0, - entry_fn_1_1: vk::EntryFnV1_1, + static_fn: crate::StaticFn, + entry_fn_1_0: crate::EntryFnV1_0, + entry_fn_1_1: crate::EntryFnV1_1, #[cfg(feature = "loaded")] _lib_guard: Option>, } @@ -111,7 +113,7 @@ impl Entry { // Sound because we're linking to Vulkan, which provides a vkGetInstanceProcAddr that has // defined behavior in this use. unsafe { - Self::from_static_fn(vk::StaticFn { + Self::from_static_fn(crate::StaticFn { get_instance_proc_addr: vkGetInstanceProcAddr, }) } @@ -133,7 +135,7 @@ impl Entry { .map_err(LoadingError::LibraryLoadFailure) .map(alloc::sync::Arc::new)?; - let static_fn = vk::StaticFn::load_checked(|name| { + let static_fn = crate::StaticFn::load_checked(|name| { lib.get(name.to_bytes_with_nul()) .map(|symbol| *symbol) .unwrap_or(ptr::null_mut()) @@ -145,13 +147,13 @@ impl Entry { }) } - /// Load entry points based on an already-loaded [`vk::StaticFn`] + /// Load entry points based on an already-loaded [`crate::StaticFn`] /// /// # Safety /// /// `static_fn` must contain valid function pointers that comply with the semantics specified /// by Vulkan 1.0, which must remain valid for at least the lifetime of the returned [`Entry`]. - pub unsafe fn from_static_fn(static_fn: vk::StaticFn) -> Self { + pub unsafe fn from_static_fn(static_fn: crate::StaticFn) -> Self { let load_fn = move |name: &ffi::CStr| { mem::transmute((static_fn.get_instance_proc_addr)( vk::Instance::null(), @@ -161,16 +163,16 @@ impl Entry { Self::from_parts_1_1( static_fn, - vk::EntryFnV1_0::load(load_fn), - vk::EntryFnV1_1::load(load_fn), + crate::EntryFnV1_0::load(load_fn), + crate::EntryFnV1_1::load(load_fn), ) } #[inline] pub fn from_parts_1_1( - static_fn: vk::StaticFn, - entry_fn_1_0: vk::EntryFnV1_0, - entry_fn_1_1: vk::EntryFnV1_1, + static_fn: crate::StaticFn, + entry_fn_1_0: crate::EntryFnV1_0, + entry_fn_1_1: crate::EntryFnV1_1, ) -> Self { Self { static_fn, @@ -182,12 +184,12 @@ impl Entry { } #[inline] - pub fn fp_v1_0(&self) -> &vk::EntryFnV1_0 { + pub fn fp_v1_0(&self) -> &crate::EntryFnV1_0 { &self.entry_fn_1_0 } #[inline] - pub fn static_fn(&self) -> &vk::StaticFn { + pub fn static_fn(&self) -> &crate::StaticFn { &self.static_fn } @@ -235,7 +237,7 @@ impl Entry { /// # Safety /// /// The resulting [`Instance`] and any function-pointer objects (e.g. [`Device`][crate::Device] - /// and extensions like [`vk::khr::swapchain::Device`]) loaded from it may not be used after + /// and extensions like [`khr::swapchain::Device`]) loaded from it may not be used after /// this [`Entry`] object is dropped, unless it was crated using [`Entry::linked()`] or /// [`Entry::from_parts_1_1()`]. /// @@ -294,7 +296,7 @@ impl Entry { /// Vulkan core 1.1 impl Entry { #[inline] - pub fn fp_v1_1(&self) -> &vk::EntryFnV1_1 { + pub fn fp_v1_1(&self) -> &crate::EntryFnV1_1 { &self.entry_fn_1_1 } @@ -319,7 +321,7 @@ impl Default for Entry { } } -impl vk::StaticFn { +impl crate::StaticFn { pub fn load_checked(mut _f: F) -> Result where F: FnMut(&ffi::CStr) -> *const ffi::c_void, diff --git a/ash/src/extensions/amd/buffer_marker.rs b/ash/src/extensions/amd/buffer_marker.rs index f95ecb20..f01190e4 100644 --- a/ash/src/extensions/amd/buffer_marker.rs +++ b/ash/src/extensions/amd/buffer_marker.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::amd::buffer_marker::Device { +impl crate::amd::buffer_marker::Device { /// #[inline] pub unsafe fn cmd_write_buffer_marker( diff --git a/ash/src/extensions/amd/shader_info.rs b/ash/src/extensions/amd/shader_info.rs index e573721a..800f40f8 100644 --- a/ash/src/extensions/amd/shader_info.rs +++ b/ash/src/extensions/amd/shader_info.rs @@ -5,7 +5,7 @@ use crate::vk; use alloc::vec::Vec; use core::mem; -impl vk::amd::shader_info::Device { +impl crate::amd::shader_info::Device { /// #[inline] pub unsafe fn get_shader_info( diff --git a/ash/src/extensions/amdx/shader_enqueue.rs b/ash/src/extensions/amdx/shader_enqueue.rs index ac800db0..f94e67af 100644 --- a/ash/src/extensions/amdx/shader_enqueue.rs +++ b/ash/src/extensions/amdx/shader_enqueue.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::amdx::shader_enqueue::Device { +impl crate::amdx::shader_enqueue::Device { /// #[inline] pub unsafe fn create_execution_graph_pipelines( diff --git a/ash/src/extensions/android/external_memory_android_hardware_buffer.rs b/ash/src/extensions/android/external_memory_android_hardware_buffer.rs index 594cc694..d94deb3d 100644 --- a/ash/src/extensions/android/external_memory_android_hardware_buffer.rs +++ b/ash/src/extensions/android/external_memory_android_hardware_buffer.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::android::external_memory_android_hardware_buffer::Device { +impl crate::android::external_memory_android_hardware_buffer::Device { /// #[inline] pub unsafe fn get_android_hardware_buffer_properties( diff --git a/ash/src/extensions/ext/acquire_drm_display.rs b/ash/src/extensions/ext/acquire_drm_display.rs index 959c60ad..9ed928f7 100644 --- a/ash/src/extensions/ext/acquire_drm_display.rs +++ b/ash/src/extensions/ext/acquire_drm_display.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::ext::acquire_drm_display::Instance { +impl crate::ext::acquire_drm_display::Instance { /// #[inline] pub unsafe fn acquire_drm_display( diff --git a/ash/src/extensions/ext/buffer_device_address.rs b/ash/src/extensions/ext/buffer_device_address.rs index 89d4cf54..52b07413 100644 --- a/ash/src/extensions/ext/buffer_device_address.rs +++ b/ash/src/extensions/ext/buffer_device_address.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::buffer_device_address::Device { +impl crate::ext::buffer_device_address::Device { /// #[inline] pub unsafe fn get_buffer_device_address( diff --git a/ash/src/extensions/ext/calibrated_timestamps.rs b/ash/src/extensions/ext/calibrated_timestamps.rs index 52da074a..3005d3b6 100644 --- a/ash/src/extensions/ext/calibrated_timestamps.rs +++ b/ash/src/extensions/ext/calibrated_timestamps.rs @@ -5,7 +5,7 @@ use crate::vk; use alloc::vec::Vec; use core::mem; -impl vk::ext::calibrated_timestamps::Device { +impl crate::ext::calibrated_timestamps::Device { /// /// /// Returns a tuple containing `(timestamps, max_deviation)` @@ -29,7 +29,7 @@ impl vk::ext::calibrated_timestamps::Device { } } -impl vk::ext::calibrated_timestamps::Instance { +impl crate::ext::calibrated_timestamps::Instance { /// #[inline] pub unsafe fn get_physical_device_calibrateable_time_domains( diff --git a/ash/src/extensions/ext/debug_marker.rs b/ash/src/extensions/ext/debug_marker.rs index 83697a79..0e584fe2 100755 --- a/ash/src/extensions/ext/debug_marker.rs +++ b/ash/src/extensions/ext/debug_marker.rs @@ -3,7 +3,7 @@ use crate::prelude::*; use crate::vk; -impl vk::ext::debug_marker::Device { +impl crate::ext::debug_marker::Device { /// #[inline] pub unsafe fn debug_marker_set_object_name( diff --git a/ash/src/extensions/ext/debug_report.rs b/ash/src/extensions/ext/debug_report.rs index 077745f8..d29a322f 100755 --- a/ash/src/extensions/ext/debug_report.rs +++ b/ash/src/extensions/ext/debug_report.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::ext::debug_report::Instance { +impl crate::ext::debug_report::Instance { /// #[inline] pub unsafe fn destroy_debug_report_callback( diff --git a/ash/src/extensions/ext/debug_utils.rs b/ash/src/extensions/ext/debug_utils.rs index fd8e3e8f..ac697f42 100755 --- a/ash/src/extensions/ext/debug_utils.rs +++ b/ash/src/extensions/ext/debug_utils.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::ext::debug_utils::Device { +impl crate::ext::debug_utils::Device { /// #[inline] pub unsafe fn set_debug_utils_object_name( @@ -77,7 +77,7 @@ impl vk::ext::debug_utils::Device { } } -impl vk::ext::debug_utils::Instance { +impl crate::ext::debug_utils::Instance { /// #[inline] pub unsafe fn create_debug_utils_messenger( diff --git a/ash/src/extensions/ext/descriptor_buffer.rs b/ash/src/extensions/ext/descriptor_buffer.rs index fc09c273..a5e9ab85 100644 --- a/ash/src/extensions/ext/descriptor_buffer.rs +++ b/ash/src/extensions/ext/descriptor_buffer.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::ext::descriptor_buffer::Device { +impl crate::ext::descriptor_buffer::Device { /// #[inline] pub unsafe fn get_descriptor_set_layout_size( diff --git a/ash/src/extensions/ext/extended_dynamic_state.rs b/ash/src/extensions/ext/extended_dynamic_state.rs index fa212e51..dfe88267 100644 --- a/ash/src/extensions/ext/extended_dynamic_state.rs +++ b/ash/src/extensions/ext/extended_dynamic_state.rs @@ -3,7 +3,7 @@ use crate::vk; use core::ptr; -impl vk::ext::extended_dynamic_state::Device { +impl crate::ext::extended_dynamic_state::Device { /// #[inline] pub unsafe fn cmd_set_cull_mode( diff --git a/ash/src/extensions/ext/extended_dynamic_state2.rs b/ash/src/extensions/ext/extended_dynamic_state2.rs index fc28de45..708d7341 100644 --- a/ash/src/extensions/ext/extended_dynamic_state2.rs +++ b/ash/src/extensions/ext/extended_dynamic_state2.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::extended_dynamic_state2::Device { +impl crate::ext::extended_dynamic_state2::Device { /// #[inline] pub unsafe fn cmd_set_patch_control_points( diff --git a/ash/src/extensions/ext/extended_dynamic_state3.rs b/ash/src/extensions/ext/extended_dynamic_state3.rs index dbc688cf..06e12a74 100644 --- a/ash/src/extensions/ext/extended_dynamic_state3.rs +++ b/ash/src/extensions/ext/extended_dynamic_state3.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::extended_dynamic_state3::Device { +impl crate::ext::extended_dynamic_state3::Device { /// #[inline] pub unsafe fn cmd_set_tessellation_domain_origin( diff --git a/ash/src/extensions/ext/full_screen_exclusive.rs b/ash/src/extensions/ext/full_screen_exclusive.rs index ebe596d6..f2b9791f 100644 --- a/ash/src/extensions/ext/full_screen_exclusive.rs +++ b/ash/src/extensions/ext/full_screen_exclusive.rs @@ -5,7 +5,7 @@ use crate::vk; use alloc::vec::Vec; use core::mem; -impl vk::ext::full_screen_exclusive::Device { +impl crate::ext::full_screen_exclusive::Device { /// #[inline] pub unsafe fn acquire_full_screen_exclusive_mode( @@ -40,7 +40,7 @@ impl vk::ext::full_screen_exclusive::Device { } } -impl vk::ext::full_screen_exclusive::Instance { +impl crate::ext::full_screen_exclusive::Instance { /// #[inline] pub unsafe fn get_physical_device_surface_present_modes2( diff --git a/ash/src/extensions/ext/hdr_metadata.rs b/ash/src/extensions/ext/hdr_metadata.rs index c44b05c6..10c90ec6 100644 --- a/ash/src/extensions/ext/hdr_metadata.rs +++ b/ash/src/extensions/ext/hdr_metadata.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::hdr_metadata::Device { +impl crate::ext::hdr_metadata::Device { /// #[inline] pub unsafe fn set_hdr_metadata( diff --git a/ash/src/extensions/ext/headless_surface.rs b/ash/src/extensions/ext/headless_surface.rs index 68fe9439..a3066e81 100644 --- a/ash/src/extensions/ext/headless_surface.rs +++ b/ash/src/extensions/ext/headless_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::ext::headless_surface::Instance { +impl crate::ext::headless_surface::Instance { /// #[inline] pub unsafe fn create_headless_surface( diff --git a/ash/src/extensions/ext/host_image_copy.rs b/ash/src/extensions/ext/host_image_copy.rs index 6af4caa6..20489640 100644 --- a/ash/src/extensions/ext/host_image_copy.rs +++ b/ash/src/extensions/ext/host_image_copy.rs @@ -2,8 +2,10 @@ use crate::prelude::*; use crate::vk; +#[cfg(doc)] +use crate::{ext, khr}; -impl vk::ext::host_image_copy::Device { +impl crate::ext::host_image_copy::Device { /// #[inline] pub unsafe fn copy_memory_to_image( @@ -47,10 +49,10 @@ impl vk::ext::host_image_copy::Device { /// /// - /// Also available as [`vk::khr::maintenance5::Device::get_image_subresource_layout2()`] + /// Also available as [`khr::maintenance5::Device::get_image_subresource_layout2()`] /// when [`VK_KHR_maintenance5`] is enabled. /// - /// Also available as [`vk::ext::image_compression_control::Device::get_image_subresource_layout2()`] + /// Also available as [`ext::image_compression_control::Device::get_image_subresource_layout2()`] /// when [`VK_EXT_image_compression_control`] is enabled. /// /// [`VK_KHR_maintenance5`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance5.html diff --git a/ash/src/extensions/ext/image_compression_control.rs b/ash/src/extensions/ext/image_compression_control.rs index a849cf0a..436431bd 100644 --- a/ash/src/extensions/ext/image_compression_control.rs +++ b/ash/src/extensions/ext/image_compression_control.rs @@ -1,14 +1,16 @@ //! use crate::vk; +#[cfg(doc)] +use crate::{ext, khr}; -impl vk::ext::image_compression_control::Device { +impl crate::ext::image_compression_control::Device { /// /// - /// Also available as [`vk::khr::maintenance5::Device::get_image_subresource_layout2()`] + /// Also available as [`khr::maintenance5::Device::get_image_subresource_layout2()`] /// when [`VK_KHR_maintenance5`] is enabled. /// - /// Also available as [`vk::ext::host_image_copy::Device::get_image_subresource_layout2()`] + /// Also available as [`ext::host_image_copy::Device::get_image_subresource_layout2()`] /// when [`VK_EXT_host_image_copy`] is enabled. /// /// [`VK_KHR_maintenance5`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance5.html diff --git a/ash/src/extensions/ext/image_drm_format_modifier.rs b/ash/src/extensions/ext/image_drm_format_modifier.rs index e6233177..c07e1471 100644 --- a/ash/src/extensions/ext/image_drm_format_modifier.rs +++ b/ash/src/extensions/ext/image_drm_format_modifier.rs @@ -3,7 +3,7 @@ use crate::prelude::*; use crate::vk; -impl vk::ext::image_drm_format_modifier::Device { +impl crate::ext::image_drm_format_modifier::Device { /// #[inline] pub unsafe fn get_image_drm_format_modifier_properties( diff --git a/ash/src/extensions/ext/mesh_shader.rs b/ash/src/extensions/ext/mesh_shader.rs index a87451ee..eecf84c6 100644 --- a/ash/src/extensions/ext/mesh_shader.rs +++ b/ash/src/extensions/ext/mesh_shader.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::mesh_shader::Device { +impl crate::ext::mesh_shader::Device { /// #[inline] pub unsafe fn cmd_draw_mesh_tasks( diff --git a/ash/src/extensions/ext/metal_surface.rs b/ash/src/extensions/ext/metal_surface.rs index e11730c3..99bcb619 100644 --- a/ash/src/extensions/ext/metal_surface.rs +++ b/ash/src/extensions/ext/metal_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::ext::metal_surface::Instance { +impl crate::ext::metal_surface::Instance { /// #[inline] pub unsafe fn create_metal_surface( diff --git a/ash/src/extensions/ext/pipeline_properties.rs b/ash/src/extensions/ext/pipeline_properties.rs index e8603b55..3ef7d406 100644 --- a/ash/src/extensions/ext/pipeline_properties.rs +++ b/ash/src/extensions/ext/pipeline_properties.rs @@ -3,13 +3,13 @@ use crate::prelude::*; use crate::vk; -impl vk::ext::pipeline_properties::Device { +impl crate::ext::pipeline_properties::Device { /// #[inline] pub unsafe fn get_pipeline_properties( &self, pipeline_info: &vk::PipelineInfoEXT<'_>, - pipeline_properties: &mut impl vk::ext::pipeline_properties::GetPipelinePropertiesEXTParamPipelineProperties, + pipeline_properties: &mut impl crate::ext::pipeline_properties::GetPipelinePropertiesEXTParamPipelineProperties, ) -> VkResult<()> { (self.fp.get_pipeline_properties_ext)( self.handle, diff --git a/ash/src/extensions/ext/private_data.rs b/ash/src/extensions/ext/private_data.rs index 1181bd4b..535fe37c 100644 --- a/ash/src/extensions/ext/private_data.rs +++ b/ash/src/extensions/ext/private_data.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::ext::private_data::Device { +impl crate::ext::private_data::Device { /// #[inline] pub unsafe fn create_private_data_slot( diff --git a/ash/src/extensions/ext/sample_locations.rs b/ash/src/extensions/ext/sample_locations.rs index df699f8e..b467f8cf 100644 --- a/ash/src/extensions/ext/sample_locations.rs +++ b/ash/src/extensions/ext/sample_locations.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::sample_locations::Device { +impl crate::ext::sample_locations::Device { /// #[inline] pub unsafe fn cmd_set_sample_locations( @@ -14,7 +14,7 @@ impl vk::ext::sample_locations::Device { } } -impl vk::ext::sample_locations::Instance { +impl crate::ext::sample_locations::Instance { /// #[inline] pub unsafe fn get_physical_device_multisample_properties( diff --git a/ash/src/extensions/ext/shader_object.rs b/ash/src/extensions/ext/shader_object.rs index e8c30a11..cd77e420 100644 --- a/ash/src/extensions/ext/shader_object.rs +++ b/ash/src/extensions/ext/shader_object.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::ptr; -impl vk::ext::shader_object::Device { +impl crate::ext::shader_object::Device { /// #[inline] pub unsafe fn create_shaders( diff --git a/ash/src/extensions/ext/swapchain_maintenance1.rs b/ash/src/extensions/ext/swapchain_maintenance1.rs index 42f7a6e6..53147422 100644 --- a/ash/src/extensions/ext/swapchain_maintenance1.rs +++ b/ash/src/extensions/ext/swapchain_maintenance1.rs @@ -3,7 +3,7 @@ use crate::prelude::*; use crate::vk; -impl vk::ext::swapchain_maintenance1::Device { +impl crate::ext::swapchain_maintenance1::Device { /// #[inline] pub unsafe fn release_swapchain_images( diff --git a/ash/src/extensions/ext/tooling_info.rs b/ash/src/extensions/ext/tooling_info.rs index 592f1aaa..0f00f08b 100644 --- a/ash/src/extensions/ext/tooling_info.rs +++ b/ash/src/extensions/ext/tooling_info.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; -impl vk::ext::tooling_info::Instance { +impl crate::ext::tooling_info::Instance { /// #[inline] pub unsafe fn get_physical_device_tool_properties( diff --git a/ash/src/extensions/ext/vertex_input_dynamic_state.rs b/ash/src/extensions/ext/vertex_input_dynamic_state.rs index 796b81bd..2e7fd7d6 100644 --- a/ash/src/extensions/ext/vertex_input_dynamic_state.rs +++ b/ash/src/extensions/ext/vertex_input_dynamic_state.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::ext::vertex_input_dynamic_state::Device { +impl crate::ext::vertex_input_dynamic_state::Device { /// #[inline] pub unsafe fn cmd_set_vertex_input( diff --git a/ash/src/extensions/google/display_timing.rs b/ash/src/extensions/google/display_timing.rs index b95437da..06de2092 100644 --- a/ash/src/extensions/google/display_timing.rs +++ b/ash/src/extensions/google/display_timing.rs @@ -5,7 +5,7 @@ use crate::vk; use alloc::vec::Vec; use core::mem; -impl vk::google::display_timing::Device { +impl crate::google::display_timing::Device { /// #[inline] pub unsafe fn get_past_presentation_timing( diff --git a/ash/src/extensions/khr/acceleration_structure.rs b/ash/src/extensions/khr/acceleration_structure.rs index 07c4e706..87e98c04 100644 --- a/ash/src/extensions/khr/acceleration_structure.rs +++ b/ash/src/extensions/khr/acceleration_structure.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::khr::acceleration_structure::Device { +impl crate::khr::acceleration_structure::Device { /// #[inline] pub unsafe fn create_acceleration_structure( diff --git a/ash/src/extensions/khr/android_surface.rs b/ash/src/extensions/khr/android_surface.rs index dcf54707..6aa5267f 100755 --- a/ash/src/extensions/khr/android_surface.rs +++ b/ash/src/extensions/khr/android_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::android_surface::Instance { +impl crate::khr::android_surface::Instance { /// #[inline] pub unsafe fn create_android_surface( diff --git a/ash/src/extensions/khr/buffer_device_address.rs b/ash/src/extensions/khr/buffer_device_address.rs index be260f89..b68f6930 100644 --- a/ash/src/extensions/khr/buffer_device_address.rs +++ b/ash/src/extensions/khr/buffer_device_address.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::buffer_device_address::Device { +impl crate::khr::buffer_device_address::Device { /// #[inline] pub unsafe fn get_buffer_device_address( diff --git a/ash/src/extensions/khr/calibrated_timestamps.rs b/ash/src/extensions/khr/calibrated_timestamps.rs index 7cc6b929..eaf0c6ba 100644 --- a/ash/src/extensions/khr/calibrated_timestamps.rs +++ b/ash/src/extensions/khr/calibrated_timestamps.rs @@ -5,7 +5,7 @@ use crate::vk; use alloc::vec::Vec; use core::mem; -impl vk::khr::calibrated_timestamps::Device { +impl crate::khr::calibrated_timestamps::Device { /// /// /// Returns a tuple containing `(timestamps, max_deviation)` @@ -30,7 +30,7 @@ impl vk::khr::calibrated_timestamps::Device { } } -impl vk::khr::calibrated_timestamps::Instance { +impl crate::khr::calibrated_timestamps::Instance { /// #[inline] pub unsafe fn get_physical_device_calibrateable_time_domains( diff --git a/ash/src/extensions/khr/cooperative_matrix.rs b/ash/src/extensions/khr/cooperative_matrix.rs index 1524e1de..d8c0ef51 100644 --- a/ash/src/extensions/khr/cooperative_matrix.rs +++ b/ash/src/extensions/khr/cooperative_matrix.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; -impl vk::khr::cooperative_matrix::Instance { +impl crate::khr::cooperative_matrix::Instance { /// #[inline] pub unsafe fn get_physical_device_cooperative_matrix_properties( diff --git a/ash/src/extensions/khr/copy_commands2.rs b/ash/src/extensions/khr/copy_commands2.rs index c2a47b53..e04107d8 100644 --- a/ash/src/extensions/khr/copy_commands2.rs +++ b/ash/src/extensions/khr/copy_commands2.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::copy_commands2::Device { +impl crate::khr::copy_commands2::Device { /// #[inline] pub unsafe fn cmd_copy_buffer2( diff --git a/ash/src/extensions/khr/create_renderpass2.rs b/ash/src/extensions/khr/create_renderpass2.rs index f85b7e00..7ff94dc7 100644 --- a/ash/src/extensions/khr/create_renderpass2.rs +++ b/ash/src/extensions/khr/create_renderpass2.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::create_renderpass2::Device { +impl crate::khr::create_renderpass2::Device { /// #[inline] pub unsafe fn create_render_pass2( diff --git a/ash/src/extensions/khr/deferred_host_operations.rs b/ash/src/extensions/khr/deferred_host_operations.rs index a8463151..3f71788c 100644 --- a/ash/src/extensions/khr/deferred_host_operations.rs +++ b/ash/src/extensions/khr/deferred_host_operations.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::deferred_host_operations::Device { +impl crate::khr::deferred_host_operations::Device { /// #[inline] pub unsafe fn create_deferred_operation( diff --git a/ash/src/extensions/khr/device_group.rs b/ash/src/extensions/khr/device_group.rs index 9f1278fc..537c4027 100644 --- a/ash/src/extensions/khr/device_group.rs +++ b/ash/src/extensions/khr/device_group.rs @@ -1,11 +1,13 @@ //! +#[cfg(doc)] +use crate::khr; use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -impl vk::khr::device_group::Device { +impl crate::khr::device_group::Device { /// #[inline] pub unsafe fn get_device_group_peer_memory_features( @@ -52,7 +54,7 @@ impl vk::khr::device_group::Device { /// Requires [`VK_KHR_surface`] to be enabled. /// - /// Also available as [`vk::khr::swapchain::Device::get_device_group_present_capabilities()`] since [Vulkan 1.1]. + /// Also available as [`khr::swapchain::Device::get_device_group_present_capabilities()`] since [Vulkan 1.1]. /// /// /// @@ -72,7 +74,7 @@ impl vk::khr::device_group::Device { /// Requires [`VK_KHR_surface`] to be enabled. /// - /// Also available as [`vk::khr::swapchain::Device::get_device_group_surface_present_modes()`] since [Vulkan 1.1]. + /// Also available as [`khr::swapchain::Device::get_device_group_surface_present_modes()`] since [Vulkan 1.1]. /// /// /// @@ -96,7 +98,7 @@ impl vk::khr::device_group::Device { /// /// Requires [`VK_KHR_swapchain`] to be enabled. /// - /// Also available as [`vk::khr::swapchain::Device::acquire_next_image2()`] since [Vulkan 1.1]. + /// Also available as [`khr::swapchain::Device::acquire_next_image2()`] since [Vulkan 1.1]. /// /// /// @@ -118,10 +120,10 @@ impl vk::khr::device_group::Device { } } -impl vk::khr::device_group::Instance { +impl crate::khr::device_group::Instance { /// Requires [`VK_KHR_surface`] to be enabled. /// - /// Also available as [`vk::khr::swapchain::Instance::get_physical_device_present_rectangles()`] since [Vulkan 1.1]. + /// Also available as [`khr::swapchain::Instance::get_physical_device_present_rectangles()`] since [Vulkan 1.1]. /// /// /// diff --git a/ash/src/extensions/khr/device_group_creation.rs b/ash/src/extensions/khr/device_group_creation.rs index fbcd8ef7..ad85ee07 100644 --- a/ash/src/extensions/khr/device_group_creation.rs +++ b/ash/src/extensions/khr/device_group_creation.rs @@ -5,7 +5,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::khr::device_group_creation::Instance { +impl crate::khr::device_group_creation::Instance { /// Retrieve the number of elements to pass to [`enumerate_physical_device_groups()`][Self::enumerate_physical_device_groups()] #[inline] pub unsafe fn enumerate_physical_device_groups_len(&self) -> VkResult { diff --git a/ash/src/extensions/khr/display.rs b/ash/src/extensions/khr/display.rs index 79d1ff70..801efbb2 100755 --- a/ash/src/extensions/khr/display.rs +++ b/ash/src/extensions/khr/display.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::khr::display::Instance { +impl crate::khr::display::Instance { /// #[inline] pub unsafe fn get_physical_device_display_properties( diff --git a/ash/src/extensions/khr/display_swapchain.rs b/ash/src/extensions/khr/display_swapchain.rs index eef4ec7b..b5d3e8b4 100755 --- a/ash/src/extensions/khr/display_swapchain.rs +++ b/ash/src/extensions/khr/display_swapchain.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; -impl vk::khr::display_swapchain::Device { +impl crate::khr::display_swapchain::Device { /// #[inline] pub unsafe fn create_shared_swapchains( diff --git a/ash/src/extensions/khr/draw_indirect_count.rs b/ash/src/extensions/khr/draw_indirect_count.rs index d137da3c..00a97113 100644 --- a/ash/src/extensions/khr/draw_indirect_count.rs +++ b/ash/src/extensions/khr/draw_indirect_count.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::draw_indirect_count::Device { +impl crate::khr::draw_indirect_count::Device { /// #[inline] pub unsafe fn cmd_draw_indexed_indirect_count( diff --git a/ash/src/extensions/khr/dynamic_rendering.rs b/ash/src/extensions/khr/dynamic_rendering.rs index 3bf81dc8..2d06be76 100644 --- a/ash/src/extensions/khr/dynamic_rendering.rs +++ b/ash/src/extensions/khr/dynamic_rendering.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::dynamic_rendering::Device { +impl crate::khr::dynamic_rendering::Device { /// #[inline] pub unsafe fn cmd_begin_rendering( diff --git a/ash/src/extensions/khr/dynamic_rendering_local_read.rs b/ash/src/extensions/khr/dynamic_rendering_local_read.rs index 5586785c..bfd22649 100644 --- a/ash/src/extensions/khr/dynamic_rendering_local_read.rs +++ b/ash/src/extensions/khr/dynamic_rendering_local_read.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::dynamic_rendering_local_read::Device { +impl crate::khr::dynamic_rendering_local_read::Device { /// #[inline] pub unsafe fn cmd_set_rendering_attachment_locations( diff --git a/ash/src/extensions/khr/external_fence_fd.rs b/ash/src/extensions/khr/external_fence_fd.rs index 612ad0a1..8b7334ac 100644 --- a/ash/src/extensions/khr/external_fence_fd.rs +++ b/ash/src/extensions/khr/external_fence_fd.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::external_fence_fd::Device { +impl crate::khr::external_fence_fd::Device { /// #[inline] pub unsafe fn import_fence_fd( diff --git a/ash/src/extensions/khr/external_fence_win32.rs b/ash/src/extensions/khr/external_fence_win32.rs index edd87382..e2c2e058 100644 --- a/ash/src/extensions/khr/external_fence_win32.rs +++ b/ash/src/extensions/khr/external_fence_win32.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::external_fence_win32::Device { +impl crate::khr::external_fence_win32::Device { /// #[inline] pub unsafe fn import_fence_win32_handle( diff --git a/ash/src/extensions/khr/external_memory_fd.rs b/ash/src/extensions/khr/external_memory_fd.rs index 5035502e..f77e382c 100644 --- a/ash/src/extensions/khr/external_memory_fd.rs +++ b/ash/src/extensions/khr/external_memory_fd.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::external_memory_fd::Device { +impl crate::khr::external_memory_fd::Device { /// #[inline] pub unsafe fn get_memory_fd(&self, get_fd_info: &vk::MemoryGetFdInfoKHR<'_>) -> VkResult { diff --git a/ash/src/extensions/khr/external_memory_win32.rs b/ash/src/extensions/khr/external_memory_win32.rs index 2a76bd21..4bf2fc1f 100644 --- a/ash/src/extensions/khr/external_memory_win32.rs +++ b/ash/src/extensions/khr/external_memory_win32.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::external_memory_win32::Device { +impl crate::khr::external_memory_win32::Device { /// #[inline] pub unsafe fn get_memory_win32_handle( diff --git a/ash/src/extensions/khr/external_semaphore_fd.rs b/ash/src/extensions/khr/external_semaphore_fd.rs index 8883130c..181ea361 100644 --- a/ash/src/extensions/khr/external_semaphore_fd.rs +++ b/ash/src/extensions/khr/external_semaphore_fd.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::external_semaphore_fd::Device { +impl crate::khr::external_semaphore_fd::Device { /// #[inline] pub unsafe fn import_semaphore_fd( diff --git a/ash/src/extensions/khr/external_semaphore_win32.rs b/ash/src/extensions/khr/external_semaphore_win32.rs index dcedd02c..889887e1 100644 --- a/ash/src/extensions/khr/external_semaphore_win32.rs +++ b/ash/src/extensions/khr/external_semaphore_win32.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::external_semaphore_win32::Device { +impl crate::khr::external_semaphore_win32::Device { /// #[inline] pub unsafe fn import_semaphore_win32_handle( diff --git a/ash/src/extensions/khr/get_memory_requirements2.rs b/ash/src/extensions/khr/get_memory_requirements2.rs index 60a95918..a530ac4c 100644 --- a/ash/src/extensions/khr/get_memory_requirements2.rs +++ b/ash/src/extensions/khr/get_memory_requirements2.rs @@ -4,7 +4,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::khr::get_memory_requirements2::Device { +impl crate::khr::get_memory_requirements2::Device { /// #[inline] pub unsafe fn get_buffer_memory_requirements2( diff --git a/ash/src/extensions/khr/get_physical_device_properties2.rs b/ash/src/extensions/khr/get_physical_device_properties2.rs index 0c363d73..3c0e88d6 100644 --- a/ash/src/extensions/khr/get_physical_device_properties2.rs +++ b/ash/src/extensions/khr/get_physical_device_properties2.rs @@ -5,7 +5,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::khr::get_physical_device_properties2::Instance { +impl crate::khr::get_physical_device_properties2::Instance { /// #[inline] pub unsafe fn get_physical_device_features2( diff --git a/ash/src/extensions/khr/get_surface_capabilities2.rs b/ash/src/extensions/khr/get_surface_capabilities2.rs index 5c8577d4..135334c1 100644 --- a/ash/src/extensions/khr/get_surface_capabilities2.rs +++ b/ash/src/extensions/khr/get_surface_capabilities2.rs @@ -5,7 +5,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::khr::get_surface_capabilities2::Instance { +impl crate::khr::get_surface_capabilities2::Instance { /// #[inline] pub unsafe fn get_physical_device_surface_capabilities2( diff --git a/ash/src/extensions/khr/line_rasterization.rs b/ash/src/extensions/khr/line_rasterization.rs index 758bb40a..47a3a1bc 100644 --- a/ash/src/extensions/khr/line_rasterization.rs +++ b/ash/src/extensions/khr/line_rasterization.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::line_rasterization::Device { +impl crate::khr::line_rasterization::Device { /// #[inline] pub unsafe fn cmd_set_line_stipple( diff --git a/ash/src/extensions/khr/maintenance1.rs b/ash/src/extensions/khr/maintenance1.rs index 01d85789..c00405ff 100644 --- a/ash/src/extensions/khr/maintenance1.rs +++ b/ash/src/extensions/khr/maintenance1.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::maintenance1::Device { +impl crate::khr::maintenance1::Device { /// #[inline] pub unsafe fn trim_command_pool( diff --git a/ash/src/extensions/khr/maintenance3.rs b/ash/src/extensions/khr/maintenance3.rs index 6b8016b2..0203a1da 100644 --- a/ash/src/extensions/khr/maintenance3.rs +++ b/ash/src/extensions/khr/maintenance3.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::maintenance3::Device { +impl crate::khr::maintenance3::Device { /// #[inline] pub unsafe fn get_descriptor_set_layout_support( diff --git a/ash/src/extensions/khr/maintenance4.rs b/ash/src/extensions/khr/maintenance4.rs index 57a04246..68f47271 100644 --- a/ash/src/extensions/khr/maintenance4.rs +++ b/ash/src/extensions/khr/maintenance4.rs @@ -4,7 +4,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::khr::maintenance4::Device { +impl crate::khr::maintenance4::Device { /// #[inline] pub unsafe fn get_device_buffer_memory_requirements( diff --git a/ash/src/extensions/khr/maintenance5.rs b/ash/src/extensions/khr/maintenance5.rs index fdd57066..93b417a6 100644 --- a/ash/src/extensions/khr/maintenance5.rs +++ b/ash/src/extensions/khr/maintenance5.rs @@ -1,9 +1,11 @@ //! +#[cfg(doc)] +use crate::ext; use crate::vk; use core::mem; -impl vk::khr::maintenance5::Device { +impl crate::khr::maintenance5::Device { /// #[inline] pub unsafe fn cmd_bind_index_buffer2( @@ -44,10 +46,10 @@ impl vk::khr::maintenance5::Device { /// /// - /// Also available as [`vk::ext::host_image_copy::Device::get_image_subresource_layout2()`] + /// Also available as [`ext::host_image_copy::Device::get_image_subresource_layout2()`] /// when [`VK_EXT_host_image_copy`] is enabled. /// - /// Also available as [`vk::ext::image_compression_control::Device::get_image_subresource_layout2()`] + /// Also available as [`ext::image_compression_control::Device::get_image_subresource_layout2()`] /// when [`VK_EXT_image_compression_control`] is enabled. /// /// [`VK_EXT_host_image_copy`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_host_image_copy.html diff --git a/ash/src/extensions/khr/maintenance6.rs b/ash/src/extensions/khr/maintenance6.rs index de50e222..696ff6f3 100644 --- a/ash/src/extensions/khr/maintenance6.rs +++ b/ash/src/extensions/khr/maintenance6.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::maintenance6::Device { +impl crate::khr::maintenance6::Device { /// #[inline] pub unsafe fn cmd_bind_descriptor_sets2( diff --git a/ash/src/extensions/khr/performance_query.rs b/ash/src/extensions/khr/performance_query.rs index 5d8c23a7..f5bcbc0a 100644 --- a/ash/src/extensions/khr/performance_query.rs +++ b/ash/src/extensions/khr/performance_query.rs @@ -5,7 +5,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::khr::performance_query::Device { +impl crate::khr::performance_query::Device { /// #[inline] pub unsafe fn acquire_profiling_lock( @@ -22,7 +22,7 @@ impl vk::khr::performance_query::Device { } } -impl vk::khr::performance_query::Instance { +impl crate::khr::performance_query::Instance { /// Retrieve the number of elements to pass to [`enumerate_physical_device_queue_family_performance_query_counters()`][Self::enumerate_physical_device_queue_family_performance_query_counters()] #[inline] pub unsafe fn enumerate_physical_device_queue_family_performance_query_counters_len( diff --git a/ash/src/extensions/khr/pipeline_executable_properties.rs b/ash/src/extensions/khr/pipeline_executable_properties.rs index e33188d1..d10b2c6f 100644 --- a/ash/src/extensions/khr/pipeline_executable_properties.rs +++ b/ash/src/extensions/khr/pipeline_executable_properties.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; -impl vk::khr::pipeline_executable_properties::Device { +impl crate::khr::pipeline_executable_properties::Device { /// #[inline] pub unsafe fn get_pipeline_executable_internal_representations( diff --git a/ash/src/extensions/khr/present_wait.rs b/ash/src/extensions/khr/present_wait.rs index 8b202741..7ade6fbd 100644 --- a/ash/src/extensions/khr/present_wait.rs +++ b/ash/src/extensions/khr/present_wait.rs @@ -3,7 +3,7 @@ use crate::prelude::*; use crate::vk; -impl vk::khr::present_wait::Device { +impl crate::khr::present_wait::Device { /// #[inline] pub unsafe fn wait_for_present( diff --git a/ash/src/extensions/khr/push_descriptor.rs b/ash/src/extensions/khr/push_descriptor.rs index 09877d64..bf742937 100644 --- a/ash/src/extensions/khr/push_descriptor.rs +++ b/ash/src/extensions/khr/push_descriptor.rs @@ -3,7 +3,7 @@ use crate::vk; use core::ffi; -impl vk::khr::push_descriptor::Device { +impl crate::khr::push_descriptor::Device { /// #[inline] pub unsafe fn cmd_push_descriptor_set( diff --git a/ash/src/extensions/khr/ray_tracing_maintenance1.rs b/ash/src/extensions/khr/ray_tracing_maintenance1.rs index e988f571..97e1f8ca 100644 --- a/ash/src/extensions/khr/ray_tracing_maintenance1.rs +++ b/ash/src/extensions/khr/ray_tracing_maintenance1.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::khr::ray_tracing_maintenance1::Device { +impl crate::khr::ray_tracing_maintenance1::Device { /// /// /// `indirect_device_address` is a buffer device address which is a pointer to a [`vk::TraceRaysIndirectCommand2KHR`] structure containing the trace ray parameters. diff --git a/ash/src/extensions/khr/ray_tracing_pipeline.rs b/ash/src/extensions/khr/ray_tracing_pipeline.rs index 3cef7d81..f5e641a9 100644 --- a/ash/src/extensions/khr/ray_tracing_pipeline.rs +++ b/ash/src/extensions/khr/ray_tracing_pipeline.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; -impl vk::khr::ray_tracing_pipeline::Device { +impl crate::khr::ray_tracing_pipeline::Device { /// #[inline] pub unsafe fn cmd_trace_rays( diff --git a/ash/src/extensions/khr/sampler_ycbcr_conversion.rs b/ash/src/extensions/khr/sampler_ycbcr_conversion.rs index 979336dc..48e9cad5 100644 --- a/ash/src/extensions/khr/sampler_ycbcr_conversion.rs +++ b/ash/src/extensions/khr/sampler_ycbcr_conversion.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::sampler_ycbcr_conversion::Device { +impl crate::khr::sampler_ycbcr_conversion::Device { /// #[inline] pub unsafe fn create_sampler_ycbcr_conversion( diff --git a/ash/src/extensions/khr/surface.rs b/ash/src/extensions/khr/surface.rs index e5d40c4d..c8218f26 100755 --- a/ash/src/extensions/khr/surface.rs +++ b/ash/src/extensions/khr/surface.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::khr::surface::Instance { +impl crate::khr::surface::Instance { /// #[inline] pub unsafe fn get_physical_device_surface_support( diff --git a/ash/src/extensions/khr/swapchain.rs b/ash/src/extensions/khr/swapchain.rs index df53ae70..861242d9 100755 --- a/ash/src/extensions/khr/swapchain.rs +++ b/ash/src/extensions/khr/swapchain.rs @@ -1,12 +1,14 @@ //! +#[cfg(doc)] +use crate::khr; use crate::prelude::*; use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::khr::swapchain::Device { +impl crate::khr::swapchain::Device { /// #[inline] pub unsafe fn create_swapchain( @@ -91,7 +93,7 @@ impl vk::khr::swapchain::Device { /// Only available since [Vulkan 1.1]. /// - /// Also available as [`vk::khr::device_group::Device::get_device_group_present_capabilities()`] + /// Also available as [`khr::device_group::Device::get_device_group_present_capabilities()`] /// when [`VK_KHR_surface`] is enabled. /// /// @@ -112,7 +114,7 @@ impl vk::khr::swapchain::Device { /// Only available since [Vulkan 1.1]. /// - /// Also available as [`vk::khr::device_group::Device::get_device_group_surface_present_modes()`] + /// Also available as [`khr::device_group::Device::get_device_group_surface_present_modes()`] /// when [`VK_KHR_surface`] is enabled. /// /// @@ -137,7 +139,7 @@ impl vk::khr::swapchain::Device { /// /// Only available since [Vulkan 1.1]. /// - /// Also available as [`vk::khr::device_group::Device::acquire_next_image2()`] + /// Also available as [`khr::device_group::Device::acquire_next_image2()`] /// when [`VK_KHR_swapchain`] is enabled. /// /// @@ -160,10 +162,10 @@ impl vk::khr::swapchain::Device { } } -impl vk::khr::swapchain::Instance { +impl crate::khr::swapchain::Instance { /// Only available since [Vulkan 1.1]. /// - /// Also available as [`vk::khr::device_group::Instance::get_physical_device_present_rectangles()`] + /// Also available as [`khr::device_group::Instance::get_physical_device_present_rectangles()`] /// when [`VK_KHR_surface`] is enabled. /// /// diff --git a/ash/src/extensions/khr/synchronization2.rs b/ash/src/extensions/khr/synchronization2.rs index 069f47ed..2cfeef7a 100644 --- a/ash/src/extensions/khr/synchronization2.rs +++ b/ash/src/extensions/khr/synchronization2.rs @@ -3,7 +3,7 @@ use crate::prelude::*; use crate::vk; -impl vk::khr::synchronization2::Device { +impl crate::khr::synchronization2::Device { /// #[inline] pub unsafe fn cmd_pipeline_barrier2( diff --git a/ash/src/extensions/khr/timeline_semaphore.rs b/ash/src/extensions/khr/timeline_semaphore.rs index 6c526249..01af3755 100644 --- a/ash/src/extensions/khr/timeline_semaphore.rs +++ b/ash/src/extensions/khr/timeline_semaphore.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use core::mem; -impl vk::khr::timeline_semaphore::Device { +impl crate::khr::timeline_semaphore::Device { /// #[inline] pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult { diff --git a/ash/src/extensions/khr/wayland_surface.rs b/ash/src/extensions/khr/wayland_surface.rs index 650bdc4c..b5d91b48 100755 --- a/ash/src/extensions/khr/wayland_surface.rs +++ b/ash/src/extensions/khr/wayland_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::wayland_surface::Instance { +impl crate::khr::wayland_surface::Instance { /// #[inline] pub unsafe fn create_wayland_surface( diff --git a/ash/src/extensions/khr/win32_surface.rs b/ash/src/extensions/khr/win32_surface.rs index 56ed4480..1aa359f7 100755 --- a/ash/src/extensions/khr/win32_surface.rs +++ b/ash/src/extensions/khr/win32_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::win32_surface::Instance { +impl crate::khr::win32_surface::Instance { /// #[inline] pub unsafe fn create_win32_surface( diff --git a/ash/src/extensions/khr/xcb_surface.rs b/ash/src/extensions/khr/xcb_surface.rs index 72d93d51..5623026a 100755 --- a/ash/src/extensions/khr/xcb_surface.rs +++ b/ash/src/extensions/khr/xcb_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::xcb_surface::Instance { +impl crate::khr::xcb_surface::Instance { /// #[inline] pub unsafe fn create_xcb_surface( diff --git a/ash/src/extensions/khr/xlib_surface.rs b/ash/src/extensions/khr/xlib_surface.rs index eb7dd1fe..ddd01f06 100755 --- a/ash/src/extensions/khr/xlib_surface.rs +++ b/ash/src/extensions/khr/xlib_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::khr::xlib_surface::Instance { +impl crate::khr::xlib_surface::Instance { /// #[inline] pub unsafe fn create_xlib_surface( diff --git a/ash/src/extensions/mvk/ios_surface.rs b/ash/src/extensions/mvk/ios_surface.rs index 89661eb9..e3e60f64 100755 --- a/ash/src/extensions/mvk/ios_surface.rs +++ b/ash/src/extensions/mvk/ios_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::mvk::ios_surface::Instance { +impl crate::mvk::ios_surface::Instance { /// #[inline] pub unsafe fn create_ios_surface( diff --git a/ash/src/extensions/mvk/macos_surface.rs b/ash/src/extensions/mvk/macos_surface.rs index 958c3d99..d8a87353 100755 --- a/ash/src/extensions/mvk/macos_surface.rs +++ b/ash/src/extensions/mvk/macos_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::mvk::macos_surface::Instance { +impl crate::mvk::macos_surface::Instance { /// #[inline] pub unsafe fn create_mac_os_surface( diff --git a/ash/src/extensions/nn/vi_surface.rs b/ash/src/extensions/nn/vi_surface.rs index d0d50adf..0e2b41ac 100644 --- a/ash/src/extensions/nn/vi_surface.rs +++ b/ash/src/extensions/nn/vi_surface.rs @@ -5,7 +5,7 @@ use crate::vk; use crate::RawPtr; use core::mem; -impl vk::nn::vi_surface::Instance { +impl crate::nn::vi_surface::Instance { /// #[inline] pub unsafe fn create_vi_surface( diff --git a/ash/src/extensions/nv/copy_memory_indirect.rs b/ash/src/extensions/nv/copy_memory_indirect.rs index 7c6a17fc..14f117ed 100644 --- a/ash/src/extensions/nv/copy_memory_indirect.rs +++ b/ash/src/extensions/nv/copy_memory_indirect.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::nv::copy_memory_indirect::Device { +impl crate::nv::copy_memory_indirect::Device { /// /// /// `copy_buffer_address` is a buffer device address which is a pointer to an array of diff --git a/ash/src/extensions/nv/coverage_reduction_mode.rs b/ash/src/extensions/nv/coverage_reduction_mode.rs index 18d51854..61161ef5 100644 --- a/ash/src/extensions/nv/coverage_reduction_mode.rs +++ b/ash/src/extensions/nv/coverage_reduction_mode.rs @@ -5,7 +5,7 @@ use crate::vk; use core::mem; use core::ptr; -impl vk::nv::coverage_reduction_mode::Instance { +impl crate::nv::coverage_reduction_mode::Instance { /// Retrieve the number of elements to pass to [`get_physical_device_supported_framebuffer_mixed_samples_combinations()`][Self::get_physical_device_supported_framebuffer_mixed_samples_combinations()] #[inline] pub unsafe fn get_physical_device_supported_framebuffer_mixed_samples_combinations_len( diff --git a/ash/src/extensions/nv/cuda_kernel_launch.rs b/ash/src/extensions/nv/cuda_kernel_launch.rs index d1615e00..f1fa7115 100644 --- a/ash/src/extensions/nv/cuda_kernel_launch.rs +++ b/ash/src/extensions/nv/cuda_kernel_launch.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::nv::cuda_kernel_launch::Device { +impl crate::nv::cuda_kernel_launch::Device { /// #[inline] pub unsafe fn create_cuda_module( diff --git a/ash/src/extensions/nv/device_diagnostic_checkpoints.rs b/ash/src/extensions/nv/device_diagnostic_checkpoints.rs index ef88d873..a2aef050 100644 --- a/ash/src/extensions/nv/device_diagnostic_checkpoints.rs +++ b/ash/src/extensions/nv/device_diagnostic_checkpoints.rs @@ -5,7 +5,7 @@ use core::ffi; use core::mem; use core::ptr; -impl vk::nv::device_diagnostic_checkpoints::Device { +impl crate::nv::device_diagnostic_checkpoints::Device { /// #[inline] pub unsafe fn cmd_set_checkpoint( diff --git a/ash/src/extensions/nv/device_generated_commands_compute.rs b/ash/src/extensions/nv/device_generated_commands_compute.rs index a1f09ba3..b5591317 100644 --- a/ash/src/extensions/nv/device_generated_commands_compute.rs +++ b/ash/src/extensions/nv/device_generated_commands_compute.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::nv::device_generated_commands_compute::Device { +impl crate::nv::device_generated_commands_compute::Device { /// #[inline] pub unsafe fn get_pipeline_indirect_memory_requirements( diff --git a/ash/src/extensions/nv/low_latency2.rs b/ash/src/extensions/nv/low_latency2.rs index 2effc8e5..f20f1c8d 100644 --- a/ash/src/extensions/nv/low_latency2.rs +++ b/ash/src/extensions/nv/low_latency2.rs @@ -4,7 +4,7 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; -impl vk::nv::low_latency2::Device { +impl crate::nv::low_latency2::Device { /// #[inline] pub unsafe fn set_latency_sleep_mode( diff --git a/ash/src/extensions/nv/memory_decompression.rs b/ash/src/extensions/nv/memory_decompression.rs index 37ffdba4..9f68385d 100644 --- a/ash/src/extensions/nv/memory_decompression.rs +++ b/ash/src/extensions/nv/memory_decompression.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::nv::memory_decompression::Device { +impl crate::nv::memory_decompression::Device { /// pub unsafe fn cmd_decompress_memory( &self, diff --git a/ash/src/extensions/nv/mesh_shader.rs b/ash/src/extensions/nv/mesh_shader.rs index a7e00d6e..b431f9cf 100755 --- a/ash/src/extensions/nv/mesh_shader.rs +++ b/ash/src/extensions/nv/mesh_shader.rs @@ -2,7 +2,7 @@ use crate::vk; -impl vk::nv::mesh_shader::Device { +impl crate::nv::mesh_shader::Device { /// #[inline] pub unsafe fn cmd_draw_mesh_tasks( diff --git a/ash/src/extensions/nv/ray_tracing.rs b/ash/src/extensions/nv/ray_tracing.rs index c441b847..eb7ea401 100755 --- a/ash/src/extensions/nv/ray_tracing.rs +++ b/ash/src/extensions/nv/ray_tracing.rs @@ -6,7 +6,7 @@ use crate::RawPtr; use alloc::vec::Vec; use core::mem; -impl vk::nv::ray_tracing::Device { +impl crate::nv::ray_tracing::Device { /// #[inline] pub unsafe fn create_acceleration_structure( diff --git a/ash/src/extensions_generated.rs b/ash/src/extensions_generated.rs new file mode 100644 index 00000000..102afe06 --- /dev/null +++ b/ash/src/extensions_generated.rs @@ -0,0 +1,20313 @@ +#![allow(unused_imports)] +use crate::vk::*; +use core::ffi::*; +#[doc = "Extensions tagged AMD"] +pub mod amd { + #[doc = "VK_AMD_rasterization_order"] + pub mod rasterization_order { + use super::super::*; + pub use { + crate::vk::AMD_RASTERIZATION_ORDER_NAME as NAME, + crate::vk::AMD_RASTERIZATION_ORDER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_trinary_minmax"] + pub mod shader_trinary_minmax { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_TRINARY_MINMAX_NAME as NAME, + crate::vk::AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_explicit_vertex_parameter"] + pub mod shader_explicit_vertex_parameter { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_NAME as NAME, + crate::vk::AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_gcn_shader"] + pub mod gcn_shader { + use super::super::*; + pub use { + crate::vk::AMD_GCN_SHADER_NAME as NAME, + crate::vk::AMD_GCN_SHADER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_draw_indirect_count"] + pub mod draw_indirect_count { + use super::super::*; + pub use { + crate::vk::AMD_DRAW_INDIRECT_COUNT_NAME as NAME, + crate::vk::AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_AMD_draw_indirect_count device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_AMD_draw_indirect_count device-level function pointers"] + pub struct DeviceFn { + pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCount, + pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCount, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_indirect_count_amd: unsafe { + unsafe extern "system" fn cmd_draw_indirect_count_amd( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indirect_count_amd) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountAMD\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indirect_count_amd + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indexed_indirect_count_amd: unsafe { + unsafe extern "system" fn cmd_draw_indexed_indirect_count_amd( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indexed_indirect_count_amd) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDrawIndexedIndirectCountAMD\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_draw_indexed_indirect_count_amd + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_AMD_negative_viewport_height"] + pub mod negative_viewport_height { + use super::super::*; + pub use { + crate::vk::AMD_NEGATIVE_VIEWPORT_HEIGHT_NAME as NAME, + crate::vk::AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_gpu_shader_half_float"] + pub mod gpu_shader_half_float { + use super::super::*; + pub use { + crate::vk::AMD_GPU_SHADER_HALF_FLOAT_NAME as NAME, + crate::vk::AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_ballot"] + pub mod shader_ballot { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_BALLOT_NAME as NAME, + crate::vk::AMD_SHADER_BALLOT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_texture_gather_bias_lod"] + pub mod texture_gather_bias_lod { + use super::super::*; + pub use { + crate::vk::AMD_TEXTURE_GATHER_BIAS_LOD_NAME as NAME, + crate::vk::AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_info"] + pub mod shader_info { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_INFO_NAME as NAME, + crate::vk::AMD_SHADER_INFO_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_AMD_shader_info device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_AMD_shader_info device-level function pointers"] + pub struct DeviceFn { + pub get_shader_info_amd: PFN_vkGetShaderInfoAMD, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_shader_info_amd: unsafe { + unsafe extern "system" fn get_shader_info_amd( + _device: crate::vk::Device, + _pipeline: Pipeline, + _shader_stage: ShaderStageFlags, + _info_type: ShaderInfoTypeAMD, + _p_info_size: *mut usize, + _p_info: *mut c_void, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_shader_info_amd))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetShaderInfoAMD\0"); + let val = _f(cname); + if val.is_null() { + get_shader_info_amd + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_AMD_shader_image_load_store_lod"] + pub mod shader_image_load_store_lod { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_IMAGE_LOAD_STORE_LOD_NAME as NAME, + crate::vk::AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_gpu_shader_int16"] + pub mod gpu_shader_int16 { + use super::super::*; + pub use { + crate::vk::AMD_GPU_SHADER_INT16_NAME as NAME, + crate::vk::AMD_GPU_SHADER_INT16_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_mixed_attachment_samples"] + pub mod mixed_attachment_samples { + use super::super::*; + pub use { + crate::vk::AMD_MIXED_ATTACHMENT_SAMPLES_NAME as NAME, + crate::vk::AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_fragment_mask"] + pub mod shader_fragment_mask { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_FRAGMENT_MASK_NAME as NAME, + crate::vk::AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_buffer_marker"] + pub mod buffer_marker { + use super::super::*; + pub use { + crate::vk::AMD_BUFFER_MARKER_NAME as NAME, + crate::vk::AMD_BUFFER_MARKER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_AMD_buffer_marker device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_AMD_buffer_marker device-level function pointers"] + pub struct DeviceFn { + pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_write_buffer_marker_amd: unsafe { + unsafe extern "system" fn cmd_write_buffer_marker_amd( + _command_buffer: CommandBuffer, + _pipeline_stage: PipelineStageFlags, + _dst_buffer: Buffer, + _dst_offset: DeviceSize, + _marker: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_buffer_marker_amd) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarkerAMD\0"); + let val = _f(cname); + if val.is_null() { + cmd_write_buffer_marker_amd + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_AMD_pipeline_compiler_control"] + pub mod pipeline_compiler_control { + use super::super::*; + pub use { + crate::vk::AMD_PIPELINE_COMPILER_CONTROL_NAME as NAME, + crate::vk::AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_core_properties"] + pub mod shader_core_properties { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_CORE_PROPERTIES_NAME as NAME, + crate::vk::AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_memory_overallocation_behavior"] + pub mod memory_overallocation_behavior { + use super::super::*; + pub use { + crate::vk::AMD_MEMORY_OVERALLOCATION_BEHAVIOR_NAME as NAME, + crate::vk::AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_display_native_hdr"] + pub mod display_native_hdr { + use super::super::*; + pub use { + crate::vk::AMD_DISPLAY_NATIVE_HDR_NAME as NAME, + crate::vk::AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_AMD_display_native_hdr device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_AMD_display_native_hdr device-level function pointers"] + pub struct DeviceFn { + pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + set_local_dimming_amd: unsafe { + unsafe extern "system" fn set_local_dimming_amd( + _device: crate::vk::Device, + _swap_chain: SwapchainKHR, + _local_dimming_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(set_local_dimming_amd) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLocalDimmingAMD\0"); + let val = _f(cname); + if val.is_null() { + set_local_dimming_amd + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_AMD_shader_core_properties2"] + pub mod shader_core_properties2 { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_CORE_PROPERTIES2_NAME as NAME, + crate::vk::AMD_SHADER_CORE_PROPERTIES2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_device_coherent_memory"] + pub mod device_coherent_memory { + use super::super::*; + pub use { + crate::vk::AMD_DEVICE_COHERENT_MEMORY_NAME as NAME, + crate::vk::AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_AMD_shader_early_and_late_fragment_tests"] + pub mod shader_early_and_late_fragment_tests { + use super::super::*; + pub use { + crate::vk::AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_NAME as NAME, + crate::vk::AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged AMDX"] +pub mod amdx { + #[doc = "VK_AMDX_shader_enqueue"] + pub mod shader_enqueue { + use super::super::*; + pub use { + crate::vk::AMDX_SHADER_ENQUEUE_NAME as NAME, + crate::vk::AMDX_SHADER_ENQUEUE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_AMDX_shader_enqueue device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_AMDX_shader_enqueue device-level function pointers"] + pub struct DeviceFn { + pub create_execution_graph_pipelines_amdx: PFN_vkCreateExecutionGraphPipelinesAMDX, + pub get_execution_graph_pipeline_scratch_size_amdx: + PFN_vkGetExecutionGraphPipelineScratchSizeAMDX, + pub get_execution_graph_pipeline_node_index_amdx: + PFN_vkGetExecutionGraphPipelineNodeIndexAMDX, + pub cmd_initialize_graph_scratch_memory_amdx: PFN_vkCmdInitializeGraphScratchMemoryAMDX, + pub cmd_dispatch_graph_amdx: PFN_vkCmdDispatchGraphAMDX, + pub cmd_dispatch_graph_indirect_amdx: PFN_vkCmdDispatchGraphIndirectAMDX, + pub cmd_dispatch_graph_indirect_count_amdx: PFN_vkCmdDispatchGraphIndirectCountAMDX, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_execution_graph_pipelines_amdx: unsafe { + unsafe extern "system" fn create_execution_graph_pipelines_amdx( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_execution_graph_pipelines_amdx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateExecutionGraphPipelinesAMDX\0", + ); + let val = _f(cname); + if val.is_null() { + create_execution_graph_pipelines_amdx + } else { + ::core::mem::transmute(val) + } + }, + get_execution_graph_pipeline_scratch_size_amdx: unsafe { + unsafe extern "system" fn get_execution_graph_pipeline_scratch_size_amdx( + _device: crate::vk::Device, + _execution_graph: Pipeline, + _p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_execution_graph_pipeline_scratch_size_amdx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetExecutionGraphPipelineScratchSizeAMDX\0", + ); + let val = _f(cname); + if val.is_null() { + get_execution_graph_pipeline_scratch_size_amdx + } else { + ::core::mem::transmute(val) + } + }, + get_execution_graph_pipeline_node_index_amdx: unsafe { + unsafe extern "system" fn get_execution_graph_pipeline_node_index_amdx( + _device: crate::vk::Device, + _execution_graph: Pipeline, + _p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>, + _p_node_index: *mut u32, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_execution_graph_pipeline_node_index_amdx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetExecutionGraphPipelineNodeIndexAMDX\0", + ); + let val = _f(cname); + if val.is_null() { + get_execution_graph_pipeline_node_index_amdx + } else { + ::core::mem::transmute(val) + } + }, + cmd_initialize_graph_scratch_memory_amdx: unsafe { + unsafe extern "system" fn cmd_initialize_graph_scratch_memory_amdx( + _command_buffer: CommandBuffer, + _scratch: DeviceAddress, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_initialize_graph_scratch_memory_amdx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdInitializeGraphScratchMemoryAMDX\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_initialize_graph_scratch_memory_amdx + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_graph_amdx: unsafe { + unsafe extern "system" fn cmd_dispatch_graph_amdx( + _command_buffer: CommandBuffer, + _scratch: DeviceAddress, + _p_count_info: *const DispatchGraphCountInfoAMDX, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_graph_amdx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchGraphAMDX\0"); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_graph_amdx + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_graph_indirect_amdx: unsafe { + unsafe extern "system" fn cmd_dispatch_graph_indirect_amdx( + _command_buffer: CommandBuffer, + _scratch: DeviceAddress, + _p_count_info: *const DispatchGraphCountInfoAMDX, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_graph_indirect_amdx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDispatchGraphIndirectAMDX\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_graph_indirect_amdx + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_graph_indirect_count_amdx: unsafe { + unsafe extern "system" fn cmd_dispatch_graph_indirect_count_amdx( + _command_buffer: CommandBuffer, + _scratch: DeviceAddress, + _count_info: DeviceAddress, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_graph_indirect_count_amdx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDispatchGraphIndirectCountAMDX\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_graph_indirect_count_amdx + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged ANDROID"] +pub mod android { + #[doc = "VK_ANDROID_native_buffer"] + pub mod native_buffer { + use super::super::*; + pub use { + crate::vk::ANDROID_NATIVE_BUFFER_NAME as NAME, + crate::vk::ANDROID_NATIVE_BUFFER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_ANDROID_native_buffer device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_ANDROID_native_buffer device-level function pointers"] + pub struct DeviceFn { + pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID, + pub acquire_image_android: PFN_vkAcquireImageANDROID, + pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID, + pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_swapchain_gralloc_usage_android: unsafe { + unsafe extern "system" fn get_swapchain_gralloc_usage_android( + _device: crate::vk::Device, + _format: Format, + _image_usage: ImageUsageFlags, + _gralloc_usage: *mut c_int, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_swapchain_gralloc_usage_android) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetSwapchainGrallocUsageANDROID\0", + ); + let val = _f(cname); + if val.is_null() { + get_swapchain_gralloc_usage_android + } else { + ::core::mem::transmute(val) + } + }, + acquire_image_android: unsafe { + unsafe extern "system" fn acquire_image_android( + _device: crate::vk::Device, + _image: Image, + _native_fence_fd: c_int, + _semaphore: Semaphore, + _fence: Fence, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_image_android) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkAcquireImageANDROID\0"); + let val = _f(cname); + if val.is_null() { + acquire_image_android + } else { + ::core::mem::transmute(val) + } + }, + queue_signal_release_image_android: unsafe { + unsafe extern "system" fn queue_signal_release_image_android( + _queue: Queue, + _wait_semaphore_count: u32, + _p_wait_semaphores: *const Semaphore, + _image: Image, + _p_native_fence_fd: *mut c_int, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(queue_signal_release_image_android) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkQueueSignalReleaseImageANDROID\0", + ); + let val = _f(cname); + if val.is_null() { + queue_signal_release_image_android + } else { + ::core::mem::transmute(val) + } + }, + get_swapchain_gralloc_usage2_android: unsafe { + unsafe extern "system" fn get_swapchain_gralloc_usage2_android( + _device: crate::vk::Device, + _format: Format, + _image_usage: ImageUsageFlags, + _swapchain_image_usage: SwapchainImageUsageFlagsANDROID, + _gralloc_consumer_usage: *mut u64, + _gralloc_producer_usage: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_swapchain_gralloc_usage2_android) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetSwapchainGrallocUsage2ANDROID\0", + ); + let val = _f(cname); + if val.is_null() { + get_swapchain_gralloc_usage2_android + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_ANDROID_external_memory_android_hardware_buffer"] + pub mod external_memory_android_hardware_buffer { + use super::super::*; + pub use { + crate::vk::ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_NAME as NAME, + crate::vk::ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_ANDROID_external_memory_android_hardware_buffer device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_ANDROID_external_memory_android_hardware_buffer device-level function pointers"] + pub struct DeviceFn { + pub get_android_hardware_buffer_properties_android: + PFN_vkGetAndroidHardwareBufferPropertiesANDROID, + pub get_memory_android_hardware_buffer_android: + PFN_vkGetMemoryAndroidHardwareBufferANDROID, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_android_hardware_buffer_properties_android: unsafe { + unsafe extern "system" fn get_android_hardware_buffer_properties_android( + _device: crate::vk::Device, + _buffer: *const AHardwareBuffer, + _p_properties: *mut AndroidHardwareBufferPropertiesANDROID<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_android_hardware_buffer_properties_android) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAndroidHardwareBufferPropertiesANDROID\0", + ); + let val = _f(cname); + if val.is_null() { + get_android_hardware_buffer_properties_android + } else { + ::core::mem::transmute(val) + } + }, + get_memory_android_hardware_buffer_android: unsafe { + unsafe extern "system" fn get_memory_android_hardware_buffer_android( + _device: crate::vk::Device, + _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID<'_>, + _p_buffer: *mut *mut AHardwareBuffer, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_android_hardware_buffer_android) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryAndroidHardwareBufferANDROID\0", + ); + let val = _f(cname); + if val.is_null() { + get_memory_android_hardware_buffer_android + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_ANDROID_external_format_resolve"] + pub mod external_format_resolve { + use super::super::*; + pub use { + crate::vk::ANDROID_EXTERNAL_FORMAT_RESOLVE_NAME as NAME, + crate::vk::ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged ARM"] +pub mod arm { + #[doc = "VK_ARM_rasterization_order_attachment_access"] + pub mod rasterization_order_attachment_access { + use super::super::*; + pub use { + crate::vk::ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_NAME as NAME, + crate::vk::ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_ARM_shader_core_properties"] + pub mod shader_core_properties { + use super::super::*; + pub use { + crate::vk::ARM_SHADER_CORE_PROPERTIES_NAME as NAME, + crate::vk::ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_ARM_scheduling_controls"] + pub mod scheduling_controls { + use super::super::*; + pub use { + crate::vk::ARM_SCHEDULING_CONTROLS_NAME as NAME, + crate::vk::ARM_SCHEDULING_CONTROLS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_ARM_render_pass_striped"] + pub mod render_pass_striped { + use super::super::*; + pub use { + crate::vk::ARM_RENDER_PASS_STRIPED_NAME as NAME, + crate::vk::ARM_RENDER_PASS_STRIPED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_ARM_shader_core_builtins"] + pub mod shader_core_builtins { + use super::super::*; + pub use { + crate::vk::ARM_SHADER_CORE_BUILTINS_NAME as NAME, + crate::vk::ARM_SHADER_CORE_BUILTINS_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged EXT"] +pub mod ext { + #[doc = "VK_EXT_debug_report"] + pub mod debug_report { + use super::super::*; + pub use { + crate::vk::EXT_DEBUG_REPORT_NAME as NAME, + crate::vk::EXT_DEBUG_REPORT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_debug_report instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_debug_report instance-level function pointers"] + pub struct InstanceFn { + pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT, + pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT, + pub debug_report_message_ext: PFN_vkDebugReportMessageEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_debug_report_callback_ext: unsafe { + unsafe extern "system" fn create_debug_report_callback_ext( + _instance: crate::vk::Instance, + _p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_callback: *mut DebugReportCallbackEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_debug_report_callback_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateDebugReportCallbackEXT\0", + ); + let val = _f(cname); + if val.is_null() { + create_debug_report_callback_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_debug_report_callback_ext: unsafe { + unsafe extern "system" fn destroy_debug_report_callback_ext( + _instance: crate::vk::Instance, + _callback: DebugReportCallbackEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_debug_report_callback_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyDebugReportCallbackEXT\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_debug_report_callback_ext + } else { + ::core::mem::transmute(val) + } + }, + debug_report_message_ext: unsafe { + unsafe extern "system" fn debug_report_message_ext( + _instance: crate::vk::Instance, + _flags: DebugReportFlagsEXT, + _object_type: DebugReportObjectTypeEXT, + _object: u64, + _location: usize, + _message_code: i32, + _p_layer_prefix: *const c_char, + _p_message: *const c_char, + ) { + panic!(concat!( + "Unable to load ", + stringify!(debug_report_message_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0"); + let val = _f(cname); + if val.is_null() { + debug_report_message_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_depth_range_unrestricted"] + pub mod depth_range_unrestricted { + use super::super::*; + pub use { + crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_NAME as NAME, + crate::vk::EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_debug_marker"] + pub mod debug_marker { + use super::super::*; + pub use { + crate::vk::EXT_DEBUG_MARKER_NAME as NAME, + crate::vk::EXT_DEBUG_MARKER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_debug_marker device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_debug_marker device-level function pointers"] + pub struct DeviceFn { + pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT, + pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT, + pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT, + pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT, + pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + debug_marker_set_object_tag_ext: unsafe { + unsafe extern "system" fn debug_marker_set_object_tag_ext( + _device: crate::vk::Device, + _p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(debug_marker_set_object_tag_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectTagEXT\0"); + let val = _f(cname); + if val.is_null() { + debug_marker_set_object_tag_ext + } else { + ::core::mem::transmute(val) + } + }, + debug_marker_set_object_name_ext: unsafe { + unsafe extern "system" fn debug_marker_set_object_name_ext( + _device: crate::vk::Device, + _p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(debug_marker_set_object_name_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectNameEXT\0"); + let val = _f(cname); + if val.is_null() { + debug_marker_set_object_name_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_debug_marker_begin_ext: unsafe { + unsafe extern "system" fn cmd_debug_marker_begin_ext( + _command_buffer: CommandBuffer, + _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_debug_marker_begin_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_debug_marker_begin_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_debug_marker_end_ext: unsafe { + unsafe extern "system" fn cmd_debug_marker_end_ext( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_debug_marker_end_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_debug_marker_end_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_debug_marker_insert_ext: unsafe { + unsafe extern "system" fn cmd_debug_marker_insert_ext( + _command_buffer: CommandBuffer, + _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_debug_marker_insert_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_debug_marker_insert_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_transform_feedback"] + pub mod transform_feedback { + use super::super::*; + pub use { + crate::vk::EXT_TRANSFORM_FEEDBACK_NAME as NAME, + crate::vk::EXT_TRANSFORM_FEEDBACK_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_transform_feedback device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_transform_feedback device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT, + pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT, + pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT, + pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT, + pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT, + pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_bind_transform_feedback_buffers_ext: unsafe { + unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _p_buffers: *const Buffer, + _p_offsets: *const DeviceSize, + _p_sizes: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_transform_feedback_buffers_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBindTransformFeedbackBuffersEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_bind_transform_feedback_buffers_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_transform_feedback_ext: unsafe { + unsafe extern "system" fn cmd_begin_transform_feedback_ext( + _command_buffer: CommandBuffer, + _first_counter_buffer: u32, + _counter_buffer_count: u32, + _p_counter_buffers: *const Buffer, + _p_counter_buffer_offsets: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_transform_feedback_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBeginTransformFeedbackEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_begin_transform_feedback_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_transform_feedback_ext: unsafe { + unsafe extern "system" fn cmd_end_transform_feedback_ext( + _command_buffer: CommandBuffer, + _first_counter_buffer: u32, + _counter_buffer_count: u32, + _p_counter_buffers: *const Buffer, + _p_counter_buffer_offsets: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_transform_feedback_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndTransformFeedbackEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_transform_feedback_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_query_indexed_ext: unsafe { + unsafe extern "system" fn cmd_begin_query_indexed_ext( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _query: u32, + _flags: QueryControlFlags, + _index: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_query_indexed_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_query_indexed_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_query_indexed_ext: unsafe { + unsafe extern "system" fn cmd_end_query_indexed_ext( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _query: u32, + _index: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_query_indexed_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_query_indexed_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indirect_byte_count_ext: unsafe { + unsafe extern "system" fn cmd_draw_indirect_byte_count_ext( + _command_buffer: CommandBuffer, + _instance_count: u32, + _first_instance: u32, + _counter_buffer: Buffer, + _counter_buffer_offset: DeviceSize, + _counter_offset: u32, + _vertex_stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indirect_byte_count_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectByteCountEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indirect_byte_count_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_validation_flags"] + pub mod validation_flags { + use super::super::*; + pub use { + crate::vk::EXT_VALIDATION_FLAGS_NAME as NAME, + crate::vk::EXT_VALIDATION_FLAGS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_subgroup_ballot"] + pub mod shader_subgroup_ballot { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_SUBGROUP_BALLOT_NAME as NAME, + crate::vk::EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_subgroup_vote"] + pub mod shader_subgroup_vote { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_SUBGROUP_VOTE_NAME as NAME, + crate::vk::EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_texture_compression_astc_hdr"] + pub mod texture_compression_astc_hdr { + use super::super::*; + pub use { + crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_NAME as NAME, + crate::vk::EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_astc_decode_mode"] + pub mod astc_decode_mode { + use super::super::*; + pub use { + crate::vk::EXT_ASTC_DECODE_MODE_NAME as NAME, + crate::vk::EXT_ASTC_DECODE_MODE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_robustness"] + pub mod pipeline_robustness { + use super::super::*; + pub use { + crate::vk::EXT_PIPELINE_ROBUSTNESS_NAME as NAME, + crate::vk::EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_conditional_rendering"] + pub mod conditional_rendering { + use super::super::*; + pub use { + crate::vk::EXT_CONDITIONAL_RENDERING_NAME as NAME, + crate::vk::EXT_CONDITIONAL_RENDERING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_conditional_rendering device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_conditional_rendering device-level function pointers"] + pub struct DeviceFn { + pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT, + pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_begin_conditional_rendering_ext: unsafe { + unsafe extern "system" fn cmd_begin_conditional_rendering_ext( + _command_buffer: CommandBuffer, + _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT< + '_, + >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_conditional_rendering_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBeginConditionalRenderingEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_begin_conditional_rendering_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_conditional_rendering_ext: unsafe { + unsafe extern "system" fn cmd_end_conditional_rendering_ext( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_conditional_rendering_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdEndConditionalRenderingEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_end_conditional_rendering_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_direct_mode_display"] + pub mod direct_mode_display { + use super::super::*; + pub use { + crate::vk::EXT_DIRECT_MODE_DISPLAY_NAME as NAME, + crate::vk::EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_direct_mode_display instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_direct_mode_display instance-level function pointers"] + pub struct InstanceFn { + pub release_display_ext: PFN_vkReleaseDisplayEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + release_display_ext: unsafe { + unsafe extern "system" fn release_display_ext( + _physical_device: PhysicalDevice, + _display: DisplayKHR, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(release_display_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0"); + let val = _f(cname); + if val.is_null() { + release_display_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_acquire_xlib_display"] + pub mod acquire_xlib_display { + use super::super::*; + pub use { + crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_NAME as NAME, + crate::vk::EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_acquire_xlib_display instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_acquire_xlib_display instance-level function pointers"] + pub struct InstanceFn { + pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT, + pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + acquire_xlib_display_ext: unsafe { + unsafe extern "system" fn acquire_xlib_display_ext( + _physical_device: PhysicalDevice, + _dpy: *mut Display, + _display: DisplayKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_xlib_display_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0"); + let val = _f(cname); + if val.is_null() { + acquire_xlib_display_ext + } else { + ::core::mem::transmute(val) + } + }, + get_rand_r_output_display_ext: unsafe { + unsafe extern "system" fn get_rand_r_output_display_ext( + _physical_device: PhysicalDevice, + _dpy: *mut Display, + _rr_output: RROutput, + _p_display: *mut DisplayKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_rand_r_output_display_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetRandROutputDisplayEXT\0"); + let val = _f(cname); + if val.is_null() { + get_rand_r_output_display_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_display_surface_counter"] + pub mod display_surface_counter { + use super::super::*; + pub use { + crate::vk::EXT_DISPLAY_SURFACE_COUNTER_NAME as NAME, + crate::vk::EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_display_surface_counter instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_display_surface_counter instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_surface_capabilities2_ext: + PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_surface_capabilities2_ext: unsafe { + unsafe extern "system" fn get_physical_device_surface_capabilities2_ext( + _physical_device: PhysicalDevice, + _surface: SurfaceKHR, + _p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_capabilities2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_capabilities2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_display_control"] + pub mod display_control { + use super::super::*; + pub use { + crate::vk::EXT_DISPLAY_CONTROL_NAME as NAME, + crate::vk::EXT_DISPLAY_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_display_control device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_display_control device-level function pointers"] + pub struct DeviceFn { + pub display_power_control_ext: PFN_vkDisplayPowerControlEXT, + pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT, + pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT, + pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + display_power_control_ext: unsafe { + unsafe extern "system" fn display_power_control_ext( + _device: crate::vk::Device, + _display: DisplayKHR, + _p_display_power_info: *const DisplayPowerInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(display_power_control_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0"); + let val = _f(cname); + if val.is_null() { + display_power_control_ext + } else { + ::core::mem::transmute(val) + } + }, + register_device_event_ext: unsafe { + unsafe extern "system" fn register_device_event_ext( + _device: crate::vk::Device, + _p_device_event_info: *const DeviceEventInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_fence: *mut Fence, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(register_device_event_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0"); + let val = _f(cname); + if val.is_null() { + register_device_event_ext + } else { + ::core::mem::transmute(val) + } + }, + register_display_event_ext: unsafe { + unsafe extern "system" fn register_display_event_ext( + _device: crate::vk::Device, + _display: DisplayKHR, + _p_display_event_info: *const DisplayEventInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_fence: *mut Fence, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(register_display_event_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0"); + let val = _f(cname); + if val.is_null() { + register_display_event_ext + } else { + ::core::mem::transmute(val) + } + }, + get_swapchain_counter_ext: unsafe { + unsafe extern "system" fn get_swapchain_counter_ext( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _counter: SurfaceCounterFlagsEXT, + _p_counter_value: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_swapchain_counter_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0"); + let val = _f(cname); + if val.is_null() { + get_swapchain_counter_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_discard_rectangles"] + pub mod discard_rectangles { + use super::super::*; + pub use { + crate::vk::EXT_DISCARD_RECTANGLES_NAME as NAME, + crate::vk::EXT_DISCARD_RECTANGLES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_discard_rectangles device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_discard_rectangles device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT, + pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT, + pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_discard_rectangle_ext: unsafe { + unsafe extern "system" fn cmd_set_discard_rectangle_ext( + _command_buffer: CommandBuffer, + _first_discard_rectangle: u32, + _discard_rectangle_count: u32, + _p_discard_rectangles: *const Rect2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_discard_rectangle_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDiscardRectangleEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_discard_rectangle_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_discard_rectangle_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_discard_rectangle_enable_ext( + _command_buffer: CommandBuffer, + _discard_rectangle_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_discard_rectangle_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDiscardRectangleEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_discard_rectangle_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_discard_rectangle_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_discard_rectangle_mode_ext( + _command_buffer: CommandBuffer, + _discard_rectangle_mode: DiscardRectangleModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_discard_rectangle_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDiscardRectangleModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_discard_rectangle_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_conservative_rasterization"] + pub mod conservative_rasterization { + use super::super::*; + pub use { + crate::vk::EXT_CONSERVATIVE_RASTERIZATION_NAME as NAME, + crate::vk::EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_depth_clip_enable"] + pub mod depth_clip_enable { + use super::super::*; + pub use { + crate::vk::EXT_DEPTH_CLIP_ENABLE_NAME as NAME, + crate::vk::EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_swapchain_colorspace"] + pub mod swapchain_colorspace { + use super::super::*; + pub use { + crate::vk::EXT_SWAPCHAIN_COLORSPACE_NAME as NAME, + crate::vk::EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_hdr_metadata"] + pub mod hdr_metadata { + use super::super::*; + pub use { + crate::vk::EXT_HDR_METADATA_NAME as NAME, + crate::vk::EXT_HDR_METADATA_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_hdr_metadata device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_hdr_metadata device-level function pointers"] + pub struct DeviceFn { + pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + set_hdr_metadata_ext: unsafe { + unsafe extern "system" fn set_hdr_metadata_ext( + _device: crate::vk::Device, + _swapchain_count: u32, + _p_swapchains: *const SwapchainKHR, + _p_metadata: *const HdrMetadataEXT<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0"); + let val = _f(cname); + if val.is_null() { + set_hdr_metadata_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_external_memory_dma_buf"] + pub mod external_memory_dma_buf { + use super::super::*; + pub use { + crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_NAME as NAME, + crate::vk::EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_queue_family_foreign"] + pub mod queue_family_foreign { + use super::super::*; + pub use { + crate::vk::EXT_QUEUE_FAMILY_FOREIGN_NAME as NAME, + crate::vk::EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_debug_utils"] + pub mod debug_utils { + use super::super::*; + pub use { + crate::vk::EXT_DEBUG_UTILS_NAME as NAME, + crate::vk::EXT_DEBUG_UTILS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_debug_utils instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_debug_utils instance-level function pointers"] + pub struct InstanceFn { + pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT, + pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT, + pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_debug_utils_messenger_ext: unsafe { + unsafe extern "system" fn create_debug_utils_messenger_ext( + _instance: crate::vk::Instance, + _p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_messenger: *mut DebugUtilsMessengerEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_debug_utils_messenger_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateDebugUtilsMessengerEXT\0", + ); + let val = _f(cname); + if val.is_null() { + create_debug_utils_messenger_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_debug_utils_messenger_ext: unsafe { + unsafe extern "system" fn destroy_debug_utils_messenger_ext( + _instance: crate::vk::Instance, + _messenger: DebugUtilsMessengerEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_debug_utils_messenger_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyDebugUtilsMessengerEXT\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_debug_utils_messenger_ext + } else { + ::core::mem::transmute(val) + } + }, + submit_debug_utils_message_ext: unsafe { + unsafe extern "system" fn submit_debug_utils_message_ext( + _instance: crate::vk::Instance, + _message_severity: DebugUtilsMessageSeverityFlagsEXT, + _message_types: DebugUtilsMessageTypeFlagsEXT, + _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(submit_debug_utils_message_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSubmitDebugUtilsMessageEXT\0"); + let val = _f(cname); + if val.is_null() { + submit_debug_utils_message_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_EXT_debug_utils device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_debug_utils device-level function pointers"] + pub struct DeviceFn { + pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT, + pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT, + pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT, + pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT, + pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT, + pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT, + pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT, + pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + set_debug_utils_object_name_ext: unsafe { + unsafe extern "system" fn set_debug_utils_object_name_ext( + _device: crate::vk::Device, + _p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(set_debug_utils_object_name_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectNameEXT\0"); + let val = _f(cname); + if val.is_null() { + set_debug_utils_object_name_ext + } else { + ::core::mem::transmute(val) + } + }, + set_debug_utils_object_tag_ext: unsafe { + unsafe extern "system" fn set_debug_utils_object_tag_ext( + _device: crate::vk::Device, + _p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(set_debug_utils_object_tag_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectTagEXT\0"); + let val = _f(cname); + if val.is_null() { + set_debug_utils_object_tag_ext + } else { + ::core::mem::transmute(val) + } + }, + queue_begin_debug_utils_label_ext: unsafe { + unsafe extern "system" fn queue_begin_debug_utils_label_ext( + _queue: Queue, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(queue_begin_debug_utils_label_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkQueueBeginDebugUtilsLabelEXT\0", + ); + let val = _f(cname); + if val.is_null() { + queue_begin_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + queue_end_debug_utils_label_ext: unsafe { + unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) { + panic!(concat!( + "Unable to load ", + stringify!(queue_end_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkQueueEndDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + queue_end_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + queue_insert_debug_utils_label_ext: unsafe { + unsafe extern "system" fn queue_insert_debug_utils_label_ext( + _queue: Queue, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(queue_insert_debug_utils_label_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkQueueInsertDebugUtilsLabelEXT\0", + ); + let val = _f(cname); + if val.is_null() { + queue_insert_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_debug_utils_label_ext: unsafe { + unsafe extern "system" fn cmd_begin_debug_utils_label_ext( + _command_buffer: CommandBuffer, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_debug_utils_label_ext: unsafe { + unsafe extern "system" fn cmd_end_debug_utils_label_ext( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_insert_debug_utils_label_ext: unsafe { + unsafe extern "system" fn cmd_insert_debug_utils_label_ext( + _command_buffer: CommandBuffer, + _p_label_info: *const DebugUtilsLabelEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_insert_debug_utils_label_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdInsertDebugUtilsLabelEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_insert_debug_utils_label_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_sampler_filter_minmax"] + pub mod sampler_filter_minmax { + use super::super::*; + pub use { + crate::vk::EXT_SAMPLER_FILTER_MINMAX_NAME as NAME, + crate::vk::EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_inline_uniform_block"] + pub mod inline_uniform_block { + use super::super::*; + pub use { + crate::vk::EXT_INLINE_UNIFORM_BLOCK_NAME as NAME, + crate::vk::EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_stencil_export"] + pub mod shader_stencil_export { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_STENCIL_EXPORT_NAME as NAME, + crate::vk::EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_sample_locations"] + pub mod sample_locations { + use super::super::*; + pub use { + crate::vk::EXT_SAMPLE_LOCATIONS_NAME as NAME, + crate::vk::EXT_SAMPLE_LOCATIONS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_sample_locations instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_sample_locations instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_multisample_properties_ext: + PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_multisample_properties_ext: unsafe { + unsafe extern "system" fn get_physical_device_multisample_properties_ext( + _physical_device: PhysicalDevice, + _samples: SampleCountFlags, + _p_multisample_properties: *mut MultisamplePropertiesEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_multisample_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_multisample_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_EXT_sample_locations device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_sample_locations device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_sample_locations_ext: unsafe { + unsafe extern "system" fn cmd_set_sample_locations_ext( + _command_buffer: CommandBuffer, + _p_sample_locations_info: *const SampleLocationsInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_sample_locations_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleLocationsEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_sample_locations_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_blend_operation_advanced"] + pub mod blend_operation_advanced { + use super::super::*; + pub use { + crate::vk::EXT_BLEND_OPERATION_ADVANCED_NAME as NAME, + crate::vk::EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_post_depth_coverage"] + pub mod post_depth_coverage { + use super::super::*; + pub use { + crate::vk::EXT_POST_DEPTH_COVERAGE_NAME as NAME, + crate::vk::EXT_POST_DEPTH_COVERAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_image_drm_format_modifier"] + pub mod image_drm_format_modifier { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_NAME as NAME, + crate::vk::EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_image_drm_format_modifier device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_image_drm_format_modifier device-level function pointers"] + pub struct DeviceFn { + pub get_image_drm_format_modifier_properties_ext: + PFN_vkGetImageDrmFormatModifierPropertiesEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_image_drm_format_modifier_properties_ext: unsafe { + unsafe extern "system" fn get_image_drm_format_modifier_properties_ext( + _device: crate::vk::Device, + _image: Image, + _p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_image_drm_format_modifier_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageDrmFormatModifierPropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_drm_format_modifier_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_validation_cache"] + pub mod validation_cache { + use super::super::*; + pub use { + crate::vk::EXT_VALIDATION_CACHE_NAME as NAME, + crate::vk::EXT_VALIDATION_CACHE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_validation_cache device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_validation_cache device-level function pointers"] + pub struct DeviceFn { + pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT, + pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT, + pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT, + pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_validation_cache_ext: unsafe { + unsafe extern "system" fn create_validation_cache_ext( + _device: crate::vk::Device, + _p_create_info: *const ValidationCacheCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_validation_cache: *mut ValidationCacheEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_validation_cache_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateValidationCacheEXT\0"); + let val = _f(cname); + if val.is_null() { + create_validation_cache_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_validation_cache_ext: unsafe { + unsafe extern "system" fn destroy_validation_cache_ext( + _device: crate::vk::Device, + _validation_cache: ValidationCacheEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_validation_cache_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyValidationCacheEXT\0"); + let val = _f(cname); + if val.is_null() { + destroy_validation_cache_ext + } else { + ::core::mem::transmute(val) + } + }, + merge_validation_caches_ext: unsafe { + unsafe extern "system" fn merge_validation_caches_ext( + _device: crate::vk::Device, + _dst_cache: ValidationCacheEXT, + _src_cache_count: u32, + _p_src_caches: *const ValidationCacheEXT, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(merge_validation_caches_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkMergeValidationCachesEXT\0"); + let val = _f(cname); + if val.is_null() { + merge_validation_caches_ext + } else { + ::core::mem::transmute(val) + } + }, + get_validation_cache_data_ext: unsafe { + unsafe extern "system" fn get_validation_cache_data_ext( + _device: crate::vk::Device, + _validation_cache: ValidationCacheEXT, + _p_data_size: *mut usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_validation_cache_data_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetValidationCacheDataEXT\0"); + let val = _f(cname); + if val.is_null() { + get_validation_cache_data_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_descriptor_indexing"] + pub mod descriptor_indexing { + use super::super::*; + pub use { + crate::vk::EXT_DESCRIPTOR_INDEXING_NAME as NAME, + crate::vk::EXT_DESCRIPTOR_INDEXING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_viewport_index_layer"] + pub mod shader_viewport_index_layer { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_NAME as NAME, + crate::vk::EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_filter_cubic"] + pub mod filter_cubic { + use super::super::*; + pub use { + crate::vk::EXT_FILTER_CUBIC_NAME as NAME, + crate::vk::EXT_FILTER_CUBIC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_global_priority"] + pub mod global_priority { + use super::super::*; + pub use { + crate::vk::EXT_GLOBAL_PRIORITY_NAME as NAME, + crate::vk::EXT_GLOBAL_PRIORITY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_external_memory_host"] + pub mod external_memory_host { + use super::super::*; + pub use { + crate::vk::EXT_EXTERNAL_MEMORY_HOST_NAME as NAME, + crate::vk::EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_external_memory_host device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_external_memory_host device-level function pointers"] + pub struct DeviceFn { + pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_memory_host_pointer_properties_ext: unsafe { + unsafe extern "system" fn get_memory_host_pointer_properties_ext( + _device: crate::vk::Device, + _handle_type: ExternalMemoryHandleTypeFlags, + _p_host_pointer: *const c_void, + _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_host_pointer_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryHostPointerPropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_memory_host_pointer_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_calibrated_timestamps"] + pub mod calibrated_timestamps { + use super::super::*; + pub use { + crate::vk::EXT_CALIBRATED_TIMESTAMPS_NAME as NAME, + crate::vk::EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_calibrated_timestamps instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_calibrated_timestamps instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_calibrateable_time_domains_ext: + PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_calibrateable_time_domains_ext: unsafe { + unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext( + _physical_device: PhysicalDevice, + _p_time_domain_count: *mut u32, + _p_time_domains: *mut TimeDomainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_calibrateable_time_domains_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_calibrateable_time_domains_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_EXT_calibrated_timestamps device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_calibrated_timestamps device-level function pointers"] + pub struct DeviceFn { + pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_calibrated_timestamps_ext: unsafe { + unsafe extern "system" fn get_calibrated_timestamps_ext( + _device: crate::vk::Device, + _timestamp_count: u32, + _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, + _p_timestamps: *mut u64, + _p_max_deviation: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_calibrated_timestamps_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsEXT\0"); + let val = _f(cname); + if val.is_null() { + get_calibrated_timestamps_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_vertex_attribute_divisor"] + pub mod vertex_attribute_divisor { + use super::super::*; + pub use { + crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_NAME as NAME, + crate::vk::EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_creation_feedback"] + pub mod pipeline_creation_feedback { + use super::super::*; + pub use { + crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_NAME as NAME, + crate::vk::EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pci_bus_info"] + pub mod pci_bus_info { + use super::super::*; + pub use { + crate::vk::EXT_PCI_BUS_INFO_NAME as NAME, + crate::vk::EXT_PCI_BUS_INFO_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_metal_surface"] + pub mod metal_surface { + use super::super::*; + pub use { + crate::vk::EXT_METAL_SURFACE_NAME as NAME, + crate::vk::EXT_METAL_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_metal_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_metal_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_metal_surface_ext: unsafe { + unsafe extern "system" fn create_metal_surface_ext( + _instance: crate::vk::Instance, + _p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_metal_surface_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0"); + let val = _f(cname); + if val.is_null() { + create_metal_surface_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_fragment_density_map"] + pub mod fragment_density_map { + use super::super::*; + pub use { + crate::vk::EXT_FRAGMENT_DENSITY_MAP_NAME as NAME, + crate::vk::EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_scalar_block_layout"] + pub mod scalar_block_layout { + use super::super::*; + pub use { + crate::vk::EXT_SCALAR_BLOCK_LAYOUT_NAME as NAME, + crate::vk::EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_subgroup_size_control"] + pub mod subgroup_size_control { + use super::super::*; + pub use { + crate::vk::EXT_SUBGROUP_SIZE_CONTROL_NAME as NAME, + crate::vk::EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_image_atomic_int64"] + pub mod shader_image_atomic_int64 { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_NAME as NAME, + crate::vk::EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_memory_budget"] + pub mod memory_budget { + use super::super::*; + pub use { + crate::vk::EXT_MEMORY_BUDGET_NAME as NAME, + crate::vk::EXT_MEMORY_BUDGET_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_memory_priority"] + pub mod memory_priority { + use super::super::*; + pub use { + crate::vk::EXT_MEMORY_PRIORITY_NAME as NAME, + crate::vk::EXT_MEMORY_PRIORITY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_buffer_device_address"] + pub mod buffer_device_address { + use super::super::*; + pub use { + crate::vk::EXT_BUFFER_DEVICE_ADDRESS_NAME as NAME, + crate::vk::EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_buffer_device_address device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_buffer_device_address device-level function pointers"] + pub struct DeviceFn { + pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_buffer_device_address_ext: unsafe { + unsafe extern "system" fn get_buffer_device_address_ext( + _device: crate::vk::Device, + _p_info: *const BufferDeviceAddressInfo<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_device_address_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressEXT\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_device_address_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_tooling_info"] + pub mod tooling_info { + use super::super::*; + pub use { + crate::vk::EXT_TOOLING_INFO_NAME as NAME, + crate::vk::EXT_TOOLING_INFO_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_tooling_info instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_tooling_info instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolProperties, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_tool_properties_ext: unsafe { + unsafe extern "system" fn get_physical_device_tool_properties_ext( + _physical_device: PhysicalDevice, + _p_tool_count: *mut u32, + _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_tool_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceToolPropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_tool_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_separate_stencil_usage"] + pub mod separate_stencil_usage { + use super::super::*; + pub use { + crate::vk::EXT_SEPARATE_STENCIL_USAGE_NAME as NAME, + crate::vk::EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_validation_features"] + pub mod validation_features { + use super::super::*; + pub use { + crate::vk::EXT_VALIDATION_FEATURES_NAME as NAME, + crate::vk::EXT_VALIDATION_FEATURES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_fragment_shader_interlock"] + pub mod fragment_shader_interlock { + use super::super::*; + pub use { + crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_NAME as NAME, + crate::vk::EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_ycbcr_image_arrays"] + pub mod ycbcr_image_arrays { + use super::super::*; + pub use { + crate::vk::EXT_YCBCR_IMAGE_ARRAYS_NAME as NAME, + crate::vk::EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_provoking_vertex"] + pub mod provoking_vertex { + use super::super::*; + pub use { + crate::vk::EXT_PROVOKING_VERTEX_NAME as NAME, + crate::vk::EXT_PROVOKING_VERTEX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_full_screen_exclusive"] + pub mod full_screen_exclusive { + use super::super::*; + pub use { + crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_NAME as NAME, + crate::vk::EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_full_screen_exclusive instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_full_screen_exclusive instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_surface_present_modes2_ext: + PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_surface_present_modes2_ext: unsafe { + unsafe extern "system" fn get_physical_device_surface_present_modes2_ext( + _physical_device: PhysicalDevice, + _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + _p_present_mode_count: *mut u32, + _p_present_modes: *mut PresentModeKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_present_modes2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_present_modes2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_EXT_full_screen_exclusive device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_full_screen_exclusive device-level function pointers"] + pub struct DeviceFn { + pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT, + pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT, + pub get_device_group_surface_present_modes2_ext: + PFN_vkGetDeviceGroupSurfacePresentModes2EXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + acquire_full_screen_exclusive_mode_ext: unsafe { + unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_full_screen_exclusive_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkAcquireFullScreenExclusiveModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + acquire_full_screen_exclusive_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + release_full_screen_exclusive_mode_ext: unsafe { + unsafe extern "system" fn release_full_screen_exclusive_mode_ext( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(release_full_screen_exclusive_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkReleaseFullScreenExclusiveModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + release_full_screen_exclusive_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_surface_present_modes2_ext: unsafe { + unsafe extern "system" fn get_device_group_surface_present_modes2_ext( + _device: crate::vk::Device, + _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + _p_modes: *mut DeviceGroupPresentModeFlagsKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_surface_present_modes2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupSurfacePresentModes2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_surface_present_modes2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_headless_surface"] + pub mod headless_surface { + use super::super::*; + pub use { + crate::vk::EXT_HEADLESS_SURFACE_NAME as NAME, + crate::vk::EXT_HEADLESS_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_headless_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_headless_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_headless_surface_ext: unsafe { + unsafe extern "system" fn create_headless_surface_ext( + _instance: crate::vk::Instance, + _p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_headless_surface_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateHeadlessSurfaceEXT\0"); + let val = _f(cname); + if val.is_null() { + create_headless_surface_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_line_rasterization"] + pub mod line_rasterization { + use super::super::*; + pub use { + crate::vk::EXT_LINE_RASTERIZATION_NAME as NAME, + crate::vk::EXT_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_line_rasterization device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_line_rasterization device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_line_stipple_ext: unsafe { + unsafe extern "system" fn cmd_set_line_stipple_ext( + _command_buffer: CommandBuffer, + _line_stipple_factor: u32, + _line_stipple_pattern: u16, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_stipple_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_stipple_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_shader_atomic_float"] + pub mod shader_atomic_float { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_ATOMIC_FLOAT_NAME as NAME, + crate::vk::EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_host_query_reset"] + pub mod host_query_reset { + use super::super::*; + pub use { + crate::vk::EXT_HOST_QUERY_RESET_NAME as NAME, + crate::vk::EXT_HOST_QUERY_RESET_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_host_query_reset device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_host_query_reset device-level function pointers"] + pub struct DeviceFn { + pub reset_query_pool_ext: PFN_vkResetQueryPool, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + reset_query_pool_ext: unsafe { + unsafe extern "system" fn reset_query_pool_ext( + _device: crate::vk::Device, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + ) { + panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0"); + let val = _f(cname); + if val.is_null() { + reset_query_pool_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_index_type_uint8"] + pub mod index_type_uint8 { + use super::super::*; + pub use { + crate::vk::EXT_INDEX_TYPE_UINT8_NAME as NAME, + crate::vk::EXT_INDEX_TYPE_UINT8_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_extended_dynamic_state"] + pub mod extended_dynamic_state { + use super::super::*; + pub use { + crate::vk::EXT_EXTENDED_DYNAMIC_STATE_NAME as NAME, + crate::vk::EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_extended_dynamic_state device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_extended_dynamic_state device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode, + pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace, + pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology, + pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount, + pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount, + pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2, + pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable, + pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable, + pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp, + pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable, + pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable, + pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_cull_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_cull_mode_ext( + _command_buffer: CommandBuffer, + _cull_mode: CullModeFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_cull_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_cull_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_front_face_ext: unsafe { + unsafe extern "system" fn cmd_set_front_face_ext( + _command_buffer: CommandBuffer, + _front_face: FrontFace, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_front_face_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_front_face_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_topology_ext: unsafe { + unsafe extern "system" fn cmd_set_primitive_topology_ext( + _command_buffer: CommandBuffer, + _primitive_topology: PrimitiveTopology, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_topology_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_topology_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_with_count_ext: unsafe { + unsafe extern "system" fn cmd_set_viewport_with_count_ext( + _command_buffer: CommandBuffer, + _viewport_count: u32, + _p_viewports: *const Viewport, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_with_count_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCountEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_with_count_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_scissor_with_count_ext: unsafe { + unsafe extern "system" fn cmd_set_scissor_with_count_ext( + _command_buffer: CommandBuffer, + _scissor_count: u32, + _p_scissors: *const Rect2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_scissor_with_count_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCountEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_scissor_with_count_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_vertex_buffers2_ext: unsafe { + unsafe extern "system" fn cmd_bind_vertex_buffers2_ext( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _p_buffers: *const Buffer, + _p_offsets: *const DeviceSize, + _p_sizes: *const DeviceSize, + _p_strides: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_vertex_buffers2_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2EXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_vertex_buffers2_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_test_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_test_enable_ext( + _command_buffer: CommandBuffer, + _depth_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_test_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_test_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_write_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_write_enable_ext( + _command_buffer: CommandBuffer, + _depth_write_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_write_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_write_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_compare_op_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_compare_op_ext( + _command_buffer: CommandBuffer, + _depth_compare_op: CompareOp, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_compare_op_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_compare_op_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bounds_test_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext( + _command_buffer: CommandBuffer, + _depth_bounds_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bounds_test_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDepthBoundsTestEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bounds_test_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_test_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_stencil_test_enable_ext( + _command_buffer: CommandBuffer, + _stencil_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_test_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_test_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_op_ext: unsafe { + unsafe extern "system" fn cmd_set_stencil_op_ext( + _command_buffer: CommandBuffer, + _face_mask: StencilFaceFlags, + _fail_op: StencilOp, + _pass_op: StencilOp, + _depth_fail_op: StencilOp, + _compare_op: CompareOp, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_op_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_op_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_host_image_copy"] + pub mod host_image_copy { + use super::super::*; + pub use { + crate::vk::EXT_HOST_IMAGE_COPY_NAME as NAME, + crate::vk::EXT_HOST_IMAGE_COPY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_host_image_copy device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_host_image_copy device-level function pointers"] + pub struct DeviceFn { + pub copy_memory_to_image_ext: PFN_vkCopyMemoryToImageEXT, + pub copy_image_to_memory_ext: PFN_vkCopyImageToMemoryEXT, + pub copy_image_to_image_ext: PFN_vkCopyImageToImageEXT, + pub transition_image_layout_ext: PFN_vkTransitionImageLayoutEXT, + pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + copy_memory_to_image_ext: unsafe { + unsafe extern "system" fn copy_memory_to_image_ext( + _device: crate::vk::Device, + _p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_memory_to_image_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToImageEXT\0"); + let val = _f(cname); + if val.is_null() { + copy_memory_to_image_ext + } else { + ::core::mem::transmute(val) + } + }, + copy_image_to_memory_ext: unsafe { + unsafe extern "system" fn copy_image_to_memory_ext( + _device: crate::vk::Device, + _p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_image_to_memory_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToMemoryEXT\0"); + let val = _f(cname); + if val.is_null() { + copy_image_to_memory_ext + } else { + ::core::mem::transmute(val) + } + }, + copy_image_to_image_ext: unsafe { + unsafe extern "system" fn copy_image_to_image_ext( + _device: crate::vk::Device, + _p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_image_to_image_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToImageEXT\0"); + let val = _f(cname); + if val.is_null() { + copy_image_to_image_ext + } else { + ::core::mem::transmute(val) + } + }, + transition_image_layout_ext: unsafe { + unsafe extern "system" fn transition_image_layout_ext( + _device: crate::vk::Device, + _transition_count: u32, + _p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(transition_image_layout_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkTransitionImageLayoutEXT\0"); + let val = _f(cname); + if val.is_null() { + transition_image_layout_ext + } else { + ::core::mem::transmute(val) + } + }, + get_image_subresource_layout2_ext: unsafe { + unsafe extern "system" fn get_image_subresource_layout2_ext( + _device: crate::vk::Device, + _image: Image, + _p_subresource: *const ImageSubresource2KHR<'_>, + _p_layout: *mut SubresourceLayout2KHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_subresource_layout2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageSubresourceLayout2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_subresource_layout2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_map_memory_placed"] + pub mod map_memory_placed { + use super::super::*; + pub use { + crate::vk::EXT_MAP_MEMORY_PLACED_NAME as NAME, + crate::vk::EXT_MAP_MEMORY_PLACED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_atomic_float2"] + pub mod shader_atomic_float2 { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_ATOMIC_FLOAT2_NAME as NAME, + crate::vk::EXT_SHADER_ATOMIC_FLOAT2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_surface_maintenance1"] + pub mod surface_maintenance1 { + use super::super::*; + pub use { + crate::vk::EXT_SURFACE_MAINTENANCE1_NAME as NAME, + crate::vk::EXT_SURFACE_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_swapchain_maintenance1"] + pub mod swapchain_maintenance1 { + use super::super::*; + pub use { + crate::vk::EXT_SWAPCHAIN_MAINTENANCE1_NAME as NAME, + crate::vk::EXT_SWAPCHAIN_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_swapchain_maintenance1 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_swapchain_maintenance1 device-level function pointers"] + pub struct DeviceFn { + pub release_swapchain_images_ext: PFN_vkReleaseSwapchainImagesEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + release_swapchain_images_ext: unsafe { + unsafe extern "system" fn release_swapchain_images_ext( + _device: crate::vk::Device, + _p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(release_swapchain_images_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkReleaseSwapchainImagesEXT\0"); + let val = _f(cname); + if val.is_null() { + release_swapchain_images_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_shader_demote_to_helper_invocation"] + pub mod shader_demote_to_helper_invocation { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_NAME as NAME, + crate::vk::EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_texel_buffer_alignment"] + pub mod texel_buffer_alignment { + use super::super::*; + pub use { + crate::vk::EXT_TEXEL_BUFFER_ALIGNMENT_NAME as NAME, + crate::vk::EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_depth_bias_control"] + pub mod depth_bias_control { + use super::super::*; + pub use { + crate::vk::EXT_DEPTH_BIAS_CONTROL_NAME as NAME, + crate::vk::EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_depth_bias_control device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_depth_bias_control device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_depth_bias2_ext: PFN_vkCmdSetDepthBias2EXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_depth_bias2_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_bias2_ext( + _command_buffer: CommandBuffer, + _p_depth_bias_info: *const DepthBiasInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bias2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBias2EXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bias2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_device_memory_report"] + pub mod device_memory_report { + use super::super::*; + pub use { + crate::vk::EXT_DEVICE_MEMORY_REPORT_NAME as NAME, + crate::vk::EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_acquire_drm_display"] + pub mod acquire_drm_display { + use super::super::*; + pub use { + crate::vk::EXT_ACQUIRE_DRM_DISPLAY_NAME as NAME, + crate::vk::EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_acquire_drm_display instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_acquire_drm_display instance-level function pointers"] + pub struct InstanceFn { + pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT, + pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + acquire_drm_display_ext: unsafe { + unsafe extern "system" fn acquire_drm_display_ext( + _physical_device: PhysicalDevice, + _drm_fd: i32, + _display: DisplayKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_drm_display_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireDrmDisplayEXT\0"); + let val = _f(cname); + if val.is_null() { + acquire_drm_display_ext + } else { + ::core::mem::transmute(val) + } + }, + get_drm_display_ext: unsafe { + unsafe extern "system" fn get_drm_display_ext( + _physical_device: PhysicalDevice, + _drm_fd: i32, + _connector_id: u32, + _display: *mut DisplayKHR, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_drm_display_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDrmDisplayEXT\0"); + let val = _f(cname); + if val.is_null() { + get_drm_display_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_robustness2"] + pub mod robustness2 { + use super::super::*; + pub use { + crate::vk::EXT_ROBUSTNESS2_NAME as NAME, + crate::vk::EXT_ROBUSTNESS2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_custom_border_color"] + pub mod custom_border_color { + use super::super::*; + pub use { + crate::vk::EXT_CUSTOM_BORDER_COLOR_NAME as NAME, + crate::vk::EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_private_data"] + pub mod private_data { + use super::super::*; + pub use { + crate::vk::EXT_PRIVATE_DATA_NAME as NAME, + crate::vk::EXT_PRIVATE_DATA_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_private_data device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_private_data device-level function pointers"] + pub struct DeviceFn { + pub create_private_data_slot_ext: PFN_vkCreatePrivateDataSlot, + pub destroy_private_data_slot_ext: PFN_vkDestroyPrivateDataSlot, + pub set_private_data_ext: PFN_vkSetPrivateData, + pub get_private_data_ext: PFN_vkGetPrivateData, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_private_data_slot_ext: unsafe { + unsafe extern "system" fn create_private_data_slot_ext( + _device: crate::vk::Device, + _p_create_info: *const PrivateDataSlotCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_private_data_slot: *mut PrivateDataSlot, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_private_data_slot_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreatePrivateDataSlotEXT\0"); + let val = _f(cname); + if val.is_null() { + create_private_data_slot_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_private_data_slot_ext: unsafe { + unsafe extern "system" fn destroy_private_data_slot_ext( + _device: crate::vk::Device, + _private_data_slot: PrivateDataSlot, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_private_data_slot_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyPrivateDataSlotEXT\0"); + let val = _f(cname); + if val.is_null() { + destroy_private_data_slot_ext + } else { + ::core::mem::transmute(val) + } + }, + set_private_data_ext: unsafe { + unsafe extern "system" fn set_private_data_ext( + _device: crate::vk::Device, + _object_type: ObjectType, + _object_handle: u64, + _private_data_slot: PrivateDataSlot, + _data: u64, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(set_private_data_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateDataEXT\0"); + let val = _f(cname); + if val.is_null() { + set_private_data_ext + } else { + ::core::mem::transmute(val) + } + }, + get_private_data_ext: unsafe { + unsafe extern "system" fn get_private_data_ext( + _device: crate::vk::Device, + _object_type: ObjectType, + _object_handle: u64, + _private_data_slot: PrivateDataSlot, + _p_data: *mut u64, + ) { + panic!(concat!("Unable to load ", stringify!(get_private_data_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateDataEXT\0"); + let val = _f(cname); + if val.is_null() { + get_private_data_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_pipeline_creation_cache_control"] + pub mod pipeline_creation_cache_control { + use super::super::*; + pub use { + crate::vk::EXT_PIPELINE_CREATION_CACHE_CONTROL_NAME as NAME, + crate::vk::EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_metal_objects"] + pub mod metal_objects { + use super::super::*; + pub use { + crate::vk::EXT_METAL_OBJECTS_NAME as NAME, + crate::vk::EXT_METAL_OBJECTS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_metal_objects device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_metal_objects device-level function pointers"] + pub struct DeviceFn { + pub export_metal_objects_ext: PFN_vkExportMetalObjectsEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + export_metal_objects_ext: unsafe { + unsafe extern "system" fn export_metal_objects_ext( + _device: crate::vk::Device, + _p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(export_metal_objects_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkExportMetalObjectsEXT\0"); + let val = _f(cname); + if val.is_null() { + export_metal_objects_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_descriptor_buffer"] + pub mod descriptor_buffer { + use super::super::*; + pub use { + crate::vk::EXT_DESCRIPTOR_BUFFER_NAME as NAME, + crate::vk::EXT_DESCRIPTOR_BUFFER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_descriptor_buffer device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_descriptor_buffer device-level function pointers"] + pub struct DeviceFn { + pub get_descriptor_set_layout_size_ext: PFN_vkGetDescriptorSetLayoutSizeEXT, + pub get_descriptor_set_layout_binding_offset_ext: + PFN_vkGetDescriptorSetLayoutBindingOffsetEXT, + pub get_descriptor_ext: PFN_vkGetDescriptorEXT, + pub cmd_bind_descriptor_buffers_ext: PFN_vkCmdBindDescriptorBuffersEXT, + pub cmd_set_descriptor_buffer_offsets_ext: PFN_vkCmdSetDescriptorBufferOffsetsEXT, + pub cmd_bind_descriptor_buffer_embedded_samplers_ext: + PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT, + pub get_buffer_opaque_capture_descriptor_data_ext: + PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT, + pub get_image_opaque_capture_descriptor_data_ext: + PFN_vkGetImageOpaqueCaptureDescriptorDataEXT, + pub get_image_view_opaque_capture_descriptor_data_ext: + PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT, + pub get_sampler_opaque_capture_descriptor_data_ext: + PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT, + pub get_acceleration_structure_opaque_capture_descriptor_data_ext: + PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_descriptor_set_layout_size_ext: unsafe { + unsafe extern "system" fn get_descriptor_set_layout_size_ext( + _device: crate::vk::Device, + _layout: DescriptorSetLayout, + _p_layout_size_in_bytes: *mut DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_descriptor_set_layout_size_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDescriptorSetLayoutSizeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_descriptor_set_layout_size_ext + } else { + ::core::mem::transmute(val) + } + }, + get_descriptor_set_layout_binding_offset_ext: unsafe { + unsafe extern "system" fn get_descriptor_set_layout_binding_offset_ext( + _device: crate::vk::Device, + _layout: DescriptorSetLayout, + _binding: u32, + _p_offset: *mut DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_descriptor_set_layout_binding_offset_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDescriptorSetLayoutBindingOffsetEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_descriptor_set_layout_binding_offset_ext + } else { + ::core::mem::transmute(val) + } + }, + get_descriptor_ext: unsafe { + unsafe extern "system" fn get_descriptor_ext( + _device: crate::vk::Device, + _p_descriptor_info: *const DescriptorGetInfoEXT<'_>, + _data_size: usize, + _p_descriptor: *mut c_void, + ) { + panic!(concat!("Unable to load ", stringify!(get_descriptor_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDescriptorEXT\0"); + let val = _f(cname); + if val.is_null() { + get_descriptor_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_descriptor_buffers_ext: unsafe { + unsafe extern "system" fn cmd_bind_descriptor_buffers_ext( + _command_buffer: CommandBuffer, + _buffer_count: u32, + _p_binding_infos: *const DescriptorBufferBindingInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_descriptor_buffers_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorBuffersEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_descriptor_buffers_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_descriptor_buffer_offsets_ext: unsafe { + unsafe extern "system" fn cmd_set_descriptor_buffer_offsets_ext( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _layout: PipelineLayout, + _first_set: u32, + _set_count: u32, + _p_buffer_indices: *const u32, + _p_offsets: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_descriptor_buffer_offsets_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDescriptorBufferOffsetsEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_descriptor_buffer_offsets_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_descriptor_buffer_embedded_samplers_ext: unsafe { + unsafe extern "system" fn cmd_bind_descriptor_buffer_embedded_samplers_ext( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _layout: PipelineLayout, + _set: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_descriptor_buffer_embedded_samplers_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBindDescriptorBufferEmbeddedSamplersEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_bind_descriptor_buffer_embedded_samplers_ext + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_opaque_capture_descriptor_data_ext: unsafe { + unsafe extern "system" fn get_buffer_opaque_capture_descriptor_data_ext( + _device: crate::vk::Device, + _p_info: *const BufferCaptureDescriptorDataInfoEXT<'_>, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_opaque_capture_descriptor_data_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetBufferOpaqueCaptureDescriptorDataEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_buffer_opaque_capture_descriptor_data_ext + } else { + ::core::mem::transmute(val) + } + }, + get_image_opaque_capture_descriptor_data_ext: unsafe { + unsafe extern "system" fn get_image_opaque_capture_descriptor_data_ext( + _device: crate::vk::Device, + _p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_image_opaque_capture_descriptor_data_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageOpaqueCaptureDescriptorDataEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_opaque_capture_descriptor_data_ext + } else { + ::core::mem::transmute(val) + } + }, + get_image_view_opaque_capture_descriptor_data_ext: unsafe { + unsafe extern "system" fn get_image_view_opaque_capture_descriptor_data_ext( + _device: crate::vk::Device, + _p_info: *const ImageViewCaptureDescriptorDataInfoEXT<'_>, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_image_view_opaque_capture_descriptor_data_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageViewOpaqueCaptureDescriptorDataEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_view_opaque_capture_descriptor_data_ext + } else { + ::core::mem::transmute(val) + } + }, + get_sampler_opaque_capture_descriptor_data_ext: unsafe { + unsafe extern "system" fn get_sampler_opaque_capture_descriptor_data_ext( + _device: crate::vk::Device, + _p_info: *const SamplerCaptureDescriptorDataInfoEXT<'_>, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_sampler_opaque_capture_descriptor_data_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetSamplerOpaqueCaptureDescriptorDataEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_sampler_opaque_capture_descriptor_data_ext + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_opaque_capture_descriptor_data_ext: unsafe { + unsafe extern "system" fn get_acceleration_structure_opaque_capture_descriptor_data_ext( + _device: crate::vk::Device, + _p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT<'_>, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!( + get_acceleration_structure_opaque_capture_descriptor_data_ext + ) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_opaque_capture_descriptor_data_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_graphics_pipeline_library"] + pub mod graphics_pipeline_library { + use super::super::*; + pub use { + crate::vk::EXT_GRAPHICS_PIPELINE_LIBRARY_NAME as NAME, + crate::vk::EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_mesh_shader"] + pub mod mesh_shader { + use super::super::*; + pub use { + crate::vk::EXT_MESH_SHADER_NAME as NAME, + crate::vk::EXT_MESH_SHADER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_mesh_shader device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_mesh_shader device-level function pointers"] + pub struct DeviceFn { + pub cmd_draw_mesh_tasks_ext: PFN_vkCmdDrawMeshTasksEXT, + pub cmd_draw_mesh_tasks_indirect_ext: PFN_vkCmdDrawMeshTasksIndirectEXT, + pub cmd_draw_mesh_tasks_indirect_count_ext: PFN_vkCmdDrawMeshTasksIndirectCountEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_mesh_tasks_ext: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_ext( + _command_buffer: CommandBuffer, + _group_count_x: u32, + _group_count_y: u32, + _group_count_z: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_mesh_tasks_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_mesh_tasks_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_mesh_tasks_indirect_ext: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_ext( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_mesh_tasks_indirect_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_mesh_tasks_indirect_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_mesh_tasks_indirect_count_ext: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_ext( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_mesh_tasks_indirect_count_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDrawMeshTasksIndirectCountEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_draw_mesh_tasks_indirect_count_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_ycbcr_2plane_444_formats"] + pub mod ycbcr_2plane_444_formats { + use super::super::*; + pub use { + crate::vk::EXT_YCBCR_2PLANE_444_FORMATS_NAME as NAME, + crate::vk::EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_fragment_density_map2"] + pub mod fragment_density_map2 { + use super::super::*; + pub use { + crate::vk::EXT_FRAGMENT_DENSITY_MAP2_NAME as NAME, + crate::vk::EXT_FRAGMENT_DENSITY_MAP2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_image_robustness"] + pub mod image_robustness { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_ROBUSTNESS_NAME as NAME, + crate::vk::EXT_IMAGE_ROBUSTNESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_image_compression_control"] + pub mod image_compression_control { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_NAME as NAME, + crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_image_compression_control device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_image_compression_control device-level function pointers"] + pub struct DeviceFn { + pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_image_subresource_layout2_ext: unsafe { + unsafe extern "system" fn get_image_subresource_layout2_ext( + _device: crate::vk::Device, + _image: Image, + _p_subresource: *const ImageSubresource2KHR<'_>, + _p_layout: *mut SubresourceLayout2KHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_subresource_layout2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageSubresourceLayout2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_subresource_layout2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_attachment_feedback_loop_layout"] + pub mod attachment_feedback_loop_layout { + use super::super::*; + pub use { + crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_NAME as NAME, + crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_4444_formats"] + pub mod _4444_formats { + use super::super::*; + pub use { + crate::vk::EXT_4444_FORMATS_NAME as NAME, + crate::vk::EXT_4444_FORMATS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_device_fault"] + pub mod device_fault { + use super::super::*; + pub use { + crate::vk::EXT_DEVICE_FAULT_NAME as NAME, + crate::vk::EXT_DEVICE_FAULT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_device_fault device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_device_fault device-level function pointers"] + pub struct DeviceFn { + pub get_device_fault_info_ext: PFN_vkGetDeviceFaultInfoEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_device_fault_info_ext: unsafe { + unsafe extern "system" fn get_device_fault_info_ext( + _device: crate::vk::Device, + _p_fault_counts: *mut DeviceFaultCountsEXT<'_>, + _p_fault_info: *mut DeviceFaultInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_fault_info_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceFaultInfoEXT\0"); + let val = _f(cname); + if val.is_null() { + get_device_fault_info_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_rgba10x6_formats"] + pub mod rgba10x6_formats { + use super::super::*; + pub use { + crate::vk::EXT_RGBA10X6_FORMATS_NAME as NAME, + crate::vk::EXT_RGBA10X6_FORMATS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_directfb_surface"] + pub mod directfb_surface { + use super::super::*; + pub use { + crate::vk::EXT_DIRECTFB_SURFACE_NAME as NAME, + crate::vk::EXT_DIRECTFB_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_directfb_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_directfb_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT, + pub get_physical_device_direct_fb_presentation_support_ext: + PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_direct_fb_surface_ext: unsafe { + unsafe extern "system" fn create_direct_fb_surface_ext( + _instance: crate::vk::Instance, + _p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_direct_fb_surface_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateDirectFBSurfaceEXT\0"); + let val = _f(cname); + if val.is_null() { + create_direct_fb_surface_ext + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_direct_fb_presentation_support_ext: unsafe { + unsafe extern "system" fn get_physical_device_direct_fb_presentation_support_ext( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _dfb: *mut IDirectFB, + ) -> Bool32 { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_direct_fb_presentation_support_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_direct_fb_presentation_support_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_vertex_input_dynamic_state"] + pub mod vertex_input_dynamic_state { + use super::super::*; + pub use { + crate::vk::EXT_VERTEX_INPUT_DYNAMIC_STATE_NAME as NAME, + crate::vk::EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_vertex_input_dynamic_state device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_vertex_input_dynamic_state device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_vertex_input_ext: unsafe { + unsafe extern "system" fn cmd_set_vertex_input_ext( + _command_buffer: CommandBuffer, + _vertex_binding_description_count: u32, + _p_vertex_binding_descriptions : * const VertexInputBindingDescription2EXT < '_ >, + _vertex_attribute_description_count: u32, + _p_vertex_attribute_descriptions : * const VertexInputAttributeDescription2EXT < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_vertex_input_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_vertex_input_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_physical_device_drm"] + pub mod physical_device_drm { + use super::super::*; + pub use { + crate::vk::EXT_PHYSICAL_DEVICE_DRM_NAME as NAME, + crate::vk::EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_device_address_binding_report"] + pub mod device_address_binding_report { + use super::super::*; + pub use { + crate::vk::EXT_DEVICE_ADDRESS_BINDING_REPORT_NAME as NAME, + crate::vk::EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_depth_clip_control"] + pub mod depth_clip_control { + use super::super::*; + pub use { + crate::vk::EXT_DEPTH_CLIP_CONTROL_NAME as NAME, + crate::vk::EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_primitive_topology_list_restart"] + pub mod primitive_topology_list_restart { + use super::super::*; + pub use { + crate::vk::EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_NAME as NAME, + crate::vk::EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_properties"] + pub mod pipeline_properties { + use super::super::*; + pub use { + crate::vk::EXT_PIPELINE_PROPERTIES_NAME as NAME, + crate::vk::EXT_PIPELINE_PROPERTIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_pipeline_properties device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[allow(non_camel_case_types)] + #[doc = "Implemented for all types that can be passed as argument to `pipeline_properties` in [`PFN_vkGetPipelinePropertiesEXT`]"] + pub unsafe trait GetPipelinePropertiesEXTParamPipelineProperties {} + unsafe impl GetPipelinePropertiesEXTParamPipelineProperties + for PipelinePropertiesIdentifierEXT<'_> + { + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_pipeline_properties device-level function pointers"] + pub struct DeviceFn { + pub get_pipeline_properties_ext: PFN_vkGetPipelinePropertiesEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_pipeline_properties_ext: unsafe { + unsafe extern "system" fn get_pipeline_properties_ext( + _device: crate::vk::Device, + _p_pipeline_info: *const PipelineInfoEXT<'_>, + _p_pipeline_properties: *mut BaseOutStructure<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_properties_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPipelinePropertiesEXT\0"); + let val = _f(cname); + if val.is_null() { + get_pipeline_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_frame_boundary"] + pub mod frame_boundary { + use super::super::*; + pub use { + crate::vk::EXT_FRAME_BOUNDARY_NAME as NAME, + crate::vk::EXT_FRAME_BOUNDARY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_multisampled_render_to_single_sampled"] + pub mod multisampled_render_to_single_sampled { + use super::super::*; + pub use { + crate::vk::EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_NAME as NAME, + crate::vk::EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_extended_dynamic_state2"] + pub mod extended_dynamic_state2 { + use super::super::*; + pub use { + crate::vk::EXT_EXTENDED_DYNAMIC_STATE2_NAME as NAME, + crate::vk::EXT_EXTENDED_DYNAMIC_STATE2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_extended_dynamic_state2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_extended_dynamic_state2 device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT, + pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnable, + pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnable, + pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT, + pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnable, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_patch_control_points_ext: unsafe { + unsafe extern "system" fn cmd_set_patch_control_points_ext( + _command_buffer: CommandBuffer, + _patch_control_points: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_patch_control_points_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPatchControlPointsEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_patch_control_points_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterizer_discard_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext( + _command_buffer: CommandBuffer, + _rasterizer_discard_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterizer_discard_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRasterizerDiscardEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterizer_discard_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bias_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_bias_enable_ext( + _command_buffer: CommandBuffer, + _depth_bias_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bias_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bias_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_logic_op_ext: unsafe { + unsafe extern "system" fn cmd_set_logic_op_ext( + _command_buffer: CommandBuffer, + _logic_op: LogicOp, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_logic_op_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_restart_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_primitive_restart_enable_ext( + _command_buffer: CommandBuffer, + _primitive_restart_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_restart_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetPrimitiveRestartEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_restart_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_color_write_enable"] + pub mod color_write_enable { + use super::super::*; + pub use { + crate::vk::EXT_COLOR_WRITE_ENABLE_NAME as NAME, + crate::vk::EXT_COLOR_WRITE_ENABLE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_color_write_enable device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_color_write_enable device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_color_write_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_color_write_enable_ext( + _command_buffer: CommandBuffer, + _attachment_count: u32, + _p_color_write_enables: *const Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_write_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_write_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_primitives_generated_query"] + pub mod primitives_generated_query { + use super::super::*; + pub use { + crate::vk::EXT_PRIMITIVES_GENERATED_QUERY_NAME as NAME, + crate::vk::EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_global_priority_query"] + pub mod global_priority_query { + use super::super::*; + pub use { + crate::vk::EXT_GLOBAL_PRIORITY_QUERY_NAME as NAME, + crate::vk::EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_image_view_min_lod"] + pub mod image_view_min_lod { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_VIEW_MIN_LOD_NAME as NAME, + crate::vk::EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_multi_draw"] + pub mod multi_draw { + use super::super::*; + pub use { + crate::vk::EXT_MULTI_DRAW_NAME as NAME, + crate::vk::EXT_MULTI_DRAW_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_multi_draw device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_multi_draw device-level function pointers"] + pub struct DeviceFn { + pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT, + pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_multi_ext: unsafe { + unsafe extern "system" fn cmd_draw_multi_ext( + _command_buffer: CommandBuffer, + _draw_count: u32, + _p_vertex_info: *const MultiDrawInfoEXT, + _instance_count: u32, + _first_instance: u32, + _stride: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_draw_multi_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_multi_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_multi_indexed_ext: unsafe { + unsafe extern "system" fn cmd_draw_multi_indexed_ext( + _command_buffer: CommandBuffer, + _draw_count: u32, + _p_index_info: *const MultiDrawIndexedInfoEXT, + _instance_count: u32, + _first_instance: u32, + _stride: u32, + _p_vertex_offset: *const i32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_multi_indexed_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiIndexedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_multi_indexed_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_image_2d_view_of_3d"] + pub mod image_2d_view_of_3d { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_2D_VIEW_OF_3D_NAME as NAME, + crate::vk::EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_tile_image"] + pub mod shader_tile_image { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_TILE_IMAGE_NAME as NAME, + crate::vk::EXT_SHADER_TILE_IMAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_opacity_micromap"] + pub mod opacity_micromap { + use super::super::*; + pub use { + crate::vk::EXT_OPACITY_MICROMAP_NAME as NAME, + crate::vk::EXT_OPACITY_MICROMAP_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_opacity_micromap device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_opacity_micromap device-level function pointers"] + pub struct DeviceFn { + pub create_micromap_ext: PFN_vkCreateMicromapEXT, + pub destroy_micromap_ext: PFN_vkDestroyMicromapEXT, + pub cmd_build_micromaps_ext: PFN_vkCmdBuildMicromapsEXT, + pub build_micromaps_ext: PFN_vkBuildMicromapsEXT, + pub copy_micromap_ext: PFN_vkCopyMicromapEXT, + pub copy_micromap_to_memory_ext: PFN_vkCopyMicromapToMemoryEXT, + pub copy_memory_to_micromap_ext: PFN_vkCopyMemoryToMicromapEXT, + pub write_micromaps_properties_ext: PFN_vkWriteMicromapsPropertiesEXT, + pub cmd_copy_micromap_ext: PFN_vkCmdCopyMicromapEXT, + pub cmd_copy_micromap_to_memory_ext: PFN_vkCmdCopyMicromapToMemoryEXT, + pub cmd_copy_memory_to_micromap_ext: PFN_vkCmdCopyMemoryToMicromapEXT, + pub cmd_write_micromaps_properties_ext: PFN_vkCmdWriteMicromapsPropertiesEXT, + pub get_device_micromap_compatibility_ext: PFN_vkGetDeviceMicromapCompatibilityEXT, + pub get_micromap_build_sizes_ext: PFN_vkGetMicromapBuildSizesEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_micromap_ext: unsafe { + unsafe extern "system" fn create_micromap_ext( + _device: crate::vk::Device, + _p_create_info: *const MicromapCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_micromap: *mut MicromapEXT, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_micromap_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateMicromapEXT\0"); + let val = _f(cname); + if val.is_null() { + create_micromap_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_micromap_ext: unsafe { + unsafe extern "system" fn destroy_micromap_ext( + _device: crate::vk::Device, + _micromap: MicromapEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_micromap_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyMicromapEXT\0"); + let val = _f(cname); + if val.is_null() { + destroy_micromap_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_build_micromaps_ext: unsafe { + unsafe extern "system" fn cmd_build_micromaps_ext( + _command_buffer: CommandBuffer, + _info_count: u32, + _p_infos: *const MicromapBuildInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_build_micromaps_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBuildMicromapsEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_build_micromaps_ext + } else { + ::core::mem::transmute(val) + } + }, + build_micromaps_ext: unsafe { + unsafe extern "system" fn build_micromaps_ext( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _info_count: u32, + _p_infos: *const MicromapBuildInfoEXT<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(build_micromaps_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBuildMicromapsEXT\0"); + let val = _f(cname); + if val.is_null() { + build_micromaps_ext + } else { + ::core::mem::transmute(val) + } + }, + copy_micromap_ext: unsafe { + unsafe extern "system" fn copy_micromap_ext( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _p_info: *const CopyMicromapInfoEXT<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(copy_micromap_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapEXT\0"); + let val = _f(cname); + if val.is_null() { + copy_micromap_ext + } else { + ::core::mem::transmute(val) + } + }, + copy_micromap_to_memory_ext: unsafe { + unsafe extern "system" fn copy_micromap_to_memory_ext( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _p_info: *const CopyMicromapToMemoryInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_micromap_to_memory_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapToMemoryEXT\0"); + let val = _f(cname); + if val.is_null() { + copy_micromap_to_memory_ext + } else { + ::core::mem::transmute(val) + } + }, + copy_memory_to_micromap_ext: unsafe { + unsafe extern "system" fn copy_memory_to_micromap_ext( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _p_info: *const CopyMemoryToMicromapInfoEXT<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_memory_to_micromap_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToMicromapEXT\0"); + let val = _f(cname); + if val.is_null() { + copy_memory_to_micromap_ext + } else { + ::core::mem::transmute(val) + } + }, + write_micromaps_properties_ext: unsafe { + unsafe extern "system" fn write_micromaps_properties_ext( + _device: crate::vk::Device, + _micromap_count: u32, + _p_micromaps: *const MicromapEXT, + _query_type: QueryType, + _data_size: usize, + _p_data: *mut c_void, + _stride: usize, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(write_micromaps_properties_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkWriteMicromapsPropertiesEXT\0"); + let val = _f(cname); + if val.is_null() { + write_micromaps_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_micromap_ext: unsafe { + unsafe extern "system" fn cmd_copy_micromap_ext( + _command_buffer: CommandBuffer, + _p_info: *const CopyMicromapInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_micromap_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_micromap_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_micromap_to_memory_ext: unsafe { + unsafe extern "system" fn cmd_copy_micromap_to_memory_ext( + _command_buffer: CommandBuffer, + _p_info: *const CopyMicromapToMemoryInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_micromap_to_memory_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapToMemoryEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_micromap_to_memory_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_memory_to_micromap_ext: unsafe { + unsafe extern "system" fn cmd_copy_memory_to_micromap_ext( + _command_buffer: CommandBuffer, + _p_info: *const CopyMemoryToMicromapInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_memory_to_micromap_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryToMicromapEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_memory_to_micromap_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_micromaps_properties_ext: unsafe { + unsafe extern "system" fn cmd_write_micromaps_properties_ext( + _command_buffer: CommandBuffer, + _micromap_count: u32, + _p_micromaps: *const MicromapEXT, + _query_type: QueryType, + _query_pool: QueryPool, + _first_query: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_micromaps_properties_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdWriteMicromapsPropertiesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_write_micromaps_properties_ext + } else { + ::core::mem::transmute(val) + } + }, + get_device_micromap_compatibility_ext: unsafe { + unsafe extern "system" fn get_device_micromap_compatibility_ext( + _device: crate::vk::Device, + _p_version_info: *const MicromapVersionInfoEXT<'_>, + _p_compatibility: *mut AccelerationStructureCompatibilityKHR, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_micromap_compatibility_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceMicromapCompatibilityEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_micromap_compatibility_ext + } else { + ::core::mem::transmute(val) + } + }, + get_micromap_build_sizes_ext: unsafe { + unsafe extern "system" fn get_micromap_build_sizes_ext( + _device: crate::vk::Device, + _build_type: AccelerationStructureBuildTypeKHR, + _p_build_info: *const MicromapBuildInfoEXT<'_>, + _p_size_info: *mut MicromapBuildSizesInfoEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_micromap_build_sizes_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetMicromapBuildSizesEXT\0"); + let val = _f(cname); + if val.is_null() { + get_micromap_build_sizes_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_load_store_op_none"] + pub mod load_store_op_none { + use super::super::*; + pub use { + crate::vk::EXT_LOAD_STORE_OP_NONE_NAME as NAME, + crate::vk::EXT_LOAD_STORE_OP_NONE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_border_color_swizzle"] + pub mod border_color_swizzle { + use super::super::*; + pub use { + crate::vk::EXT_BORDER_COLOR_SWIZZLE_NAME as NAME, + crate::vk::EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pageable_device_local_memory"] + pub mod pageable_device_local_memory { + use super::super::*; + pub use { + crate::vk::EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_NAME as NAME, + crate::vk::EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_pageable_device_local_memory device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_pageable_device_local_memory device-level function pointers"] + pub struct DeviceFn { + pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + set_device_memory_priority_ext: unsafe { + unsafe extern "system" fn set_device_memory_priority_ext( + _device: crate::vk::Device, + _memory: DeviceMemory, + _priority: f32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(set_device_memory_priority_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSetDeviceMemoryPriorityEXT\0"); + let val = _f(cname); + if val.is_null() { + set_device_memory_priority_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_image_sliced_view_of_3d"] + pub mod image_sliced_view_of_3d { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_SLICED_VIEW_OF_3D_NAME as NAME, + crate::vk::EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_depth_clamp_zero_one"] + pub mod depth_clamp_zero_one { + use super::super::*; + pub use { + crate::vk::EXT_DEPTH_CLAMP_ZERO_ONE_NAME as NAME, + crate::vk::EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_non_seamless_cube_map"] + pub mod non_seamless_cube_map { + use super::super::*; + pub use { + crate::vk::EXT_NON_SEAMLESS_CUBE_MAP_NAME as NAME, + crate::vk::EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_image_compression_control_swapchain"] + pub mod image_compression_control_swapchain { + use super::super::*; + pub use { + crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_NAME as NAME, + crate::vk::EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_nested_command_buffer"] + pub mod nested_command_buffer { + use super::super::*; + pub use { + crate::vk::EXT_NESTED_COMMAND_BUFFER_NAME as NAME, + crate::vk::EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_external_memory_acquire_unmodified"] + pub mod external_memory_acquire_unmodified { + use super::super::*; + pub use { + crate::vk::EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_NAME as NAME, + crate::vk::EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_extended_dynamic_state3"] + pub mod extended_dynamic_state3 { + use super::super::*; + pub use { + crate::vk::EXT_EXTENDED_DYNAMIC_STATE3_NAME as NAME, + crate::vk::EXT_EXTENDED_DYNAMIC_STATE3_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_extended_dynamic_state3 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_extended_dynamic_state3 device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT, + pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT, + pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT, + pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT, + pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT, + pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT, + pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT, + pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT, + pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT, + pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT, + pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT, + pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT, + pub cmd_set_conservative_rasterization_mode_ext: + PFN_vkCmdSetConservativeRasterizationModeEXT, + pub cmd_set_extra_primitive_overestimation_size_ext: + PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT, + pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT, + pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT, + pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT, + pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT, + pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT, + pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT, + pub cmd_set_depth_clip_negative_one_to_one_ext: + PFN_vkCmdSetDepthClipNegativeOneToOneEXT, + pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV, + pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV, + pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV, + pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV, + pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV, + pub cmd_set_coverage_modulation_table_enable_nv: + PFN_vkCmdSetCoverageModulationTableEnableNV, + pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV, + pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV, + pub cmd_set_representative_fragment_test_enable_nv: + PFN_vkCmdSetRepresentativeFragmentTestEnableNV, + pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_depth_clamp_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clamp_enable_ext( + _command_buffer: CommandBuffer, + _depth_clamp_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clamp_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clamp_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_polygon_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_polygon_mode_ext( + _command_buffer: CommandBuffer, + _polygon_mode: PolygonMode, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_polygon_mode_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_polygon_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterization_samples_ext: unsafe { + unsafe extern "system" fn cmd_set_rasterization_samples_ext( + _command_buffer: CommandBuffer, + _rasterization_samples: SampleCountFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterization_samples_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRasterizationSamplesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterization_samples_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_sample_mask_ext: unsafe { + unsafe extern "system" fn cmd_set_sample_mask_ext( + _command_buffer: CommandBuffer, + _samples: SampleCountFlags, + _p_sample_mask: *const SampleMask, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_sample_mask_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_sample_mask_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_alpha_to_coverage_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext( + _command_buffer: CommandBuffer, + _alpha_to_coverage_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_alpha_to_coverage_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetAlphaToCoverageEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_alpha_to_coverage_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_alpha_to_one_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext( + _command_buffer: CommandBuffer, + _alpha_to_one_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_alpha_to_one_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetAlphaToOneEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_alpha_to_one_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_logic_op_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_logic_op_enable_ext( + _command_buffer: CommandBuffer, + _logic_op_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_logic_op_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_logic_op_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_blend_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_color_blend_enable_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_blend_enables: *const Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_blend_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_blend_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_blend_equation_ext: unsafe { + unsafe extern "system" fn cmd_set_color_blend_equation_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_blend_equations: *const ColorBlendEquationEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_blend_equation_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEquationEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_blend_equation_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_write_mask_ext: unsafe { + unsafe extern "system" fn cmd_set_color_write_mask_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_write_masks: *const ColorComponentFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_write_mask_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_write_mask_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_tessellation_domain_origin_ext: unsafe { + unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext( + _command_buffer: CommandBuffer, + _domain_origin: TessellationDomainOrigin, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_tessellation_domain_origin_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetTessellationDomainOriginEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_tessellation_domain_origin_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterization_stream_ext: unsafe { + unsafe extern "system" fn cmd_set_rasterization_stream_ext( + _command_buffer: CommandBuffer, + _rasterization_stream: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterization_stream_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRasterizationStreamEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterization_stream_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_conservative_rasterization_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext( + _command_buffer: CommandBuffer, + _conservative_rasterization_mode: ConservativeRasterizationModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_conservative_rasterization_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetConservativeRasterizationModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_conservative_rasterization_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_extra_primitive_overestimation_size_ext: unsafe { + unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext( + _command_buffer: CommandBuffer, + _extra_primitive_overestimation_size: f32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_extra_primitive_overestimation_size_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_extra_primitive_overestimation_size_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_clip_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clip_enable_ext( + _command_buffer: CommandBuffer, + _depth_clip_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clip_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClipEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clip_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_sample_locations_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_sample_locations_enable_ext( + _command_buffer: CommandBuffer, + _sample_locations_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_sample_locations_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetSampleLocationsEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_sample_locations_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_blend_advanced_ext: unsafe { + unsafe extern "system" fn cmd_set_color_blend_advanced_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_blend_advanced: *const ColorBlendAdvancedEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_blend_advanced_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendAdvancedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_blend_advanced_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_provoking_vertex_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext( + _command_buffer: CommandBuffer, + _provoking_vertex_mode: ProvokingVertexModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_provoking_vertex_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetProvokingVertexModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_provoking_vertex_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_line_rasterization_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_line_rasterization_mode_ext( + _command_buffer: CommandBuffer, + _line_rasterization_mode: LineRasterizationModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_rasterization_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetLineRasterizationModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_line_rasterization_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_line_stipple_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_line_stipple_enable_ext( + _command_buffer: CommandBuffer, + _stippled_line_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_stipple_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_stipple_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_clip_negative_one_to_one_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext( + _command_buffer: CommandBuffer, + _negative_one_to_one: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clip_negative_one_to_one_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDepthClipNegativeOneToOneEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clip_negative_one_to_one_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_w_scaling_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv( + _command_buffer: CommandBuffer, + _viewport_w_scaling_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_w_scaling_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetViewportWScalingEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_w_scaling_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_swizzle_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_swizzle_nv( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_viewport_swizzles: *const ViewportSwizzleNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_swizzle_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_swizzle_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_to_color_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv( + _command_buffer: CommandBuffer, + _coverage_to_color_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_to_color_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageToColorEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_to_color_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_to_color_location_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_to_color_location_nv( + _command_buffer: CommandBuffer, + _coverage_to_color_location: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_to_color_location_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageToColorLocationNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_to_color_location_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_modulation_mode_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv( + _command_buffer: CommandBuffer, + _coverage_modulation_mode: CoverageModulationModeNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_modulation_mode_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageModulationModeNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_modulation_mode_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_modulation_table_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv( + _command_buffer: CommandBuffer, + _coverage_modulation_table_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_modulation_table_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageModulationTableEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_modulation_table_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_modulation_table_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_modulation_table_nv( + _command_buffer: CommandBuffer, + _coverage_modulation_table_count: u32, + _p_coverage_modulation_table: *const f32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_modulation_table_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageModulationTableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_modulation_table_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_shading_rate_image_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv( + _command_buffer: CommandBuffer, + _shading_rate_image_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_shading_rate_image_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetShadingRateImageEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_shading_rate_image_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_representative_fragment_test_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv( + _command_buffer: CommandBuffer, + _representative_fragment_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_representative_fragment_test_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRepresentativeFragmentTestEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_representative_fragment_test_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_reduction_mode_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv( + _command_buffer: CommandBuffer, + _coverage_reduction_mode: CoverageReductionModeNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_reduction_mode_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageReductionModeNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_reduction_mode_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_subpass_merge_feedback"] + pub mod subpass_merge_feedback { + use super::super::*; + pub use { + crate::vk::EXT_SUBPASS_MERGE_FEEDBACK_NAME as NAME, + crate::vk::EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_module_identifier"] + pub mod shader_module_identifier { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_MODULE_IDENTIFIER_NAME as NAME, + crate::vk::EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_shader_module_identifier device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_shader_module_identifier device-level function pointers"] + pub struct DeviceFn { + pub get_shader_module_identifier_ext: PFN_vkGetShaderModuleIdentifierEXT, + pub get_shader_module_create_info_identifier_ext: + PFN_vkGetShaderModuleCreateInfoIdentifierEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_shader_module_identifier_ext: unsafe { + unsafe extern "system" fn get_shader_module_identifier_ext( + _device: crate::vk::Device, + _shader_module: ShaderModule, + _p_identifier: *mut ShaderModuleIdentifierEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_shader_module_identifier_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetShaderModuleIdentifierEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_shader_module_identifier_ext + } else { + ::core::mem::transmute(val) + } + }, + get_shader_module_create_info_identifier_ext: unsafe { + unsafe extern "system" fn get_shader_module_create_info_identifier_ext( + _device: crate::vk::Device, + _p_create_info: *const ShaderModuleCreateInfo<'_>, + _p_identifier: *mut ShaderModuleIdentifierEXT<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_shader_module_create_info_identifier_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetShaderModuleCreateInfoIdentifierEXT\0", + ); + let val = _f(cname); + if val.is_null() { + get_shader_module_create_info_identifier_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_rasterization_order_attachment_access"] + pub mod rasterization_order_attachment_access { + use super::super::*; + pub use { + crate::vk::EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_NAME as NAME, + crate::vk::EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_legacy_dithering"] + pub mod legacy_dithering { + use super::super::*; + pub use { + crate::vk::EXT_LEGACY_DITHERING_NAME as NAME, + crate::vk::EXT_LEGACY_DITHERING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_protected_access"] + pub mod pipeline_protected_access { + use super::super::*; + pub use { + crate::vk::EXT_PIPELINE_PROTECTED_ACCESS_NAME as NAME, + crate::vk::EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_shader_object"] + pub mod shader_object { + use super::super::*; + pub use { + crate::vk::EXT_SHADER_OBJECT_NAME as NAME, + crate::vk::EXT_SHADER_OBJECT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_shader_object device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_shader_object device-level function pointers"] + pub struct DeviceFn { + pub create_shaders_ext: PFN_vkCreateShadersEXT, + pub destroy_shader_ext: PFN_vkDestroyShaderEXT, + pub get_shader_binary_data_ext: PFN_vkGetShaderBinaryDataEXT, + pub cmd_bind_shaders_ext: PFN_vkCmdBindShadersEXT, + pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode, + pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace, + pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology, + pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount, + pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount, + pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2, + pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable, + pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable, + pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp, + pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable, + pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable, + pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp, + pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT, + pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT, + pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnable, + pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnable, + pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT, + pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnable, + pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT, + pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT, + pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT, + pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT, + pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT, + pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT, + pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT, + pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT, + pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT, + pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT, + pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT, + pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT, + pub cmd_set_conservative_rasterization_mode_ext: + PFN_vkCmdSetConservativeRasterizationModeEXT, + pub cmd_set_extra_primitive_overestimation_size_ext: + PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT, + pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT, + pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT, + pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT, + pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT, + pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT, + pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT, + pub cmd_set_depth_clip_negative_one_to_one_ext: + PFN_vkCmdSetDepthClipNegativeOneToOneEXT, + pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV, + pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV, + pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV, + pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV, + pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV, + pub cmd_set_coverage_modulation_table_enable_nv: + PFN_vkCmdSetCoverageModulationTableEnableNV, + pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV, + pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV, + pub cmd_set_representative_fragment_test_enable_nv: + PFN_vkCmdSetRepresentativeFragmentTestEnableNV, + pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_shaders_ext: unsafe { + unsafe extern "system" fn create_shaders_ext( + _device: crate::vk::Device, + _create_info_count: u32, + _p_create_infos: *const ShaderCreateInfoEXT<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_shaders: *mut ShaderEXT, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_shaders_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateShadersEXT\0"); + let val = _f(cname); + if val.is_null() { + create_shaders_ext + } else { + ::core::mem::transmute(val) + } + }, + destroy_shader_ext: unsafe { + unsafe extern "system" fn destroy_shader_ext( + _device: crate::vk::Device, + _shader: ShaderEXT, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_shader_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyShaderEXT\0"); + let val = _f(cname); + if val.is_null() { + destroy_shader_ext + } else { + ::core::mem::transmute(val) + } + }, + get_shader_binary_data_ext: unsafe { + unsafe extern "system" fn get_shader_binary_data_ext( + _device: crate::vk::Device, + _shader: ShaderEXT, + _p_data_size: *mut usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_shader_binary_data_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetShaderBinaryDataEXT\0"); + let val = _f(cname); + if val.is_null() { + get_shader_binary_data_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_shaders_ext: unsafe { + unsafe extern "system" fn cmd_bind_shaders_ext( + _command_buffer: CommandBuffer, + _stage_count: u32, + _p_stages: *const ShaderStageFlags, + _p_shaders: *const ShaderEXT, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_bind_shaders_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadersEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_shaders_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_cull_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_cull_mode_ext( + _command_buffer: CommandBuffer, + _cull_mode: CullModeFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_cull_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_cull_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_front_face_ext: unsafe { + unsafe extern "system" fn cmd_set_front_face_ext( + _command_buffer: CommandBuffer, + _front_face: FrontFace, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_front_face_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_front_face_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_topology_ext: unsafe { + unsafe extern "system" fn cmd_set_primitive_topology_ext( + _command_buffer: CommandBuffer, + _primitive_topology: PrimitiveTopology, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_topology_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_topology_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_with_count_ext: unsafe { + unsafe extern "system" fn cmd_set_viewport_with_count_ext( + _command_buffer: CommandBuffer, + _viewport_count: u32, + _p_viewports: *const Viewport, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_with_count_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCountEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_with_count_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_scissor_with_count_ext: unsafe { + unsafe extern "system" fn cmd_set_scissor_with_count_ext( + _command_buffer: CommandBuffer, + _scissor_count: u32, + _p_scissors: *const Rect2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_scissor_with_count_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCountEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_scissor_with_count_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_vertex_buffers2_ext: unsafe { + unsafe extern "system" fn cmd_bind_vertex_buffers2_ext( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _p_buffers: *const Buffer, + _p_offsets: *const DeviceSize, + _p_sizes: *const DeviceSize, + _p_strides: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_vertex_buffers2_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2EXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_vertex_buffers2_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_test_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_test_enable_ext( + _command_buffer: CommandBuffer, + _depth_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_test_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_test_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_write_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_write_enable_ext( + _command_buffer: CommandBuffer, + _depth_write_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_write_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_write_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_compare_op_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_compare_op_ext( + _command_buffer: CommandBuffer, + _depth_compare_op: CompareOp, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_compare_op_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_compare_op_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bounds_test_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext( + _command_buffer: CommandBuffer, + _depth_bounds_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bounds_test_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDepthBoundsTestEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bounds_test_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_test_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_stencil_test_enable_ext( + _command_buffer: CommandBuffer, + _stencil_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_test_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_test_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_op_ext: unsafe { + unsafe extern "system" fn cmd_set_stencil_op_ext( + _command_buffer: CommandBuffer, + _face_mask: StencilFaceFlags, + _fail_op: StencilOp, + _pass_op: StencilOp, + _depth_fail_op: StencilOp, + _compare_op: CompareOp, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_op_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_op_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_vertex_input_ext: unsafe { + unsafe extern "system" fn cmd_set_vertex_input_ext( + _command_buffer: CommandBuffer, + _vertex_binding_description_count: u32, + _p_vertex_binding_descriptions : * const VertexInputBindingDescription2EXT < '_ >, + _vertex_attribute_description_count: u32, + _p_vertex_attribute_descriptions : * const VertexInputAttributeDescription2EXT < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_vertex_input_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_vertex_input_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_patch_control_points_ext: unsafe { + unsafe extern "system" fn cmd_set_patch_control_points_ext( + _command_buffer: CommandBuffer, + _patch_control_points: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_patch_control_points_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPatchControlPointsEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_patch_control_points_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterizer_discard_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext( + _command_buffer: CommandBuffer, + _rasterizer_discard_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterizer_discard_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRasterizerDiscardEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterizer_discard_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bias_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_bias_enable_ext( + _command_buffer: CommandBuffer, + _depth_bias_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bias_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bias_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_logic_op_ext: unsafe { + unsafe extern "system" fn cmd_set_logic_op_ext( + _command_buffer: CommandBuffer, + _logic_op: LogicOp, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_logic_op_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_restart_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_primitive_restart_enable_ext( + _command_buffer: CommandBuffer, + _primitive_restart_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_restart_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetPrimitiveRestartEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_restart_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_tessellation_domain_origin_ext: unsafe { + unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext( + _command_buffer: CommandBuffer, + _domain_origin: TessellationDomainOrigin, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_tessellation_domain_origin_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetTessellationDomainOriginEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_tessellation_domain_origin_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_clamp_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clamp_enable_ext( + _command_buffer: CommandBuffer, + _depth_clamp_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clamp_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clamp_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_polygon_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_polygon_mode_ext( + _command_buffer: CommandBuffer, + _polygon_mode: PolygonMode, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_polygon_mode_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_polygon_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterization_samples_ext: unsafe { + unsafe extern "system" fn cmd_set_rasterization_samples_ext( + _command_buffer: CommandBuffer, + _rasterization_samples: SampleCountFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterization_samples_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRasterizationSamplesEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterization_samples_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_sample_mask_ext: unsafe { + unsafe extern "system" fn cmd_set_sample_mask_ext( + _command_buffer: CommandBuffer, + _samples: SampleCountFlags, + _p_sample_mask: *const SampleMask, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_sample_mask_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_sample_mask_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_alpha_to_coverage_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext( + _command_buffer: CommandBuffer, + _alpha_to_coverage_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_alpha_to_coverage_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetAlphaToCoverageEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_alpha_to_coverage_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_alpha_to_one_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext( + _command_buffer: CommandBuffer, + _alpha_to_one_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_alpha_to_one_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetAlphaToOneEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_alpha_to_one_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_logic_op_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_logic_op_enable_ext( + _command_buffer: CommandBuffer, + _logic_op_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_logic_op_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_logic_op_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_blend_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_color_blend_enable_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_blend_enables: *const Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_blend_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_blend_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_blend_equation_ext: unsafe { + unsafe extern "system" fn cmd_set_color_blend_equation_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_blend_equations: *const ColorBlendEquationEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_blend_equation_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEquationEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_blend_equation_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_write_mask_ext: unsafe { + unsafe extern "system" fn cmd_set_color_write_mask_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_write_masks: *const ColorComponentFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_write_mask_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_write_mask_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterization_stream_ext: unsafe { + unsafe extern "system" fn cmd_set_rasterization_stream_ext( + _command_buffer: CommandBuffer, + _rasterization_stream: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterization_stream_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRasterizationStreamEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterization_stream_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_conservative_rasterization_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext( + _command_buffer: CommandBuffer, + _conservative_rasterization_mode: ConservativeRasterizationModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_conservative_rasterization_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetConservativeRasterizationModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_conservative_rasterization_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_extra_primitive_overestimation_size_ext: unsafe { + unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext( + _command_buffer: CommandBuffer, + _extra_primitive_overestimation_size: f32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_extra_primitive_overestimation_size_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_extra_primitive_overestimation_size_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_clip_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clip_enable_ext( + _command_buffer: CommandBuffer, + _depth_clip_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clip_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClipEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clip_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_sample_locations_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_sample_locations_enable_ext( + _command_buffer: CommandBuffer, + _sample_locations_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_sample_locations_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetSampleLocationsEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_sample_locations_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_color_blend_advanced_ext: unsafe { + unsafe extern "system" fn cmd_set_color_blend_advanced_ext( + _command_buffer: CommandBuffer, + _first_attachment: u32, + _attachment_count: u32, + _p_color_blend_advanced: *const ColorBlendAdvancedEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_color_blend_advanced_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendAdvancedEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_color_blend_advanced_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_provoking_vertex_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext( + _command_buffer: CommandBuffer, + _provoking_vertex_mode: ProvokingVertexModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_provoking_vertex_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetProvokingVertexModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_provoking_vertex_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_line_rasterization_mode_ext: unsafe { + unsafe extern "system" fn cmd_set_line_rasterization_mode_ext( + _command_buffer: CommandBuffer, + _line_rasterization_mode: LineRasterizationModeEXT, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_rasterization_mode_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetLineRasterizationModeEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_line_rasterization_mode_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_line_stipple_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_line_stipple_enable_ext( + _command_buffer: CommandBuffer, + _stippled_line_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_stipple_enable_ext) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEnableEXT\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_stipple_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_clip_negative_one_to_one_ext: unsafe { + unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext( + _command_buffer: CommandBuffer, + _negative_one_to_one: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_clip_negative_one_to_one_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDepthClipNegativeOneToOneEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_clip_negative_one_to_one_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_w_scaling_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv( + _command_buffer: CommandBuffer, + _viewport_w_scaling_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_w_scaling_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetViewportWScalingEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_w_scaling_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_swizzle_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_swizzle_nv( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_viewport_swizzles: *const ViewportSwizzleNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_swizzle_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_swizzle_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_to_color_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv( + _command_buffer: CommandBuffer, + _coverage_to_color_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_to_color_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageToColorEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_to_color_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_to_color_location_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_to_color_location_nv( + _command_buffer: CommandBuffer, + _coverage_to_color_location: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_to_color_location_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageToColorLocationNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_to_color_location_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_modulation_mode_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv( + _command_buffer: CommandBuffer, + _coverage_modulation_mode: CoverageModulationModeNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_modulation_mode_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageModulationModeNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_modulation_mode_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_modulation_table_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv( + _command_buffer: CommandBuffer, + _coverage_modulation_table_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_modulation_table_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageModulationTableEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_modulation_table_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_modulation_table_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_modulation_table_nv( + _command_buffer: CommandBuffer, + _coverage_modulation_table_count: u32, + _p_coverage_modulation_table: *const f32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_modulation_table_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageModulationTableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_modulation_table_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_shading_rate_image_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv( + _command_buffer: CommandBuffer, + _shading_rate_image_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_shading_rate_image_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetShadingRateImageEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_shading_rate_image_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_representative_fragment_test_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv( + _command_buffer: CommandBuffer, + _representative_fragment_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_representative_fragment_test_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRepresentativeFragmentTestEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_representative_fragment_test_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coverage_reduction_mode_nv: unsafe { + unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv( + _command_buffer: CommandBuffer, + _coverage_reduction_mode: CoverageReductionModeNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coverage_reduction_mode_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetCoverageReductionModeNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_coverage_reduction_mode_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_EXT_mutable_descriptor_type"] + pub mod mutable_descriptor_type { + use super::super::*; + pub use { + crate::vk::EXT_MUTABLE_DESCRIPTOR_TYPE_NAME as NAME, + crate::vk::EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_layer_settings"] + pub mod layer_settings { + use super::super::*; + pub use { + crate::vk::EXT_LAYER_SETTINGS_NAME as NAME, + crate::vk::EXT_LAYER_SETTINGS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_pipeline_library_group_handles"] + pub mod pipeline_library_group_handles { + use super::super::*; + pub use { + crate::vk::EXT_PIPELINE_LIBRARY_GROUP_HANDLES_NAME as NAME, + crate::vk::EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_dynamic_rendering_unused_attachments"] + pub mod dynamic_rendering_unused_attachments { + use super::super::*; + pub use { + crate::vk::EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_NAME as NAME, + crate::vk::EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_EXT_attachment_feedback_loop_dynamic_state"] + pub mod attachment_feedback_loop_dynamic_state { + use super::super::*; + pub use { + crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_NAME as NAME, + crate::vk::EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_EXT_attachment_feedback_loop_dynamic_state device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_EXT_attachment_feedback_loop_dynamic_state device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_attachment_feedback_loop_enable_ext: + PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_attachment_feedback_loop_enable_ext: unsafe { + unsafe extern "system" fn cmd_set_attachment_feedback_loop_enable_ext( + _command_buffer: CommandBuffer, + _aspect_mask: ImageAspectFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_attachment_feedback_loop_enable_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetAttachmentFeedbackLoopEnableEXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_attachment_feedback_loop_enable_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged FUCHSIA"] +pub mod fuchsia { + #[doc = "VK_FUCHSIA_imagepipe_surface"] + pub mod imagepipe_surface { + use super::super::*; + pub use { + crate::vk::FUCHSIA_IMAGEPIPE_SURFACE_NAME as NAME, + crate::vk::FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_FUCHSIA_imagepipe_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_FUCHSIA_imagepipe_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_image_pipe_surface_fuchsia: unsafe { + unsafe extern "system" fn create_image_pipe_surface_fuchsia( + _instance: crate::vk::Instance, + _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_image_pipe_surface_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateImagePipeSurfaceFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + create_image_pipe_surface_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_FUCHSIA_external_memory"] + pub mod external_memory { + use super::super::*; + pub use { + crate::vk::FUCHSIA_EXTERNAL_MEMORY_NAME as NAME, + crate::vk::FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_FUCHSIA_external_memory device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_FUCHSIA_external_memory device-level function pointers"] + pub struct DeviceFn { + pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA, + pub get_memory_zircon_handle_properties_fuchsia: + PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_memory_zircon_handle_fuchsia: unsafe { + unsafe extern "system" fn get_memory_zircon_handle_fuchsia( + _device: crate::vk::Device, + _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA<'_>, + _p_zircon_handle: *mut zx_handle_t, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_zircon_handle_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryZirconHandleFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + get_memory_zircon_handle_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + get_memory_zircon_handle_properties_fuchsia: unsafe { + unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia( + _device: crate::vk::Device, + _handle_type: ExternalMemoryHandleTypeFlags, + _zircon_handle: zx_handle_t, + _p_memory_zircon_handle_properties : * mut MemoryZirconHandlePropertiesFUCHSIA < '_ >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_zircon_handle_properties_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + get_memory_zircon_handle_properties_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_FUCHSIA_external_semaphore"] + pub mod external_semaphore { + use super::super::*; + pub use { + crate::vk::FUCHSIA_EXTERNAL_SEMAPHORE_NAME as NAME, + crate::vk::FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_FUCHSIA_external_semaphore device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_FUCHSIA_external_semaphore device-level function pointers"] + pub struct DeviceFn { + pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA, + pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + import_semaphore_zircon_handle_fuchsia: unsafe { + unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia( + _device: crate::vk::Device, + _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA < '_ >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(import_semaphore_zircon_handle_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkImportSemaphoreZirconHandleFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + import_semaphore_zircon_handle_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + get_semaphore_zircon_handle_fuchsia: unsafe { + unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia( + _device: crate::vk::Device, + _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA< + '_, + >, + _p_zircon_handle: *mut zx_handle_t, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_semaphore_zircon_handle_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetSemaphoreZirconHandleFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + get_semaphore_zircon_handle_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_FUCHSIA_buffer_collection"] + pub mod buffer_collection { + use super::super::*; + pub use { + crate::vk::FUCHSIA_BUFFER_COLLECTION_NAME as NAME, + crate::vk::FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_FUCHSIA_buffer_collection device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_FUCHSIA_buffer_collection device-level function pointers"] + pub struct DeviceFn { + pub create_buffer_collection_fuchsia: PFN_vkCreateBufferCollectionFUCHSIA, + pub set_buffer_collection_image_constraints_fuchsia: + PFN_vkSetBufferCollectionImageConstraintsFUCHSIA, + pub set_buffer_collection_buffer_constraints_fuchsia: + PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA, + pub destroy_buffer_collection_fuchsia: PFN_vkDestroyBufferCollectionFUCHSIA, + pub get_buffer_collection_properties_fuchsia: + PFN_vkGetBufferCollectionPropertiesFUCHSIA, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_buffer_collection_fuchsia: unsafe { + unsafe extern "system" fn create_buffer_collection_fuchsia( + _device: crate::vk::Device, + _p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_collection: *mut BufferCollectionFUCHSIA, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_buffer_collection_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateBufferCollectionFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + create_buffer_collection_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + set_buffer_collection_image_constraints_fuchsia: unsafe { + unsafe extern "system" fn set_buffer_collection_image_constraints_fuchsia( + _device: crate::vk::Device, + _collection: BufferCollectionFUCHSIA, + _p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(set_buffer_collection_image_constraints_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkSetBufferCollectionImageConstraintsFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + set_buffer_collection_image_constraints_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + set_buffer_collection_buffer_constraints_fuchsia: unsafe { + unsafe extern "system" fn set_buffer_collection_buffer_constraints_fuchsia( + _device: crate::vk::Device, + _collection: BufferCollectionFUCHSIA, + _p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(set_buffer_collection_buffer_constraints_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkSetBufferCollectionBufferConstraintsFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + set_buffer_collection_buffer_constraints_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + destroy_buffer_collection_fuchsia: unsafe { + unsafe extern "system" fn destroy_buffer_collection_fuchsia( + _device: crate::vk::Device, + _collection: BufferCollectionFUCHSIA, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_buffer_collection_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyBufferCollectionFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_buffer_collection_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_collection_properties_fuchsia: unsafe { + unsafe extern "system" fn get_buffer_collection_properties_fuchsia( + _device: crate::vk::Device, + _collection: BufferCollectionFUCHSIA, + _p_properties: *mut BufferCollectionPropertiesFUCHSIA<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_collection_properties_fuchsia) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetBufferCollectionPropertiesFUCHSIA\0", + ); + let val = _f(cname); + if val.is_null() { + get_buffer_collection_properties_fuchsia + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged GGP"] +pub mod ggp { + #[doc = "VK_GGP_stream_descriptor_surface"] + pub mod stream_descriptor_surface { + use super::super::*; + pub use { + crate::vk::GGP_STREAM_DESCRIPTOR_SURFACE_NAME as NAME, + crate::vk::GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_GGP_stream_descriptor_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_GGP_stream_descriptor_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_stream_descriptor_surface_ggp: unsafe { + unsafe extern "system" fn create_stream_descriptor_surface_ggp( + _instance: crate::vk::Instance, + _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_stream_descriptor_surface_ggp) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateStreamDescriptorSurfaceGGP\0", + ); + let val = _f(cname); + if val.is_null() { + create_stream_descriptor_surface_ggp + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_GGP_frame_token"] + pub mod frame_token { + use super::super::*; + pub use { + crate::vk::GGP_FRAME_TOKEN_NAME as NAME, + crate::vk::GGP_FRAME_TOKEN_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged GOOGLE"] +pub mod google { + #[doc = "VK_GOOGLE_display_timing"] + pub mod display_timing { + use super::super::*; + pub use { + crate::vk::GOOGLE_DISPLAY_TIMING_NAME as NAME, + crate::vk::GOOGLE_DISPLAY_TIMING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_GOOGLE_display_timing device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_GOOGLE_display_timing device-level function pointers"] + pub struct DeviceFn { + pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE, + pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_refresh_cycle_duration_google: unsafe { + unsafe extern "system" fn get_refresh_cycle_duration_google( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_refresh_cycle_duration_google) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRefreshCycleDurationGOOGLE\0", + ); + let val = _f(cname); + if val.is_null() { + get_refresh_cycle_duration_google + } else { + ::core::mem::transmute(val) + } + }, + get_past_presentation_timing_google: unsafe { + unsafe extern "system" fn get_past_presentation_timing_google( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_presentation_timing_count: *mut u32, + _p_presentation_timings: *mut PastPresentationTimingGOOGLE, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_past_presentation_timing_google) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPastPresentationTimingGOOGLE\0", + ); + let val = _f(cname); + if val.is_null() { + get_past_presentation_timing_google + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_GOOGLE_hlsl_functionality1"] + pub mod hlsl_functionality1 { + use super::super::*; + pub use { + crate::vk::GOOGLE_HLSL_FUNCTIONALITY1_NAME as NAME, + crate::vk::GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_GOOGLE_decorate_string"] + pub mod decorate_string { + use super::super::*; + pub use { + crate::vk::GOOGLE_DECORATE_STRING_NAME as NAME, + crate::vk::GOOGLE_DECORATE_STRING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_GOOGLE_user_type"] + pub mod user_type { + use super::super::*; + pub use { + crate::vk::GOOGLE_USER_TYPE_NAME as NAME, + crate::vk::GOOGLE_USER_TYPE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_GOOGLE_surfaceless_query"] + pub mod surfaceless_query { + use super::super::*; + pub use { + crate::vk::GOOGLE_SURFACELESS_QUERY_NAME as NAME, + crate::vk::GOOGLE_SURFACELESS_QUERY_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged HUAWEI"] +pub mod huawei { + #[doc = "VK_HUAWEI_subpass_shading"] + pub mod subpass_shading { + use super::super::*; + pub use { + crate::vk::HUAWEI_SUBPASS_SHADING_NAME as NAME, + crate::vk::HUAWEI_SUBPASS_SHADING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_HUAWEI_subpass_shading device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_HUAWEI_subpass_shading device-level function pointers"] + pub struct DeviceFn { + pub get_device_subpass_shading_max_workgroup_size_huawei: + PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, + pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_device_subpass_shading_max_workgroup_size_huawei: unsafe { + unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei( + _device: crate::vk::Device, + _renderpass: RenderPass, + _p_max_workgroup_size: *mut Extent2D, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_subpass_shading_max_workgroup_size_huawei) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_subpass_shading_max_workgroup_size_huawei + } else { + ::core::mem::transmute(val) + } + }, + cmd_subpass_shading_huawei: unsafe { + unsafe extern "system" fn cmd_subpass_shading_huawei( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_subpass_shading_huawei) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSubpassShadingHUAWEI\0"); + let val = _f(cname); + if val.is_null() { + cmd_subpass_shading_huawei + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_HUAWEI_invocation_mask"] + pub mod invocation_mask { + use super::super::*; + pub use { + crate::vk::HUAWEI_INVOCATION_MASK_NAME as NAME, + crate::vk::HUAWEI_INVOCATION_MASK_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_HUAWEI_invocation_mask device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_HUAWEI_invocation_mask device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_bind_invocation_mask_huawei: unsafe { + unsafe extern "system" fn cmd_bind_invocation_mask_huawei( + _command_buffer: CommandBuffer, + _image_view: ImageView, + _image_layout: ImageLayout, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_invocation_mask_huawei) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindInvocationMaskHUAWEI\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_invocation_mask_huawei + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_HUAWEI_cluster_culling_shader"] + pub mod cluster_culling_shader { + use super::super::*; + pub use { + crate::vk::HUAWEI_CLUSTER_CULLING_SHADER_NAME as NAME, + crate::vk::HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_HUAWEI_cluster_culling_shader device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_HUAWEI_cluster_culling_shader device-level function pointers"] + pub struct DeviceFn { + pub cmd_draw_cluster_huawei: PFN_vkCmdDrawClusterHUAWEI, + pub cmd_draw_cluster_indirect_huawei: PFN_vkCmdDrawClusterIndirectHUAWEI, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_cluster_huawei: unsafe { + unsafe extern "system" fn cmd_draw_cluster_huawei( + _command_buffer: CommandBuffer, + _group_count_x: u32, + _group_count_y: u32, + _group_count_z: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_cluster_huawei) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawClusterHUAWEI\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_cluster_huawei + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_cluster_indirect_huawei: unsafe { + unsafe extern "system" fn cmd_draw_cluster_indirect_huawei( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_cluster_indirect_huawei) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDrawClusterIndirectHUAWEI\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_draw_cluster_indirect_huawei + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged IMG"] +pub mod img { + #[doc = "VK_IMG_filter_cubic"] + pub mod filter_cubic { + use super::super::*; + pub use { + crate::vk::IMG_FILTER_CUBIC_NAME as NAME, + crate::vk::IMG_FILTER_CUBIC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_IMG_format_pvrtc"] + pub mod format_pvrtc { + use super::super::*; + pub use { + crate::vk::IMG_FORMAT_PVRTC_NAME as NAME, + crate::vk::IMG_FORMAT_PVRTC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_IMG_relaxed_line_rasterization"] + pub mod relaxed_line_rasterization { + use super::super::*; + pub use { + crate::vk::IMG_RELAXED_LINE_RASTERIZATION_NAME as NAME, + crate::vk::IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged INTEL"] +pub mod intel { + #[doc = "VK_INTEL_shader_integer_functions2"] + pub mod shader_integer_functions2 { + use super::super::*; + pub use { + crate::vk::INTEL_SHADER_INTEGER_FUNCTIONS2_NAME as NAME, + crate::vk::INTEL_SHADER_INTEGER_FUNCTIONS2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_INTEL_performance_query"] + pub mod performance_query { + use super::super::*; + pub use { + crate::vk::INTEL_PERFORMANCE_QUERY_NAME as NAME, + crate::vk::INTEL_PERFORMANCE_QUERY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_INTEL_performance_query device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_INTEL_performance_query device-level function pointers"] + pub struct DeviceFn { + pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL, + pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL, + pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL, + pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL, + pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL, + pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL, + pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL, + pub queue_set_performance_configuration_intel: + PFN_vkQueueSetPerformanceConfigurationINTEL, + pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + initialize_performance_api_intel: unsafe { + unsafe extern "system" fn initialize_performance_api_intel( + _device: crate::vk::Device, + _p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(initialize_performance_api_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkInitializePerformanceApiINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + initialize_performance_api_intel + } else { + ::core::mem::transmute(val) + } + }, + uninitialize_performance_api_intel: unsafe { + unsafe extern "system" fn uninitialize_performance_api_intel( + _device: crate::vk::Device, + ) { + panic!(concat!( + "Unable to load ", + stringify!(uninitialize_performance_api_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkUninitializePerformanceApiINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + uninitialize_performance_api_intel + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_performance_marker_intel: unsafe { + unsafe extern "system" fn cmd_set_performance_marker_intel( + _command_buffer: CommandBuffer, + _p_marker_info: *const PerformanceMarkerInfoINTEL<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_performance_marker_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetPerformanceMarkerINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_performance_marker_intel + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_performance_stream_marker_intel: unsafe { + unsafe extern "system" fn cmd_set_performance_stream_marker_intel( + _command_buffer: CommandBuffer, + _p_marker_info: *const PerformanceStreamMarkerInfoINTEL<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_performance_stream_marker_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetPerformanceStreamMarkerINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_performance_stream_marker_intel + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_performance_override_intel: unsafe { + unsafe extern "system" fn cmd_set_performance_override_intel( + _command_buffer: CommandBuffer, + _p_override_info: *const PerformanceOverrideInfoINTEL<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_performance_override_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetPerformanceOverrideINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_performance_override_intel + } else { + ::core::mem::transmute(val) + } + }, + acquire_performance_configuration_intel: unsafe { + unsafe extern "system" fn acquire_performance_configuration_intel( + _device: crate::vk::Device, + _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL<'_>, + _p_configuration: *mut PerformanceConfigurationINTEL, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_performance_configuration_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkAcquirePerformanceConfigurationINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + acquire_performance_configuration_intel + } else { + ::core::mem::transmute(val) + } + }, + release_performance_configuration_intel: unsafe { + unsafe extern "system" fn release_performance_configuration_intel( + _device: crate::vk::Device, + _configuration: PerformanceConfigurationINTEL, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(release_performance_configuration_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkReleasePerformanceConfigurationINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + release_performance_configuration_intel + } else { + ::core::mem::transmute(val) + } + }, + queue_set_performance_configuration_intel: unsafe { + unsafe extern "system" fn queue_set_performance_configuration_intel( + _queue: Queue, + _configuration: PerformanceConfigurationINTEL, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(queue_set_performance_configuration_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkQueueSetPerformanceConfigurationINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + queue_set_performance_configuration_intel + } else { + ::core::mem::transmute(val) + } + }, + get_performance_parameter_intel: unsafe { + unsafe extern "system" fn get_performance_parameter_intel( + _device: crate::vk::Device, + _parameter: PerformanceParameterTypeINTEL, + _p_value: *mut PerformanceValueINTEL, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_performance_parameter_intel) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPerformanceParameterINTEL\0", + ); + let val = _f(cname); + if val.is_null() { + get_performance_parameter_intel + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged KHR"] +pub mod khr { + #[doc = "VK_KHR_surface"] + pub mod surface { + use super::super::*; + pub use { + crate::vk::KHR_SURFACE_NAME as NAME, + crate::vk::KHR_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_surface instance-level function pointers"] + pub struct InstanceFn { + pub destroy_surface_khr: PFN_vkDestroySurfaceKHR, + pub get_physical_device_surface_support_khr: PFN_vkGetPhysicalDeviceSurfaceSupportKHR, + pub get_physical_device_surface_capabilities_khr: + PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, + pub get_physical_device_surface_formats_khr: PFN_vkGetPhysicalDeviceSurfaceFormatsKHR, + pub get_physical_device_surface_present_modes_khr: + PFN_vkGetPhysicalDeviceSurfacePresentModesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + destroy_surface_khr: unsafe { + unsafe extern "system" fn destroy_surface_khr( + _instance: crate::vk::Instance, + _surface: SurfaceKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_surface_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySurfaceKHR\0"); + let val = _f(cname); + if val.is_null() { + destroy_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_surface_support_khr: unsafe { + unsafe extern "system" fn get_physical_device_surface_support_khr( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _surface: SurfaceKHR, + _p_supported: *mut Bool32, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_support_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfaceSupportKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_support_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_surface_capabilities_khr: unsafe { + unsafe extern "system" fn get_physical_device_surface_capabilities_khr( + _physical_device: PhysicalDevice, + _surface: SurfaceKHR, + _p_surface_capabilities: *mut SurfaceCapabilitiesKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_capabilities_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfaceCapabilitiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_capabilities_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_surface_formats_khr: unsafe { + unsafe extern "system" fn get_physical_device_surface_formats_khr( + _physical_device: PhysicalDevice, + _surface: SurfaceKHR, + _p_surface_format_count: *mut u32, + _p_surface_formats: *mut SurfaceFormatKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_formats_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfaceFormatsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_formats_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_surface_present_modes_khr: unsafe { + unsafe extern "system" fn get_physical_device_surface_present_modes_khr( + _physical_device: PhysicalDevice, + _surface: SurfaceKHR, + _p_present_mode_count: *mut u32, + _p_present_modes: *mut PresentModeKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_present_modes_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfacePresentModesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_present_modes_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_swapchain"] + pub mod swapchain { + use super::super::*; + pub use { + crate::vk::KHR_SWAPCHAIN_NAME as NAME, + crate::vk::KHR_SWAPCHAIN_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_swapchain instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_swapchain instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_present_rectangles_khr: + PFN_vkGetPhysicalDevicePresentRectanglesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_present_rectangles_khr: unsafe { + unsafe extern "system" fn get_physical_device_present_rectangles_khr( + _physical_device: PhysicalDevice, + _surface: SurfaceKHR, + _p_rect_count: *mut u32, + _p_rects: *mut Rect2D, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_present_rectangles_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDevicePresentRectanglesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_present_rectangles_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_swapchain device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_swapchain device-level function pointers"] + pub struct DeviceFn { + pub create_swapchain_khr: PFN_vkCreateSwapchainKHR, + pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR, + pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR, + pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR, + pub queue_present_khr: PFN_vkQueuePresentKHR, + pub get_device_group_present_capabilities_khr: + PFN_vkGetDeviceGroupPresentCapabilitiesKHR, + pub get_device_group_surface_present_modes_khr: + PFN_vkGetDeviceGroupSurfacePresentModesKHR, + pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_swapchain_khr: unsafe { + unsafe extern "system" fn create_swapchain_khr( + _device: crate::vk::Device, + _p_create_info: *const SwapchainCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_swapchain: *mut SwapchainKHR, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_swapchain_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSwapchainKHR\0"); + let val = _f(cname); + if val.is_null() { + create_swapchain_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_swapchain_khr: unsafe { + unsafe extern "system" fn destroy_swapchain_khr( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_swapchain_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySwapchainKHR\0"); + let val = _f(cname); + if val.is_null() { + destroy_swapchain_khr + } else { + ::core::mem::transmute(val) + } + }, + get_swapchain_images_khr: unsafe { + unsafe extern "system" fn get_swapchain_images_khr( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_swapchain_image_count: *mut u32, + _p_swapchain_images: *mut Image, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_swapchain_images_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainImagesKHR\0"); + let val = _f(cname); + if val.is_null() { + get_swapchain_images_khr + } else { + ::core::mem::transmute(val) + } + }, + acquire_next_image_khr: unsafe { + unsafe extern "system" fn acquire_next_image_khr( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _timeout: u64, + _semaphore: Semaphore, + _fence: Fence, + _p_image_index: *mut u32, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_next_image_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImageKHR\0"); + let val = _f(cname); + if val.is_null() { + acquire_next_image_khr + } else { + ::core::mem::transmute(val) + } + }, + queue_present_khr: unsafe { + unsafe extern "system" fn queue_present_khr( + _queue: Queue, + _p_present_info: *const PresentInfoKHR<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_present_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0"); + let val = _f(cname); + if val.is_null() { + queue_present_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_present_capabilities_khr: unsafe { + unsafe extern "system" fn get_device_group_present_capabilities_khr( + _device: crate::vk::Device, + _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_present_capabilities_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupPresentCapabilitiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_present_capabilities_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_surface_present_modes_khr: unsafe { + unsafe extern "system" fn get_device_group_surface_present_modes_khr( + _device: crate::vk::Device, + _surface: SurfaceKHR, + _p_modes: *mut DeviceGroupPresentModeFlagsKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_surface_present_modes_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupSurfacePresentModesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_surface_present_modes_khr + } else { + ::core::mem::transmute(val) + } + }, + acquire_next_image2_khr: unsafe { + unsafe extern "system" fn acquire_next_image2_khr( + _device: crate::vk::Device, + _p_acquire_info: *const AcquireNextImageInfoKHR<'_>, + _p_image_index: *mut u32, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_next_image2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0"); + let val = _f(cname); + if val.is_null() { + acquire_next_image2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_display"] + pub mod display { + use super::super::*; + pub use { + crate::vk::KHR_DISPLAY_NAME as NAME, + crate::vk::KHR_DISPLAY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_display instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_display instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_display_properties_khr: + PFN_vkGetPhysicalDeviceDisplayPropertiesKHR, + pub get_physical_device_display_plane_properties_khr: + PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, + pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR, + pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR, + pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR, + pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR, + pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_display_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_display_properties_khr( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut DisplayPropertiesKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_display_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceDisplayPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_display_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_display_plane_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_display_plane_properties_khr( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut DisplayPlanePropertiesKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_display_plane_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_display_plane_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + get_display_plane_supported_displays_khr: unsafe { + unsafe extern "system" fn get_display_plane_supported_displays_khr( + _physical_device: PhysicalDevice, + _plane_index: u32, + _p_display_count: *mut u32, + _p_displays: *mut DisplayKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_display_plane_supported_displays_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDisplayPlaneSupportedDisplaysKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_display_plane_supported_displays_khr + } else { + ::core::mem::transmute(val) + } + }, + get_display_mode_properties_khr: unsafe { + unsafe extern "system" fn get_display_mode_properties_khr( + _physical_device: PhysicalDevice, + _display: DisplayKHR, + _p_property_count: *mut u32, + _p_properties: *mut DisplayModePropertiesKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_display_mode_properties_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDisplayModePropertiesKHR\0"); + let val = _f(cname); + if val.is_null() { + get_display_mode_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + create_display_mode_khr: unsafe { + unsafe extern "system" fn create_display_mode_khr( + _physical_device: PhysicalDevice, + _display: DisplayKHR, + _p_create_info: *const DisplayModeCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_mode: *mut DisplayModeKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_display_mode_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateDisplayModeKHR\0"); + let val = _f(cname); + if val.is_null() { + create_display_mode_khr + } else { + ::core::mem::transmute(val) + } + }, + get_display_plane_capabilities_khr: unsafe { + unsafe extern "system" fn get_display_plane_capabilities_khr( + _physical_device: PhysicalDevice, + _mode: DisplayModeKHR, + _plane_index: u32, + _p_capabilities: *mut DisplayPlaneCapabilitiesKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_display_plane_capabilities_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDisplayPlaneCapabilitiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_display_plane_capabilities_khr + } else { + ::core::mem::transmute(val) + } + }, + create_display_plane_surface_khr: unsafe { + unsafe extern "system" fn create_display_plane_surface_khr( + _instance: crate::vk::Instance, + _p_create_info: *const DisplaySurfaceCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_display_plane_surface_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateDisplayPlaneSurfaceKHR\0", + ); + let val = _f(cname); + if val.is_null() { + create_display_plane_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_display_swapchain"] + pub mod display_swapchain { + use super::super::*; + pub use { + crate::vk::KHR_DISPLAY_SWAPCHAIN_NAME as NAME, + crate::vk::KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_display_swapchain device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_display_swapchain device-level function pointers"] + pub struct DeviceFn { + pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_shared_swapchains_khr: unsafe { + unsafe extern "system" fn create_shared_swapchains_khr( + _device: crate::vk::Device, + _swapchain_count: u32, + _p_create_infos: *const SwapchainCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_swapchains: *mut SwapchainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_shared_swapchains_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateSharedSwapchainsKHR\0"); + let val = _f(cname); + if val.is_null() { + create_shared_swapchains_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_xlib_surface"] + pub mod xlib_surface { + use super::super::*; + pub use { + crate::vk::KHR_XLIB_SURFACE_NAME as NAME, + crate::vk::KHR_XLIB_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_xlib_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_xlib_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR, + pub get_physical_device_xlib_presentation_support_khr: + PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_xlib_surface_khr: unsafe { + unsafe extern "system" fn create_xlib_surface_khr( + _instance: crate::vk::Instance, + _p_create_info: *const XlibSurfaceCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_xlib_surface_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateXlibSurfaceKHR\0"); + let val = _f(cname); + if val.is_null() { + create_xlib_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_xlib_presentation_support_khr: unsafe { + unsafe extern "system" fn get_physical_device_xlib_presentation_support_khr( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _dpy: *mut Display, + _visual_id: VisualID, + ) -> Bool32 { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_xlib_presentation_support_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_xlib_presentation_support_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_xcb_surface"] + pub mod xcb_surface { + use super::super::*; + pub use { + crate::vk::KHR_XCB_SURFACE_NAME as NAME, + crate::vk::KHR_XCB_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_xcb_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_xcb_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR, + pub get_physical_device_xcb_presentation_support_khr: + PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_xcb_surface_khr: unsafe { + unsafe extern "system" fn create_xcb_surface_khr( + _instance: crate::vk::Instance, + _p_create_info: *const XcbSurfaceCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_xcb_surface_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateXcbSurfaceKHR\0"); + let val = _f(cname); + if val.is_null() { + create_xcb_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_xcb_presentation_support_khr: unsafe { + unsafe extern "system" fn get_physical_device_xcb_presentation_support_khr( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _connection: *mut xcb_connection_t, + _visual_id: xcb_visualid_t, + ) -> Bool32 { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_xcb_presentation_support_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_xcb_presentation_support_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_wayland_surface"] + pub mod wayland_surface { + use super::super::*; + pub use { + crate::vk::KHR_WAYLAND_SURFACE_NAME as NAME, + crate::vk::KHR_WAYLAND_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_wayland_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_wayland_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR, + pub get_physical_device_wayland_presentation_support_khr: + PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_wayland_surface_khr: unsafe { + unsafe extern "system" fn create_wayland_surface_khr( + _instance: crate::vk::Instance, + _p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_wayland_surface_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateWaylandSurfaceKHR\0"); + let val = _f(cname); + if val.is_null() { + create_wayland_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_wayland_presentation_support_khr: unsafe { + unsafe extern "system" fn get_physical_device_wayland_presentation_support_khr( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _display: *mut wl_display, + ) -> Bool32 { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_wayland_presentation_support_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_wayland_presentation_support_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_android_surface"] + pub mod android_surface { + use super::super::*; + pub use { + crate::vk::KHR_ANDROID_SURFACE_NAME as NAME, + crate::vk::KHR_ANDROID_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_android_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_android_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_android_surface_khr: unsafe { + unsafe extern "system" fn create_android_surface_khr( + _instance: crate::vk::Instance, + _p_create_info: *const AndroidSurfaceCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_android_surface_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateAndroidSurfaceKHR\0"); + let val = _f(cname); + if val.is_null() { + create_android_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_win32_surface"] + pub mod win32_surface { + use super::super::*; + pub use { + crate::vk::KHR_WIN32_SURFACE_NAME as NAME, + crate::vk::KHR_WIN32_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_win32_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_win32_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR, + pub get_physical_device_win32_presentation_support_khr: + PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_win32_surface_khr: unsafe { + unsafe extern "system" fn create_win32_surface_khr( + _instance: crate::vk::Instance, + _p_create_info: *const Win32SurfaceCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_win32_surface_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateWin32SurfaceKHR\0"); + let val = _f(cname); + if val.is_null() { + create_win32_surface_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_win32_presentation_support_khr: unsafe { + unsafe extern "system" fn get_physical_device_win32_presentation_support_khr( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + ) -> Bool32 { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_win32_presentation_support_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_win32_presentation_support_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_sampler_mirror_clamp_to_edge"] + pub mod sampler_mirror_clamp_to_edge { + use super::super::*; + pub use { + crate::vk::KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME as NAME, + crate::vk::KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_queue"] + pub mod video_queue { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_QUEUE_NAME as NAME, + crate::vk::KHR_VIDEO_QUEUE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_video_queue instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_video_queue instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_video_capabilities_khr: + PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR, + pub get_physical_device_video_format_properties_khr: + PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_video_capabilities_khr: unsafe { + unsafe extern "system" fn get_physical_device_video_capabilities_khr( + _physical_device: PhysicalDevice, + _p_video_profile: *const VideoProfileInfoKHR<'_>, + _p_capabilities: *mut VideoCapabilitiesKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_video_capabilities_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_video_capabilities_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_video_format_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_video_format_properties_khr( + _physical_device: PhysicalDevice, + _p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR<'_>, + _p_video_format_property_count: *mut u32, + _p_video_format_properties: *mut VideoFormatPropertiesKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_video_format_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_video_format_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_video_queue device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_video_queue device-level function pointers"] + pub struct DeviceFn { + pub create_video_session_khr: PFN_vkCreateVideoSessionKHR, + pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR, + pub get_video_session_memory_requirements_khr: + PFN_vkGetVideoSessionMemoryRequirementsKHR, + pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR, + pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR, + pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR, + pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR, + pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR, + pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR, + pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_video_session_khr: unsafe { + unsafe extern "system" fn create_video_session_khr( + _device: crate::vk::Device, + _p_create_info: *const VideoSessionCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_video_session: *mut VideoSessionKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_video_session_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateVideoSessionKHR\0"); + let val = _f(cname); + if val.is_null() { + create_video_session_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_video_session_khr: unsafe { + unsafe extern "system" fn destroy_video_session_khr( + _device: crate::vk::Device, + _video_session: VideoSessionKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_video_session_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyVideoSessionKHR\0"); + let val = _f(cname); + if val.is_null() { + destroy_video_session_khr + } else { + ::core::mem::transmute(val) + } + }, + get_video_session_memory_requirements_khr: unsafe { + unsafe extern "system" fn get_video_session_memory_requirements_khr( + _device: crate::vk::Device, + _video_session: VideoSessionKHR, + _p_memory_requirements_count: *mut u32, + _p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_video_session_memory_requirements_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetVideoSessionMemoryRequirementsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_video_session_memory_requirements_khr + } else { + ::core::mem::transmute(val) + } + }, + bind_video_session_memory_khr: unsafe { + unsafe extern "system" fn bind_video_session_memory_khr( + _device: crate::vk::Device, + _video_session: VideoSessionKHR, + _bind_session_memory_info_count: u32, + _p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_video_session_memory_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkBindVideoSessionMemoryKHR\0"); + let val = _f(cname); + if val.is_null() { + bind_video_session_memory_khr + } else { + ::core::mem::transmute(val) + } + }, + create_video_session_parameters_khr: unsafe { + unsafe extern "system" fn create_video_session_parameters_khr( + _device: crate::vk::Device, + _p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_video_session_parameters: *mut VideoSessionParametersKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_video_session_parameters_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateVideoSessionParametersKHR\0", + ); + let val = _f(cname); + if val.is_null() { + create_video_session_parameters_khr + } else { + ::core::mem::transmute(val) + } + }, + update_video_session_parameters_khr: unsafe { + unsafe extern "system" fn update_video_session_parameters_khr( + _device: crate::vk::Device, + _video_session_parameters: VideoSessionParametersKHR, + _p_update_info: *const VideoSessionParametersUpdateInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(update_video_session_parameters_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkUpdateVideoSessionParametersKHR\0", + ); + let val = _f(cname); + if val.is_null() { + update_video_session_parameters_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_video_session_parameters_khr: unsafe { + unsafe extern "system" fn destroy_video_session_parameters_khr( + _device: crate::vk::Device, + _video_session_parameters: VideoSessionParametersKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_video_session_parameters_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyVideoSessionParametersKHR\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_video_session_parameters_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_video_coding_khr: unsafe { + unsafe extern "system" fn cmd_begin_video_coding_khr( + _command_buffer: CommandBuffer, + _p_begin_info: *const VideoBeginCodingInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_video_coding_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginVideoCodingKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_video_coding_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_video_coding_khr: unsafe { + unsafe extern "system" fn cmd_end_video_coding_khr( + _command_buffer: CommandBuffer, + _p_end_coding_info: *const VideoEndCodingInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_video_coding_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndVideoCodingKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_video_coding_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_control_video_coding_khr: unsafe { + unsafe extern "system" fn cmd_control_video_coding_khr( + _command_buffer: CommandBuffer, + _p_coding_control_info: *const VideoCodingControlInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_control_video_coding_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdControlVideoCodingKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_control_video_coding_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_video_decode_queue"] + pub mod video_decode_queue { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_DECODE_QUEUE_NAME as NAME, + crate::vk::KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_video_decode_queue device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_video_decode_queue device-level function pointers"] + pub struct DeviceFn { + pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_decode_video_khr: unsafe { + unsafe extern "system" fn cmd_decode_video_khr( + _command_buffer: CommandBuffer, + _p_decode_info: *const VideoDecodeInfoKHR<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_decode_video_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDecodeVideoKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_decode_video_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_video_encode_h264"] + pub mod video_encode_h264 { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_ENCODE_H264_NAME as NAME, + crate::vk::KHR_VIDEO_ENCODE_H264_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_encode_h265"] + pub mod video_encode_h265 { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_ENCODE_H265_NAME as NAME, + crate::vk::KHR_VIDEO_ENCODE_H265_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_decode_h264"] + pub mod video_decode_h264 { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_DECODE_H264_NAME as NAME, + crate::vk::KHR_VIDEO_DECODE_H264_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_dynamic_rendering"] + pub mod dynamic_rendering { + use super::super::*; + pub use { + crate::vk::KHR_DYNAMIC_RENDERING_NAME as NAME, + crate::vk::KHR_DYNAMIC_RENDERING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_dynamic_rendering device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_dynamic_rendering device-level function pointers"] + pub struct DeviceFn { + pub cmd_begin_rendering_khr: PFN_vkCmdBeginRendering, + pub cmd_end_rendering_khr: PFN_vkCmdEndRendering, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_begin_rendering_khr: unsafe { + unsafe extern "system" fn cmd_begin_rendering_khr( + _command_buffer: CommandBuffer, + _p_rendering_info: *const RenderingInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_rendering_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderingKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_rendering_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_rendering_khr: unsafe { + unsafe extern "system" fn cmd_end_rendering_khr( + _command_buffer: CommandBuffer, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_rendering_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderingKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_rendering_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_multiview"] + pub mod multiview { + use super::super::*; + pub use { + crate::vk::KHR_MULTIVIEW_NAME as NAME, + crate::vk::KHR_MULTIVIEW_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_get_physical_device_properties2"] + pub mod get_physical_device_properties2 { + use super::super::*; + pub use { + crate::vk::KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_NAME as NAME, + crate::vk::KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_get_physical_device_properties2 instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_get_physical_device_properties2 instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_features2_khr: PFN_vkGetPhysicalDeviceFeatures2, + pub get_physical_device_properties2_khr: PFN_vkGetPhysicalDeviceProperties2, + pub get_physical_device_format_properties2_khr: + PFN_vkGetPhysicalDeviceFormatProperties2, + pub get_physical_device_image_format_properties2_khr: + PFN_vkGetPhysicalDeviceImageFormatProperties2, + pub get_physical_device_queue_family_properties2_khr: + PFN_vkGetPhysicalDeviceQueueFamilyProperties2, + pub get_physical_device_memory_properties2_khr: + PFN_vkGetPhysicalDeviceMemoryProperties2, + pub get_physical_device_sparse_image_format_properties2_khr: + PFN_vkGetPhysicalDeviceSparseImageFormatProperties2, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_features2_khr: unsafe { + unsafe extern "system" fn get_physical_device_features2_khr( + _physical_device: PhysicalDevice, + _p_features: *mut PhysicalDeviceFeatures2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_features2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceFeatures2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_features2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_properties2_khr( + _physical_device: PhysicalDevice, + _p_properties: *mut PhysicalDeviceProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_format_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_format_properties2_khr( + _physical_device: PhysicalDevice, + _format: Format, + _p_format_properties: *mut FormatProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_format_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceFormatProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_format_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_image_format_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_image_format_properties2_khr( + _physical_device: PhysicalDevice, + _p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>, + _p_image_format_properties: *mut ImageFormatProperties2<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_image_format_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceImageFormatProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_image_format_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_queue_family_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_queue_family_properties2_khr( + _physical_device: PhysicalDevice, + _p_queue_family_property_count: *mut u32, + _p_queue_family_properties: *mut QueueFamilyProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_queue_family_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_queue_family_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_memory_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_memory_properties2_khr( + _physical_device: PhysicalDevice, + _p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_memory_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceMemoryProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_memory_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_sparse_image_format_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_sparse_image_format_properties2_khr( + _physical_device: PhysicalDevice, + _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>, + _p_property_count: *mut u32, + _p_properties: *mut SparseImageFormatProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_sparse_image_format_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_sparse_image_format_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_device_group"] + pub mod device_group { + use super::super::*; + pub use { + crate::vk::KHR_DEVICE_GROUP_NAME as NAME, + crate::vk::KHR_DEVICE_GROUP_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_device_group instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_device_group instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_present_rectangles_khr: + PFN_vkGetPhysicalDevicePresentRectanglesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_present_rectangles_khr: unsafe { + unsafe extern "system" fn get_physical_device_present_rectangles_khr( + _physical_device: PhysicalDevice, + _surface: SurfaceKHR, + _p_rect_count: *mut u32, + _p_rects: *mut Rect2D, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_present_rectangles_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDevicePresentRectanglesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_present_rectangles_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_device_group device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_device_group device-level function pointers"] + pub struct DeviceFn { + pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeatures, + pub cmd_set_device_mask_khr: PFN_vkCmdSetDeviceMask, + pub cmd_dispatch_base_khr: PFN_vkCmdDispatchBase, + pub get_device_group_present_capabilities_khr: + PFN_vkGetDeviceGroupPresentCapabilitiesKHR, + pub get_device_group_surface_present_modes_khr: + PFN_vkGetDeviceGroupSurfacePresentModesKHR, + pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_device_group_peer_memory_features_khr: unsafe { + unsafe extern "system" fn get_device_group_peer_memory_features_khr( + _device: crate::vk::Device, + _heap_index: u32, + _local_device_index: u32, + _remote_device_index: u32, + _p_peer_memory_features: *mut PeerMemoryFeatureFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_peer_memory_features_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_peer_memory_features_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_device_mask_khr: unsafe { + unsafe extern "system" fn cmd_set_device_mask_khr( + _command_buffer: CommandBuffer, + _device_mask: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_device_mask_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMaskKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_device_mask_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_base_khr: unsafe { + unsafe extern "system" fn cmd_dispatch_base_khr( + _command_buffer: CommandBuffer, + _base_group_x: u32, + _base_group_y: u32, + _base_group_z: u32, + _group_count_x: u32, + _group_count_y: u32, + _group_count_z: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_base_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBaseKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_base_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_present_capabilities_khr: unsafe { + unsafe extern "system" fn get_device_group_present_capabilities_khr( + _device: crate::vk::Device, + _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_present_capabilities_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupPresentCapabilitiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_present_capabilities_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_surface_present_modes_khr: unsafe { + unsafe extern "system" fn get_device_group_surface_present_modes_khr( + _device: crate::vk::Device, + _surface: SurfaceKHR, + _p_modes: *mut DeviceGroupPresentModeFlagsKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_surface_present_modes_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceGroupSurfacePresentModesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_group_surface_present_modes_khr + } else { + ::core::mem::transmute(val) + } + }, + acquire_next_image2_khr: unsafe { + unsafe extern "system" fn acquire_next_image2_khr( + _device: crate::vk::Device, + _p_acquire_info: *const AcquireNextImageInfoKHR<'_>, + _p_image_index: *mut u32, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_next_image2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0"); + let val = _f(cname); + if val.is_null() { + acquire_next_image2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_draw_parameters"] + pub mod shader_draw_parameters { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_DRAW_PARAMETERS_NAME as NAME, + crate::vk::KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance1"] + pub mod maintenance1 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE1_NAME as NAME, + crate::vk::KHR_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_maintenance1 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_maintenance1 device-level function pointers"] + pub struct DeviceFn { + pub trim_command_pool_khr: PFN_vkTrimCommandPool, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + trim_command_pool_khr: unsafe { + unsafe extern "system" fn trim_command_pool_khr( + _device: crate::vk::Device, + _command_pool: CommandPool, + _flags: CommandPoolTrimFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(trim_command_pool_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPoolKHR\0"); + let val = _f(cname); + if val.is_null() { + trim_command_pool_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_device_group_creation"] + pub mod device_group_creation { + use super::super::*; + pub use { + crate::vk::KHR_DEVICE_GROUP_CREATION_NAME as NAME, + crate::vk::KHR_DEVICE_GROUP_CREATION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_device_group_creation instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_device_group_creation instance-level function pointers"] + pub struct InstanceFn { + pub enumerate_physical_device_groups_khr: PFN_vkEnumeratePhysicalDeviceGroups, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + enumerate_physical_device_groups_khr: unsafe { + unsafe extern "system" fn enumerate_physical_device_groups_khr( + _instance: crate::vk::Instance, + _p_physical_device_group_count: *mut u32, + _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_physical_device_groups_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkEnumeratePhysicalDeviceGroupsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + enumerate_physical_device_groups_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_memory_capabilities"] + pub mod external_memory_capabilities { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_MEMORY_CAPABILITIES_NAME as NAME, + crate::vk::KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_memory_capabilities instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_memory_capabilities instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_external_buffer_properties_khr: + PFN_vkGetPhysicalDeviceExternalBufferProperties, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_external_buffer_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_external_buffer_properties_khr( + _physical_device: PhysicalDevice, + _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo<'_>, + _p_external_buffer_properties: *mut ExternalBufferProperties<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_buffer_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalBufferPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_buffer_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_memory"] + pub mod external_memory { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_MEMORY_NAME as NAME, + crate::vk::KHR_EXTERNAL_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_external_memory_win32"] + pub mod external_memory_win32 { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_MEMORY_WIN32_NAME as NAME, + crate::vk::KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_memory_win32 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_memory_win32 device-level function pointers"] + pub struct DeviceFn { + pub get_memory_win32_handle_khr: PFN_vkGetMemoryWin32HandleKHR, + pub get_memory_win32_handle_properties_khr: PFN_vkGetMemoryWin32HandlePropertiesKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_memory_win32_handle_khr: unsafe { + unsafe extern "system" fn get_memory_win32_handle_khr( + _device: crate::vk::Device, + _p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR<'_>, + _p_handle: *mut HANDLE, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_win32_handle_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleKHR\0"); + let val = _f(cname); + if val.is_null() { + get_memory_win32_handle_khr + } else { + ::core::mem::transmute(val) + } + }, + get_memory_win32_handle_properties_khr: unsafe { + unsafe extern "system" fn get_memory_win32_handle_properties_khr( + _device: crate::vk::Device, + _handle_type: ExternalMemoryHandleTypeFlags, + _handle: HANDLE, + _p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_win32_handle_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetMemoryWin32HandlePropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_memory_win32_handle_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_memory_fd"] + pub mod external_memory_fd { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_MEMORY_FD_NAME as NAME, + crate::vk::KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_memory_fd device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_memory_fd device-level function pointers"] + pub struct DeviceFn { + pub get_memory_fd_khr: PFN_vkGetMemoryFdKHR, + pub get_memory_fd_properties_khr: PFN_vkGetMemoryFdPropertiesKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_memory_fd_khr: unsafe { + unsafe extern "system" fn get_memory_fd_khr( + _device: crate::vk::Device, + _p_get_fd_info: *const MemoryGetFdInfoKHR<'_>, + _p_fd: *mut c_int, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_memory_fd_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdKHR\0"); + let val = _f(cname); + if val.is_null() { + get_memory_fd_khr + } else { + ::core::mem::transmute(val) + } + }, + get_memory_fd_properties_khr: unsafe { + unsafe extern "system" fn get_memory_fd_properties_khr( + _device: crate::vk::Device, + _handle_type: ExternalMemoryHandleTypeFlags, + _fd: c_int, + _p_memory_fd_properties: *mut MemoryFdPropertiesKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_fd_properties_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdPropertiesKHR\0"); + let val = _f(cname); + if val.is_null() { + get_memory_fd_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_win32_keyed_mutex"] + pub mod win32_keyed_mutex { + use super::super::*; + pub use { + crate::vk::KHR_WIN32_KEYED_MUTEX_NAME as NAME, + crate::vk::KHR_WIN32_KEYED_MUTEX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_external_semaphore_capabilities"] + pub mod external_semaphore_capabilities { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_NAME as NAME, + crate::vk::KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_semaphore_capabilities instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_semaphore_capabilities instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_external_semaphore_properties_khr: + PFN_vkGetPhysicalDeviceExternalSemaphoreProperties, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_external_semaphore_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_external_semaphore_properties_khr( + _physical_device: PhysicalDevice, + _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo< + '_, + >, + _p_external_semaphore_properties: *mut ExternalSemaphoreProperties<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_semaphore_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_semaphore_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_semaphore"] + pub mod external_semaphore { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_SEMAPHORE_NAME as NAME, + crate::vk::KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_external_semaphore_win32"] + pub mod external_semaphore_win32 { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_SEMAPHORE_WIN32_NAME as NAME, + crate::vk::KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_semaphore_win32 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_semaphore_win32 device-level function pointers"] + pub struct DeviceFn { + pub import_semaphore_win32_handle_khr: PFN_vkImportSemaphoreWin32HandleKHR, + pub get_semaphore_win32_handle_khr: PFN_vkGetSemaphoreWin32HandleKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + import_semaphore_win32_handle_khr: unsafe { + unsafe extern "system" fn import_semaphore_win32_handle_khr( + _device: crate::vk::Device, + _p_import_semaphore_win32_handle_info : * const ImportSemaphoreWin32HandleInfoKHR < '_ >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(import_semaphore_win32_handle_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkImportSemaphoreWin32HandleKHR\0", + ); + let val = _f(cname); + if val.is_null() { + import_semaphore_win32_handle_khr + } else { + ::core::mem::transmute(val) + } + }, + get_semaphore_win32_handle_khr: unsafe { + unsafe extern "system" fn get_semaphore_win32_handle_khr( + _device: crate::vk::Device, + _p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR<'_>, + _p_handle: *mut HANDLE, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_semaphore_win32_handle_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreWin32HandleKHR\0"); + let val = _f(cname); + if val.is_null() { + get_semaphore_win32_handle_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_semaphore_fd"] + pub mod external_semaphore_fd { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_SEMAPHORE_FD_NAME as NAME, + crate::vk::KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_semaphore_fd device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_semaphore_fd device-level function pointers"] + pub struct DeviceFn { + pub import_semaphore_fd_khr: PFN_vkImportSemaphoreFdKHR, + pub get_semaphore_fd_khr: PFN_vkGetSemaphoreFdKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + import_semaphore_fd_khr: unsafe { + unsafe extern "system" fn import_semaphore_fd_khr( + _device: crate::vk::Device, + _p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(import_semaphore_fd_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkImportSemaphoreFdKHR\0"); + let val = _f(cname); + if val.is_null() { + import_semaphore_fd_khr + } else { + ::core::mem::transmute(val) + } + }, + get_semaphore_fd_khr: unsafe { + unsafe extern "system" fn get_semaphore_fd_khr( + _device: crate::vk::Device, + _p_get_fd_info: *const SemaphoreGetFdInfoKHR<'_>, + _p_fd: *mut c_int, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_semaphore_fd_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreFdKHR\0"); + let val = _f(cname); + if val.is_null() { + get_semaphore_fd_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_push_descriptor"] + pub mod push_descriptor { + use super::super::*; + pub use { + crate::vk::KHR_PUSH_DESCRIPTOR_NAME as NAME, + crate::vk::KHR_PUSH_DESCRIPTOR_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_push_descriptor device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_push_descriptor device-level function pointers"] + pub struct DeviceFn { + pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSetKHR, + pub cmd_push_descriptor_set_with_template_khr: + PFN_vkCmdPushDescriptorSetWithTemplateKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_push_descriptor_set_khr: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set_khr( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _layout: PipelineLayout, + _set: u32, + _descriptor_write_count: u32, + _p_descriptor_writes: *const WriteDescriptorSet<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set_with_template_khr: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr( + _command_buffer: CommandBuffer, + _descriptor_update_template: DescriptorUpdateTemplate, + _layout: PipelineLayout, + _set: u32, + _p_data: *const c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set_with_template_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdPushDescriptorSetWithTemplateKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set_with_template_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_float16_int8"] + pub mod shader_float16_int8 { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_FLOAT16_INT8_NAME as NAME, + crate::vk::KHR_SHADER_FLOAT16_INT8_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_16bit_storage"] + pub mod _16bit_storage { + use super::super::*; + pub use { + crate::vk::KHR_16BIT_STORAGE_NAME as NAME, + crate::vk::KHR_16BIT_STORAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_incremental_present"] + pub mod incremental_present { + use super::super::*; + pub use { + crate::vk::KHR_INCREMENTAL_PRESENT_NAME as NAME, + crate::vk::KHR_INCREMENTAL_PRESENT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_descriptor_update_template"] + pub mod descriptor_update_template { + use super::super::*; + pub use { + crate::vk::KHR_DESCRIPTOR_UPDATE_TEMPLATE_NAME as NAME, + crate::vk::KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_descriptor_update_template device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_descriptor_update_template device-level function pointers"] + pub struct DeviceFn { + pub create_descriptor_update_template_khr: PFN_vkCreateDescriptorUpdateTemplate, + pub destroy_descriptor_update_template_khr: PFN_vkDestroyDescriptorUpdateTemplate, + pub update_descriptor_set_with_template_khr: PFN_vkUpdateDescriptorSetWithTemplate, + pub cmd_push_descriptor_set_with_template_khr: + PFN_vkCmdPushDescriptorSetWithTemplateKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_descriptor_update_template_khr: unsafe { + unsafe extern "system" fn create_descriptor_update_template_khr( + _device: crate::vk::Device, + _p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_descriptor_update_template: *mut DescriptorUpdateTemplate, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_descriptor_update_template_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateDescriptorUpdateTemplateKHR\0", + ); + let val = _f(cname); + if val.is_null() { + create_descriptor_update_template_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_descriptor_update_template_khr: unsafe { + unsafe extern "system" fn destroy_descriptor_update_template_khr( + _device: crate::vk::Device, + _descriptor_update_template: DescriptorUpdateTemplate, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_descriptor_update_template_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyDescriptorUpdateTemplateKHR\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_descriptor_update_template_khr + } else { + ::core::mem::transmute(val) + } + }, + update_descriptor_set_with_template_khr: unsafe { + unsafe extern "system" fn update_descriptor_set_with_template_khr( + _device: crate::vk::Device, + _descriptor_set: DescriptorSet, + _descriptor_update_template: DescriptorUpdateTemplate, + _p_data: *const c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(update_descriptor_set_with_template_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkUpdateDescriptorSetWithTemplateKHR\0", + ); + let val = _f(cname); + if val.is_null() { + update_descriptor_set_with_template_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set_with_template_khr: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr( + _command_buffer: CommandBuffer, + _descriptor_update_template: DescriptorUpdateTemplate, + _layout: PipelineLayout, + _set: u32, + _p_data: *const c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set_with_template_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdPushDescriptorSetWithTemplateKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set_with_template_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_imageless_framebuffer"] + pub mod imageless_framebuffer { + use super::super::*; + pub use { + crate::vk::KHR_IMAGELESS_FRAMEBUFFER_NAME as NAME, + crate::vk::KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_create_renderpass2"] + pub mod create_renderpass2 { + use super::super::*; + pub use { + crate::vk::KHR_CREATE_RENDERPASS2_NAME as NAME, + crate::vk::KHR_CREATE_RENDERPASS2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_create_renderpass2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_create_renderpass2 device-level function pointers"] + pub struct DeviceFn { + pub create_render_pass2_khr: PFN_vkCreateRenderPass2, + pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2, + pub cmd_next_subpass2_khr: PFN_vkCmdNextSubpass2, + pub cmd_end_render_pass2_khr: PFN_vkCmdEndRenderPass2, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_render_pass2_khr: unsafe { + unsafe extern "system" fn create_render_pass2_khr( + _device: crate::vk::Device, + _p_create_info: *const RenderPassCreateInfo2<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_render_pass: *mut RenderPass, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_render_pass2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2KHR\0"); + let val = _f(cname); + if val.is_null() { + create_render_pass2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_render_pass2_khr: unsafe { + unsafe extern "system" fn cmd_begin_render_pass2_khr( + _command_buffer: CommandBuffer, + _p_render_pass_begin: *const RenderPassBeginInfo<'_>, + _p_subpass_begin_info: *const SubpassBeginInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_render_pass2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_render_pass2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_next_subpass2_khr: unsafe { + unsafe extern "system" fn cmd_next_subpass2_khr( + _command_buffer: CommandBuffer, + _p_subpass_begin_info: *const SubpassBeginInfo<'_>, + _p_subpass_end_info: *const SubpassEndInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_next_subpass2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_next_subpass2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_render_pass2_khr: unsafe { + unsafe extern "system" fn cmd_end_render_pass2_khr( + _command_buffer: CommandBuffer, + _p_subpass_end_info: *const SubpassEndInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_end_render_pass2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_render_pass2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shared_presentable_image"] + pub mod shared_presentable_image { + use super::super::*; + pub use { + crate::vk::KHR_SHARED_PRESENTABLE_IMAGE_NAME as NAME, + crate::vk::KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_shared_presentable_image device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_shared_presentable_image device-level function pointers"] + pub struct DeviceFn { + pub get_swapchain_status_khr: PFN_vkGetSwapchainStatusKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_swapchain_status_khr: unsafe { + unsafe extern "system" fn get_swapchain_status_khr( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_swapchain_status_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainStatusKHR\0"); + let val = _f(cname); + if val.is_null() { + get_swapchain_status_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_fence_capabilities"] + pub mod external_fence_capabilities { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_FENCE_CAPABILITIES_NAME as NAME, + crate::vk::KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_fence_capabilities instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_fence_capabilities instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_external_fence_properties_khr: + PFN_vkGetPhysicalDeviceExternalFenceProperties, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_external_fence_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_external_fence_properties_khr( + _physical_device: PhysicalDevice, + _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo<'_>, + _p_external_fence_properties: *mut ExternalFenceProperties<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_fence_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalFencePropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_fence_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_fence"] + pub mod external_fence { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_FENCE_NAME as NAME, + crate::vk::KHR_EXTERNAL_FENCE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_external_fence_win32"] + pub mod external_fence_win32 { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_FENCE_WIN32_NAME as NAME, + crate::vk::KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_fence_win32 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_fence_win32 device-level function pointers"] + pub struct DeviceFn { + pub import_fence_win32_handle_khr: PFN_vkImportFenceWin32HandleKHR, + pub get_fence_win32_handle_khr: PFN_vkGetFenceWin32HandleKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + import_fence_win32_handle_khr: unsafe { + unsafe extern "system" fn import_fence_win32_handle_khr( + _device: crate::vk::Device, + _p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(import_fence_win32_handle_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkImportFenceWin32HandleKHR\0"); + let val = _f(cname); + if val.is_null() { + import_fence_win32_handle_khr + } else { + ::core::mem::transmute(val) + } + }, + get_fence_win32_handle_khr: unsafe { + unsafe extern "system" fn get_fence_win32_handle_khr( + _device: crate::vk::Device, + _p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR<'_>, + _p_handle: *mut HANDLE, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_fence_win32_handle_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetFenceWin32HandleKHR\0"); + let val = _f(cname); + if val.is_null() { + get_fence_win32_handle_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_external_fence_fd"] + pub mod external_fence_fd { + use super::super::*; + pub use { + crate::vk::KHR_EXTERNAL_FENCE_FD_NAME as NAME, + crate::vk::KHR_EXTERNAL_FENCE_FD_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_external_fence_fd device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_external_fence_fd device-level function pointers"] + pub struct DeviceFn { + pub import_fence_fd_khr: PFN_vkImportFenceFdKHR, + pub get_fence_fd_khr: PFN_vkGetFenceFdKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + import_fence_fd_khr: unsafe { + unsafe extern "system" fn import_fence_fd_khr( + _device: crate::vk::Device, + _p_import_fence_fd_info: *const ImportFenceFdInfoKHR<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(import_fence_fd_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkImportFenceFdKHR\0"); + let val = _f(cname); + if val.is_null() { + import_fence_fd_khr + } else { + ::core::mem::transmute(val) + } + }, + get_fence_fd_khr: unsafe { + unsafe extern "system" fn get_fence_fd_khr( + _device: crate::vk::Device, + _p_get_fd_info: *const FenceGetFdInfoKHR<'_>, + _p_fd: *mut c_int, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_fence_fd_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetFenceFdKHR\0"); + let val = _f(cname); + if val.is_null() { + get_fence_fd_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_performance_query"] + pub mod performance_query { + use super::super::*; + pub use { + crate::vk::KHR_PERFORMANCE_QUERY_NAME as NAME, + crate::vk::KHR_PERFORMANCE_QUERY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_performance_query instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_performance_query instance-level function pointers"] + pub struct InstanceFn { + pub enumerate_physical_device_queue_family_performance_query_counters_khr: + PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, + pub get_physical_device_queue_family_performance_query_passes_khr: + PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + enumerate_physical_device_queue_family_performance_query_counters_khr: unsafe { + unsafe extern "system" fn enumerate_physical_device_queue_family_performance_query_counters_khr( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _p_counter_count: *mut u32, + _p_counters: *mut PerformanceCounterKHR<'_>, + _p_counter_descriptions: *mut PerformanceCounterDescriptionKHR<'_>, + ) -> Result { + panic ! (concat ! ("Unable to load " , stringify ! (enumerate_physical_device_queue_family_performance_query_counters_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\0", + ); + let val = _f(cname); + if val.is_null() { + enumerate_physical_device_queue_family_performance_query_counters_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_queue_family_performance_query_passes_khr: unsafe { + unsafe extern "system" fn get_physical_device_queue_family_performance_query_passes_khr( + _physical_device: PhysicalDevice, + _p_performance_query_create_info : * const QueryPoolPerformanceCreateInfoKHR < '_ >, + _p_num_passes: *mut u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!( + get_physical_device_queue_family_performance_query_passes_khr + ) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_queue_family_performance_query_passes_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_performance_query device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_performance_query device-level function pointers"] + pub struct DeviceFn { + pub acquire_profiling_lock_khr: PFN_vkAcquireProfilingLockKHR, + pub release_profiling_lock_khr: PFN_vkReleaseProfilingLockKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + acquire_profiling_lock_khr: unsafe { + unsafe extern "system" fn acquire_profiling_lock_khr( + _device: crate::vk::Device, + _p_info: *const AcquireProfilingLockInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_profiling_lock_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireProfilingLockKHR\0"); + let val = _f(cname); + if val.is_null() { + acquire_profiling_lock_khr + } else { + ::core::mem::transmute(val) + } + }, + release_profiling_lock_khr: unsafe { + unsafe extern "system" fn release_profiling_lock_khr( + _device: crate::vk::Device, + ) { + panic!(concat!( + "Unable to load ", + stringify!(release_profiling_lock_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkReleaseProfilingLockKHR\0"); + let val = _f(cname); + if val.is_null() { + release_profiling_lock_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_maintenance2"] + pub mod maintenance2 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE2_NAME as NAME, + crate::vk::KHR_MAINTENANCE2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_get_surface_capabilities2"] + pub mod get_surface_capabilities2 { + use super::super::*; + pub use { + crate::vk::KHR_GET_SURFACE_CAPABILITIES2_NAME as NAME, + crate::vk::KHR_GET_SURFACE_CAPABILITIES2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_get_surface_capabilities2 instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_get_surface_capabilities2 instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_surface_capabilities2_khr: + PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR, + pub get_physical_device_surface_formats2_khr: PFN_vkGetPhysicalDeviceSurfaceFormats2KHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_surface_capabilities2_khr: unsafe { + unsafe extern "system" fn get_physical_device_surface_capabilities2_khr( + _physical_device: PhysicalDevice, + _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + _p_surface_capabilities: *mut SurfaceCapabilities2KHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_capabilities2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfaceCapabilities2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_capabilities2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_surface_formats2_khr: unsafe { + unsafe extern "system" fn get_physical_device_surface_formats2_khr( + _physical_device: PhysicalDevice, + _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + _p_surface_format_count: *mut u32, + _p_surface_formats: *mut SurfaceFormat2KHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_surface_formats2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSurfaceFormats2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_surface_formats2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_variable_pointers"] + pub mod variable_pointers { + use super::super::*; + pub use { + crate::vk::KHR_VARIABLE_POINTERS_NAME as NAME, + crate::vk::KHR_VARIABLE_POINTERS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_get_display_properties2"] + pub mod get_display_properties2 { + use super::super::*; + pub use { + crate::vk::KHR_GET_DISPLAY_PROPERTIES2_NAME as NAME, + crate::vk::KHR_GET_DISPLAY_PROPERTIES2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_get_display_properties2 instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_get_display_properties2 instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_display_properties2_khr: + PFN_vkGetPhysicalDeviceDisplayProperties2KHR, + pub get_physical_device_display_plane_properties2_khr: + PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, + pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR, + pub get_display_plane_capabilities2_khr: PFN_vkGetDisplayPlaneCapabilities2KHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_display_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_display_properties2_khr( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut DisplayProperties2KHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_display_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceDisplayProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_display_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_display_plane_properties2_khr: unsafe { + unsafe extern "system" fn get_physical_device_display_plane_properties2_khr( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut DisplayPlaneProperties2KHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_display_plane_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceDisplayPlaneProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_display_plane_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_display_mode_properties2_khr: unsafe { + unsafe extern "system" fn get_display_mode_properties2_khr( + _physical_device: PhysicalDevice, + _display: DisplayKHR, + _p_property_count: *mut u32, + _p_properties: *mut DisplayModeProperties2KHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_display_mode_properties2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDisplayModeProperties2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_display_mode_properties2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_display_plane_capabilities2_khr: unsafe { + unsafe extern "system" fn get_display_plane_capabilities2_khr( + _physical_device: PhysicalDevice, + _p_display_plane_info: *const DisplayPlaneInfo2KHR<'_>, + _p_capabilities: *mut DisplayPlaneCapabilities2KHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_display_plane_capabilities2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDisplayPlaneCapabilities2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_display_plane_capabilities2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_dedicated_allocation"] + pub mod dedicated_allocation { + use super::super::*; + pub use { + crate::vk::KHR_DEDICATED_ALLOCATION_NAME as NAME, + crate::vk::KHR_DEDICATED_ALLOCATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_storage_buffer_storage_class"] + pub mod storage_buffer_storage_class { + use super::super::*; + pub use { + crate::vk::KHR_STORAGE_BUFFER_STORAGE_CLASS_NAME as NAME, + crate::vk::KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_relaxed_block_layout"] + pub mod relaxed_block_layout { + use super::super::*; + pub use { + crate::vk::KHR_RELAXED_BLOCK_LAYOUT_NAME as NAME, + crate::vk::KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_get_memory_requirements2"] + pub mod get_memory_requirements2 { + use super::super::*; + pub use { + crate::vk::KHR_GET_MEMORY_REQUIREMENTS2_NAME as NAME, + crate::vk::KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_get_memory_requirements2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_get_memory_requirements2 device-level function pointers"] + pub struct DeviceFn { + pub get_image_memory_requirements2_khr: PFN_vkGetImageMemoryRequirements2, + pub get_buffer_memory_requirements2_khr: PFN_vkGetBufferMemoryRequirements2, + pub get_image_sparse_memory_requirements2_khr: PFN_vkGetImageSparseMemoryRequirements2, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_image_memory_requirements2_khr: unsafe { + unsafe extern "system" fn get_image_memory_requirements2_khr( + _device: crate::vk::Device, + _p_info: *const ImageMemoryRequirementsInfo2<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_memory_requirements2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageMemoryRequirements2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_memory_requirements2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_memory_requirements2_khr: unsafe { + unsafe extern "system" fn get_buffer_memory_requirements2_khr( + _device: crate::vk::Device, + _p_info: *const BufferMemoryRequirementsInfo2<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_memory_requirements2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetBufferMemoryRequirements2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_buffer_memory_requirements2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_image_sparse_memory_requirements2_khr: unsafe { + unsafe extern "system" fn get_image_sparse_memory_requirements2_khr( + _device: crate::vk::Device, + _p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, + _p_sparse_memory_requirement_count: *mut u32, + _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_sparse_memory_requirements2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageSparseMemoryRequirements2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_sparse_memory_requirements2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_image_format_list"] + pub mod image_format_list { + use super::super::*; + pub use { + crate::vk::KHR_IMAGE_FORMAT_LIST_NAME as NAME, + crate::vk::KHR_IMAGE_FORMAT_LIST_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_acceleration_structure"] + pub mod acceleration_structure { + use super::super::*; + pub use { + crate::vk::KHR_ACCELERATION_STRUCTURE_NAME as NAME, + crate::vk::KHR_ACCELERATION_STRUCTURE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_acceleration_structure device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_acceleration_structure device-level function pointers"] + pub struct DeviceFn { + pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR, + pub destroy_acceleration_structure_khr: PFN_vkDestroyAccelerationStructureKHR, + pub cmd_build_acceleration_structures_khr: PFN_vkCmdBuildAccelerationStructuresKHR, + pub cmd_build_acceleration_structures_indirect_khr: + PFN_vkCmdBuildAccelerationStructuresIndirectKHR, + pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR, + pub copy_acceleration_structure_khr: PFN_vkCopyAccelerationStructureKHR, + pub copy_acceleration_structure_to_memory_khr: + PFN_vkCopyAccelerationStructureToMemoryKHR, + pub copy_memory_to_acceleration_structure_khr: + PFN_vkCopyMemoryToAccelerationStructureKHR, + pub write_acceleration_structures_properties_khr: + PFN_vkWriteAccelerationStructuresPropertiesKHR, + pub cmd_copy_acceleration_structure_khr: PFN_vkCmdCopyAccelerationStructureKHR, + pub cmd_copy_acceleration_structure_to_memory_khr: + PFN_vkCmdCopyAccelerationStructureToMemoryKHR, + pub cmd_copy_memory_to_acceleration_structure_khr: + PFN_vkCmdCopyMemoryToAccelerationStructureKHR, + pub get_acceleration_structure_device_address_khr: + PFN_vkGetAccelerationStructureDeviceAddressKHR, + pub cmd_write_acceleration_structures_properties_khr: + PFN_vkCmdWriteAccelerationStructuresPropertiesKHR, + pub get_device_acceleration_structure_compatibility_khr: + PFN_vkGetDeviceAccelerationStructureCompatibilityKHR, + pub get_acceleration_structure_build_sizes_khr: + PFN_vkGetAccelerationStructureBuildSizesKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_acceleration_structure_khr: unsafe { + unsafe extern "system" fn create_acceleration_structure_khr( + _device: crate::vk::Device, + _p_create_info: *const AccelerationStructureCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_acceleration_structure: *mut AccelerationStructureKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_acceleration_structure_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateAccelerationStructureKHR\0", + ); + let val = _f(cname); + if val.is_null() { + create_acceleration_structure_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_acceleration_structure_khr: unsafe { + unsafe extern "system" fn destroy_acceleration_structure_khr( + _device: crate::vk::Device, + _acceleration_structure: AccelerationStructureKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_acceleration_structure_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyAccelerationStructureKHR\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_acceleration_structure_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_build_acceleration_structures_khr: unsafe { + unsafe extern "system" fn cmd_build_acceleration_structures_khr( + _command_buffer: CommandBuffer, + _info_count: u32, + _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + _pp_build_range_infos : * const * const AccelerationStructureBuildRangeInfoKHR, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_build_acceleration_structures_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBuildAccelerationStructuresKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_build_acceleration_structures_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_build_acceleration_structures_indirect_khr: unsafe { + unsafe extern "system" fn cmd_build_acceleration_structures_indirect_khr( + _command_buffer: CommandBuffer, + _info_count: u32, + _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + _p_indirect_device_addresses: *const DeviceAddress, + _p_indirect_strides: *const u32, + _pp_max_primitive_counts: *const *const u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_build_acceleration_structures_indirect_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBuildAccelerationStructuresIndirectKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_build_acceleration_structures_indirect_khr + } else { + ::core::mem::transmute(val) + } + }, + build_acceleration_structures_khr: unsafe { + unsafe extern "system" fn build_acceleration_structures_khr( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _info_count: u32, + _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + _pp_build_range_infos : * const * const AccelerationStructureBuildRangeInfoKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(build_acceleration_structures_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkBuildAccelerationStructuresKHR\0", + ); + let val = _f(cname); + if val.is_null() { + build_acceleration_structures_khr + } else { + ::core::mem::transmute(val) + } + }, + copy_acceleration_structure_khr: unsafe { + unsafe extern "system" fn copy_acceleration_structure_khr( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _p_info: *const CopyAccelerationStructureInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_acceleration_structure_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCopyAccelerationStructureKHR\0", + ); + let val = _f(cname); + if val.is_null() { + copy_acceleration_structure_khr + } else { + ::core::mem::transmute(val) + } + }, + copy_acceleration_structure_to_memory_khr: unsafe { + unsafe extern "system" fn copy_acceleration_structure_to_memory_khr( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_acceleration_structure_to_memory_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCopyAccelerationStructureToMemoryKHR\0", + ); + let val = _f(cname); + if val.is_null() { + copy_acceleration_structure_to_memory_khr + } else { + ::core::mem::transmute(val) + } + }, + copy_memory_to_acceleration_structure_khr: unsafe { + unsafe extern "system" fn copy_memory_to_acceleration_structure_khr( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(copy_memory_to_acceleration_structure_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCopyMemoryToAccelerationStructureKHR\0", + ); + let val = _f(cname); + if val.is_null() { + copy_memory_to_acceleration_structure_khr + } else { + ::core::mem::transmute(val) + } + }, + write_acceleration_structures_properties_khr: unsafe { + unsafe extern "system" fn write_acceleration_structures_properties_khr( + _device: crate::vk::Device, + _acceleration_structure_count: u32, + _p_acceleration_structures: *const AccelerationStructureKHR, + _query_type: QueryType, + _data_size: usize, + _p_data: *mut c_void, + _stride: usize, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(write_acceleration_structures_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkWriteAccelerationStructuresPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + write_acceleration_structures_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_acceleration_structure_khr: unsafe { + unsafe extern "system" fn cmd_copy_acceleration_structure_khr( + _command_buffer: CommandBuffer, + _p_info: *const CopyAccelerationStructureInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_acceleration_structure_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyAccelerationStructureKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_acceleration_structure_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_acceleration_structure_to_memory_khr: unsafe { + unsafe extern "system" fn cmd_copy_acceleration_structure_to_memory_khr( + _command_buffer: CommandBuffer, + _p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_acceleration_structure_to_memory_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyAccelerationStructureToMemoryKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_acceleration_structure_to_memory_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_memory_to_acceleration_structure_khr: unsafe { + unsafe extern "system" fn cmd_copy_memory_to_acceleration_structure_khr( + _command_buffer: CommandBuffer, + _p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_memory_to_acceleration_structure_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyMemoryToAccelerationStructureKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_memory_to_acceleration_structure_khr + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_device_address_khr: unsafe { + unsafe extern "system" fn get_acceleration_structure_device_address_khr( + _device: crate::vk::Device, + _p_info: *const AccelerationStructureDeviceAddressInfoKHR<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_acceleration_structure_device_address_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureDeviceAddressKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_device_address_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_acceleration_structures_properties_khr: unsafe { + unsafe extern "system" fn cmd_write_acceleration_structures_properties_khr( + _command_buffer: CommandBuffer, + _acceleration_structure_count: u32, + _p_acceleration_structures: *const AccelerationStructureKHR, + _query_type: QueryType, + _query_pool: QueryPool, + _first_query: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_acceleration_structures_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdWriteAccelerationStructuresPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_write_acceleration_structures_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_acceleration_structure_compatibility_khr: unsafe { + unsafe extern "system" fn get_device_acceleration_structure_compatibility_khr( + _device: crate::vk::Device, + _p_version_info: *const AccelerationStructureVersionInfoKHR<'_>, + _p_compatibility: *mut AccelerationStructureCompatibilityKHR, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_acceleration_structure_compatibility_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceAccelerationStructureCompatibilityKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_acceleration_structure_compatibility_khr + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_build_sizes_khr: unsafe { + unsafe extern "system" fn get_acceleration_structure_build_sizes_khr( + _device: crate::vk::Device, + _build_type: AccelerationStructureBuildTypeKHR, + _p_build_info: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + _p_max_primitive_counts: *const u32, + _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_acceleration_structure_build_sizes_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureBuildSizesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_build_sizes_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_ray_tracing_pipeline"] + pub mod ray_tracing_pipeline { + use super::super::*; + pub use { + crate::vk::KHR_RAY_TRACING_PIPELINE_NAME as NAME, + crate::vk::KHR_RAY_TRACING_PIPELINE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_ray_tracing_pipeline device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_ray_tracing_pipeline device-level function pointers"] + pub struct DeviceFn { + pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR, + pub create_ray_tracing_pipelines_khr: PFN_vkCreateRayTracingPipelinesKHR, + pub get_ray_tracing_shader_group_handles_khr: PFN_vkGetRayTracingShaderGroupHandlesKHR, + pub get_ray_tracing_capture_replay_shader_group_handles_khr: + PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, + pub cmd_trace_rays_indirect_khr: PFN_vkCmdTraceRaysIndirectKHR, + pub get_ray_tracing_shader_group_stack_size_khr: + PFN_vkGetRayTracingShaderGroupStackSizeKHR, + pub cmd_set_ray_tracing_pipeline_stack_size_khr: + PFN_vkCmdSetRayTracingPipelineStackSizeKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_trace_rays_khr: unsafe { + unsafe extern "system" fn cmd_trace_rays_khr( + _command_buffer: CommandBuffer, + _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _width: u32, + _height: u32, + _depth: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_trace_rays_khr + } else { + ::core::mem::transmute(val) + } + }, + create_ray_tracing_pipelines_khr: unsafe { + unsafe extern "system" fn create_ray_tracing_pipelines_khr( + _device: crate::vk::Device, + _deferred_operation: DeferredOperationKHR, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const RayTracingPipelineCreateInfoKHR<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_ray_tracing_pipelines_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateRayTracingPipelinesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + create_ray_tracing_pipelines_khr + } else { + ::core::mem::transmute(val) + } + }, + get_ray_tracing_shader_group_handles_khr: unsafe { + unsafe extern "system" fn get_ray_tracing_shader_group_handles_khr( + _device: crate::vk::Device, + _pipeline: Pipeline, + _first_group: u32, + _group_count: u32, + _data_size: usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_ray_tracing_shader_group_handles_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRayTracingShaderGroupHandlesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_ray_tracing_shader_group_handles_khr + } else { + ::core::mem::transmute(val) + } + }, + get_ray_tracing_capture_replay_shader_group_handles_khr: unsafe { + unsafe extern "system" fn get_ray_tracing_capture_replay_shader_group_handles_khr( + _device: crate::vk::Device, + _pipeline: Pipeline, + _first_group: u32, + _group_count: u32, + _data_size: usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_ray_tracing_capture_replay_shader_group_handles_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_ray_tracing_capture_replay_shader_group_handles_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_trace_rays_indirect_khr: unsafe { + unsafe extern "system" fn cmd_trace_rays_indirect_khr( + _command_buffer: CommandBuffer, + _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, + _indirect_device_address: DeviceAddress, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_trace_rays_indirect_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirectKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_trace_rays_indirect_khr + } else { + ::core::mem::transmute(val) + } + }, + get_ray_tracing_shader_group_stack_size_khr: unsafe { + unsafe extern "system" fn get_ray_tracing_shader_group_stack_size_khr( + _device: crate::vk::Device, + _pipeline: Pipeline, + _group: u32, + _group_shader: ShaderGroupShaderKHR, + ) -> DeviceSize { + panic!(concat!( + "Unable to load ", + stringify!(get_ray_tracing_shader_group_stack_size_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRayTracingShaderGroupStackSizeKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_ray_tracing_shader_group_stack_size_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_ray_tracing_pipeline_stack_size_khr: unsafe { + unsafe extern "system" fn cmd_set_ray_tracing_pipeline_stack_size_khr( + _command_buffer: CommandBuffer, + _pipeline_stack_size: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_ray_tracing_pipeline_stack_size_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRayTracingPipelineStackSizeKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_ray_tracing_pipeline_stack_size_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_ray_query"] + pub mod ray_query { + use super::super::*; + pub use { + crate::vk::KHR_RAY_QUERY_NAME as NAME, + crate::vk::KHR_RAY_QUERY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_sampler_ycbcr_conversion"] + pub mod sampler_ycbcr_conversion { + use super::super::*; + pub use { + crate::vk::KHR_SAMPLER_YCBCR_CONVERSION_NAME as NAME, + crate::vk::KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_sampler_ycbcr_conversion device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_sampler_ycbcr_conversion device-level function pointers"] + pub struct DeviceFn { + pub create_sampler_ycbcr_conversion_khr: PFN_vkCreateSamplerYcbcrConversion, + pub destroy_sampler_ycbcr_conversion_khr: PFN_vkDestroySamplerYcbcrConversion, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_sampler_ycbcr_conversion_khr: unsafe { + unsafe extern "system" fn create_sampler_ycbcr_conversion_khr( + _device: crate::vk::Device, + _p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_ycbcr_conversion: *mut SamplerYcbcrConversion, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_sampler_ycbcr_conversion_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateSamplerYcbcrConversionKHR\0", + ); + let val = _f(cname); + if val.is_null() { + create_sampler_ycbcr_conversion_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_sampler_ycbcr_conversion_khr: unsafe { + unsafe extern "system" fn destroy_sampler_ycbcr_conversion_khr( + _device: crate::vk::Device, + _ycbcr_conversion: SamplerYcbcrConversion, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_sampler_ycbcr_conversion_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroySamplerYcbcrConversionKHR\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_sampler_ycbcr_conversion_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_bind_memory2"] + pub mod bind_memory2 { + use super::super::*; + pub use { + crate::vk::KHR_BIND_MEMORY2_NAME as NAME, + crate::vk::KHR_BIND_MEMORY2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_bind_memory2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_bind_memory2 device-level function pointers"] + pub struct DeviceFn { + pub bind_buffer_memory2_khr: PFN_vkBindBufferMemory2, + pub bind_image_memory2_khr: PFN_vkBindImageMemory2, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + bind_buffer_memory2_khr: unsafe { + unsafe extern "system" fn bind_buffer_memory2_khr( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindBufferMemoryInfo<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_buffer_memory2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2KHR\0"); + let val = _f(cname); + if val.is_null() { + bind_buffer_memory2_khr + } else { + ::core::mem::transmute(val) + } + }, + bind_image_memory2_khr: unsafe { + unsafe extern "system" fn bind_image_memory2_khr( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindImageMemoryInfo<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_image_memory2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2KHR\0"); + let val = _f(cname); + if val.is_null() { + bind_image_memory2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_portability_subset"] + pub mod portability_subset { + use super::super::*; + pub use { + crate::vk::KHR_PORTABILITY_SUBSET_NAME as NAME, + crate::vk::KHR_PORTABILITY_SUBSET_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance3"] + pub mod maintenance3 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE3_NAME as NAME, + crate::vk::KHR_MAINTENANCE3_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_maintenance3 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_maintenance3 device-level function pointers"] + pub struct DeviceFn { + pub get_descriptor_set_layout_support_khr: PFN_vkGetDescriptorSetLayoutSupport, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_descriptor_set_layout_support_khr: unsafe { + unsafe extern "system" fn get_descriptor_set_layout_support_khr( + _device: crate::vk::Device, + _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, + _p_support: *mut DescriptorSetLayoutSupport<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_descriptor_set_layout_support_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDescriptorSetLayoutSupportKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_descriptor_set_layout_support_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_draw_indirect_count"] + pub mod draw_indirect_count { + use super::super::*; + pub use { + crate::vk::KHR_DRAW_INDIRECT_COUNT_NAME as NAME, + crate::vk::KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_draw_indirect_count device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_draw_indirect_count device-level function pointers"] + pub struct DeviceFn { + pub cmd_draw_indirect_count_khr: PFN_vkCmdDrawIndirectCount, + pub cmd_draw_indexed_indirect_count_khr: PFN_vkCmdDrawIndexedIndirectCount, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_indirect_count_khr: unsafe { + unsafe extern "system" fn cmd_draw_indirect_count_khr( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indirect_count_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indirect_count_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indexed_indirect_count_khr: unsafe { + unsafe extern "system" fn cmd_draw_indexed_indirect_count_khr( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indexed_indirect_count_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDrawIndexedIndirectCountKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_draw_indexed_indirect_count_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_subgroup_extended_types"] + pub mod shader_subgroup_extended_types { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_SUBGROUP_EXTENDED_TYPES_NAME as NAME, + crate::vk::KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_8bit_storage"] + pub mod _8bit_storage { + use super::super::*; + pub use { + crate::vk::KHR_8BIT_STORAGE_NAME as NAME, + crate::vk::KHR_8BIT_STORAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_atomic_int64"] + pub mod shader_atomic_int64 { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_ATOMIC_INT64_NAME as NAME, + crate::vk::KHR_SHADER_ATOMIC_INT64_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_clock"] + pub mod shader_clock { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_CLOCK_NAME as NAME, + crate::vk::KHR_SHADER_CLOCK_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_decode_h265"] + pub mod video_decode_h265 { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_DECODE_H265_NAME as NAME, + crate::vk::KHR_VIDEO_DECODE_H265_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_global_priority"] + pub mod global_priority { + use super::super::*; + pub use { + crate::vk::KHR_GLOBAL_PRIORITY_NAME as NAME, + crate::vk::KHR_GLOBAL_PRIORITY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_driver_properties"] + pub mod driver_properties { + use super::super::*; + pub use { + crate::vk::KHR_DRIVER_PROPERTIES_NAME as NAME, + crate::vk::KHR_DRIVER_PROPERTIES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_float_controls"] + pub mod shader_float_controls { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_FLOAT_CONTROLS_NAME as NAME, + crate::vk::KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_depth_stencil_resolve"] + pub mod depth_stencil_resolve { + use super::super::*; + pub use { + crate::vk::KHR_DEPTH_STENCIL_RESOLVE_NAME as NAME, + crate::vk::KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_swapchain_mutable_format"] + pub mod swapchain_mutable_format { + use super::super::*; + pub use { + crate::vk::KHR_SWAPCHAIN_MUTABLE_FORMAT_NAME as NAME, + crate::vk::KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_timeline_semaphore"] + pub mod timeline_semaphore { + use super::super::*; + pub use { + crate::vk::KHR_TIMELINE_SEMAPHORE_NAME as NAME, + crate::vk::KHR_TIMELINE_SEMAPHORE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_timeline_semaphore device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_timeline_semaphore device-level function pointers"] + pub struct DeviceFn { + pub get_semaphore_counter_value_khr: PFN_vkGetSemaphoreCounterValue, + pub wait_semaphores_khr: PFN_vkWaitSemaphores, + pub signal_semaphore_khr: PFN_vkSignalSemaphore, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_semaphore_counter_value_khr: unsafe { + unsafe extern "system" fn get_semaphore_counter_value_khr( + _device: crate::vk::Device, + _semaphore: Semaphore, + _p_value: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_semaphore_counter_value_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreCounterValueKHR\0"); + let val = _f(cname); + if val.is_null() { + get_semaphore_counter_value_khr + } else { + ::core::mem::transmute(val) + } + }, + wait_semaphores_khr: unsafe { + unsafe extern "system" fn wait_semaphores_khr( + _device: crate::vk::Device, + _p_wait_info: *const SemaphoreWaitInfo<'_>, + _timeout: u64, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(wait_semaphores_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphoresKHR\0"); + let val = _f(cname); + if val.is_null() { + wait_semaphores_khr + } else { + ::core::mem::transmute(val) + } + }, + signal_semaphore_khr: unsafe { + unsafe extern "system" fn signal_semaphore_khr( + _device: crate::vk::Device, + _p_signal_info: *const SemaphoreSignalInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(signal_semaphore_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphoreKHR\0"); + let val = _f(cname); + if val.is_null() { + signal_semaphore_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_vulkan_memory_model"] + pub mod vulkan_memory_model { + use super::super::*; + pub use { + crate::vk::KHR_VULKAN_MEMORY_MODEL_NAME as NAME, + crate::vk::KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_terminate_invocation"] + pub mod shader_terminate_invocation { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_TERMINATE_INVOCATION_NAME as NAME, + crate::vk::KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_fragment_shading_rate"] + pub mod fragment_shading_rate { + use super::super::*; + pub use { + crate::vk::KHR_FRAGMENT_SHADING_RATE_NAME as NAME, + crate::vk::KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_fragment_shading_rate instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_fragment_shading_rate instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_fragment_shading_rates_khr: + PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_fragment_shading_rates_khr: unsafe { + unsafe extern "system" fn get_physical_device_fragment_shading_rates_khr( + _physical_device: PhysicalDevice, + _p_fragment_shading_rate_count: *mut u32, + _p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_fragment_shading_rates_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceFragmentShadingRatesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_fragment_shading_rates_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_fragment_shading_rate device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_fragment_shading_rate device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_fragment_shading_rate_khr: PFN_vkCmdSetFragmentShadingRateKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_fragment_shading_rate_khr: unsafe { + unsafe extern "system" fn cmd_set_fragment_shading_rate_khr( + _command_buffer: CommandBuffer, + _p_fragment_size: *const Extent2D, + _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_fragment_shading_rate_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetFragmentShadingRateKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_fragment_shading_rate_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_dynamic_rendering_local_read"] + pub mod dynamic_rendering_local_read { + use super::super::*; + pub use { + crate::vk::KHR_DYNAMIC_RENDERING_LOCAL_READ_NAME as NAME, + crate::vk::KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_dynamic_rendering_local_read device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_dynamic_rendering_local_read device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_rendering_attachment_locations_khr: + PFN_vkCmdSetRenderingAttachmentLocationsKHR, + pub cmd_set_rendering_input_attachment_indices_khr: + PFN_vkCmdSetRenderingInputAttachmentIndicesKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_rendering_attachment_locations_khr: unsafe { + unsafe extern "system" fn cmd_set_rendering_attachment_locations_khr( + _command_buffer: CommandBuffer, + _p_location_info: *const RenderingAttachmentLocationInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rendering_attachment_locations_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRenderingAttachmentLocationsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rendering_attachment_locations_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rendering_input_attachment_indices_khr: unsafe { + unsafe extern "system" fn cmd_set_rendering_input_attachment_indices_khr( + _command_buffer: CommandBuffer, + _p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rendering_input_attachment_indices_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetRenderingInputAttachmentIndicesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_rendering_input_attachment_indices_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_quad_control"] + pub mod shader_quad_control { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_QUAD_CONTROL_NAME as NAME, + crate::vk::KHR_SHADER_QUAD_CONTROL_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_spirv_1_4"] + pub mod spirv_1_4 { + use super::super::*; + pub use { + crate::vk::KHR_SPIRV_1_4_NAME as NAME, + crate::vk::KHR_SPIRV_1_4_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_surface_protected_capabilities"] + pub mod surface_protected_capabilities { + use super::super::*; + pub use { + crate::vk::KHR_SURFACE_PROTECTED_CAPABILITIES_NAME as NAME, + crate::vk::KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_separate_depth_stencil_layouts"] + pub mod separate_depth_stencil_layouts { + use super::super::*; + pub use { + crate::vk::KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_NAME as NAME, + crate::vk::KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_present_wait"] + pub mod present_wait { + use super::super::*; + pub use { + crate::vk::KHR_PRESENT_WAIT_NAME as NAME, + crate::vk::KHR_PRESENT_WAIT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_present_wait device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_present_wait device-level function pointers"] + pub struct DeviceFn { + pub wait_for_present_khr: PFN_vkWaitForPresentKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + wait_for_present_khr: unsafe { + unsafe extern "system" fn wait_for_present_khr( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _present_id: u64, + _timeout: u64, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(wait_for_present_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitForPresentKHR\0"); + let val = _f(cname); + if val.is_null() { + wait_for_present_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_uniform_buffer_standard_layout"] + pub mod uniform_buffer_standard_layout { + use super::super::*; + pub use { + crate::vk::KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_NAME as NAME, + crate::vk::KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_buffer_device_address"] + pub mod buffer_device_address { + use super::super::*; + pub use { + crate::vk::KHR_BUFFER_DEVICE_ADDRESS_NAME as NAME, + crate::vk::KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_buffer_device_address device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_buffer_device_address device-level function pointers"] + pub struct DeviceFn { + pub get_buffer_device_address_khr: PFN_vkGetBufferDeviceAddress, + pub get_buffer_opaque_capture_address_khr: PFN_vkGetBufferOpaqueCaptureAddress, + pub get_device_memory_opaque_capture_address_khr: + PFN_vkGetDeviceMemoryOpaqueCaptureAddress, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_buffer_device_address_khr: unsafe { + unsafe extern "system" fn get_buffer_device_address_khr( + _device: crate::vk::Device, + _p_info: *const BufferDeviceAddressInfo<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_device_address_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressKHR\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_device_address_khr + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_opaque_capture_address_khr: unsafe { + unsafe extern "system" fn get_buffer_opaque_capture_address_khr( + _device: crate::vk::Device, + _p_info: *const BufferDeviceAddressInfo<'_>, + ) -> u64 { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_opaque_capture_address_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetBufferOpaqueCaptureAddressKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_buffer_opaque_capture_address_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_memory_opaque_capture_address_khr: unsafe { + unsafe extern "system" fn get_device_memory_opaque_capture_address_khr( + _device: crate::vk::Device, + _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, + ) -> u64 { + panic!(concat!( + "Unable to load ", + stringify!(get_device_memory_opaque_capture_address_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceMemoryOpaqueCaptureAddressKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_memory_opaque_capture_address_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_deferred_host_operations"] + pub mod deferred_host_operations { + use super::super::*; + pub use { + crate::vk::KHR_DEFERRED_HOST_OPERATIONS_NAME as NAME, + crate::vk::KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_deferred_host_operations device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_deferred_host_operations device-level function pointers"] + pub struct DeviceFn { + pub create_deferred_operation_khr: PFN_vkCreateDeferredOperationKHR, + pub destroy_deferred_operation_khr: PFN_vkDestroyDeferredOperationKHR, + pub get_deferred_operation_max_concurrency_khr: + PFN_vkGetDeferredOperationMaxConcurrencyKHR, + pub get_deferred_operation_result_khr: PFN_vkGetDeferredOperationResultKHR, + pub deferred_operation_join_khr: PFN_vkDeferredOperationJoinKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_deferred_operation_khr: unsafe { + unsafe extern "system" fn create_deferred_operation_khr( + _device: crate::vk::Device, + _p_allocator: *const AllocationCallbacks<'_>, + _p_deferred_operation: *mut DeferredOperationKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_deferred_operation_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateDeferredOperationKHR\0"); + let val = _f(cname); + if val.is_null() { + create_deferred_operation_khr + } else { + ::core::mem::transmute(val) + } + }, + destroy_deferred_operation_khr: unsafe { + unsafe extern "system" fn destroy_deferred_operation_khr( + _device: crate::vk::Device, + _operation: DeferredOperationKHR, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_deferred_operation_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyDeferredOperationKHR\0"); + let val = _f(cname); + if val.is_null() { + destroy_deferred_operation_khr + } else { + ::core::mem::transmute(val) + } + }, + get_deferred_operation_max_concurrency_khr: unsafe { + unsafe extern "system" fn get_deferred_operation_max_concurrency_khr( + _device: crate::vk::Device, + _operation: DeferredOperationKHR, + ) -> u32 { + panic!(concat!( + "Unable to load ", + stringify!(get_deferred_operation_max_concurrency_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeferredOperationMaxConcurrencyKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_deferred_operation_max_concurrency_khr + } else { + ::core::mem::transmute(val) + } + }, + get_deferred_operation_result_khr: unsafe { + unsafe extern "system" fn get_deferred_operation_result_khr( + _device: crate::vk::Device, + _operation: DeferredOperationKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_deferred_operation_result_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeferredOperationResultKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_deferred_operation_result_khr + } else { + ::core::mem::transmute(val) + } + }, + deferred_operation_join_khr: unsafe { + unsafe extern "system" fn deferred_operation_join_khr( + _device: crate::vk::Device, + _operation: DeferredOperationKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(deferred_operation_join_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDeferredOperationJoinKHR\0"); + let val = _f(cname); + if val.is_null() { + deferred_operation_join_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_pipeline_executable_properties"] + pub mod pipeline_executable_properties { + use super::super::*; + pub use { + crate::vk::KHR_PIPELINE_EXECUTABLE_PROPERTIES_NAME as NAME, + crate::vk::KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_pipeline_executable_properties device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_pipeline_executable_properties device-level function pointers"] + pub struct DeviceFn { + pub get_pipeline_executable_properties_khr: PFN_vkGetPipelineExecutablePropertiesKHR, + pub get_pipeline_executable_statistics_khr: PFN_vkGetPipelineExecutableStatisticsKHR, + pub get_pipeline_executable_internal_representations_khr: + PFN_vkGetPipelineExecutableInternalRepresentationsKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_pipeline_executable_properties_khr: unsafe { + unsafe extern "system" fn get_pipeline_executable_properties_khr( + _device: crate::vk::Device, + _p_pipeline_info: *const PipelineInfoKHR<'_>, + _p_executable_count: *mut u32, + _p_properties: *mut PipelineExecutablePropertiesKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_executable_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineExecutablePropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_executable_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_executable_statistics_khr: unsafe { + unsafe extern "system" fn get_pipeline_executable_statistics_khr( + _device: crate::vk::Device, + _p_executable_info: *const PipelineExecutableInfoKHR<'_>, + _p_statistic_count: *mut u32, + _p_statistics: *mut PipelineExecutableStatisticKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_executable_statistics_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineExecutableStatisticsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_executable_statistics_khr + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_executable_internal_representations_khr: unsafe { + unsafe extern "system" fn get_pipeline_executable_internal_representations_khr( + _device: crate::vk::Device, + _p_executable_info: *const PipelineExecutableInfoKHR<'_>, + _p_internal_representation_count: *mut u32, + _p_internal_representations : * mut PipelineExecutableInternalRepresentationKHR < '_ >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_executable_internal_representations_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineExecutableInternalRepresentationsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_executable_internal_representations_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_map_memory2"] + pub mod map_memory2 { + use super::super::*; + pub use { + crate::vk::KHR_MAP_MEMORY2_NAME as NAME, + crate::vk::KHR_MAP_MEMORY2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_map_memory2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_map_memory2 device-level function pointers"] + pub struct DeviceFn { + pub map_memory2_khr: PFN_vkMapMemory2KHR, + pub unmap_memory2_khr: PFN_vkUnmapMemory2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + map_memory2_khr: unsafe { + unsafe extern "system" fn map_memory2_khr( + _device: crate::vk::Device, + _p_memory_map_info: *const MemoryMapInfoKHR<'_>, + _pp_data: *mut *mut c_void, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(map_memory2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkMapMemory2KHR\0"); + let val = _f(cname); + if val.is_null() { + map_memory2_khr + } else { + ::core::mem::transmute(val) + } + }, + unmap_memory2_khr: unsafe { + unsafe extern "system" fn unmap_memory2_khr( + _device: crate::vk::Device, + _p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(unmap_memory2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory2KHR\0"); + let val = _f(cname); + if val.is_null() { + unmap_memory2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_integer_dot_product"] + pub mod shader_integer_dot_product { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_INTEGER_DOT_PRODUCT_NAME as NAME, + crate::vk::KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_pipeline_library"] + pub mod pipeline_library { + use super::super::*; + pub use { + crate::vk::KHR_PIPELINE_LIBRARY_NAME as NAME, + crate::vk::KHR_PIPELINE_LIBRARY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_non_semantic_info"] + pub mod shader_non_semantic_info { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_NON_SEMANTIC_INFO_NAME as NAME, + crate::vk::KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_present_id"] + pub mod present_id { + use super::super::*; + pub use { + crate::vk::KHR_PRESENT_ID_NAME as NAME, + crate::vk::KHR_PRESENT_ID_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_encode_queue"] + pub mod video_encode_queue { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_ENCODE_QUEUE_NAME as NAME, + crate::vk::KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_video_encode_queue instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_video_encode_queue instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_video_encode_quality_level_properties_khr: + PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_video_encode_quality_level_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_video_encode_quality_level_properties_khr( + _physical_device: PhysicalDevice, + _p_quality_level_info : * const PhysicalDeviceVideoEncodeQualityLevelInfoKHR < '_ >, + _p_quality_level_properties: *mut VideoEncodeQualityLevelPropertiesKHR< + '_, + >, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!( + get_physical_device_video_encode_quality_level_properties_khr + ) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_video_encode_quality_level_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_video_encode_queue device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_video_encode_queue device-level function pointers"] + pub struct DeviceFn { + pub get_encoded_video_session_parameters_khr: PFN_vkGetEncodedVideoSessionParametersKHR, + pub cmd_encode_video_khr: PFN_vkCmdEncodeVideoKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_encoded_video_session_parameters_khr: unsafe { + unsafe extern "system" fn get_encoded_video_session_parameters_khr( + _device: crate::vk::Device, + _p_video_session_parameters_info : * const VideoEncodeSessionParametersGetInfoKHR < '_ >, + _p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR<'_>, + _p_data_size: *mut usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_encoded_video_session_parameters_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetEncodedVideoSessionParametersKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_encoded_video_session_parameters_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_encode_video_khr: unsafe { + unsafe extern "system" fn cmd_encode_video_khr( + _command_buffer: CommandBuffer, + _p_encode_info: *const VideoEncodeInfoKHR<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_encode_video_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEncodeVideoKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_encode_video_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_synchronization2"] + pub mod synchronization2 { + use super::super::*; + pub use { + crate::vk::KHR_SYNCHRONIZATION2_NAME as NAME, + crate::vk::KHR_SYNCHRONIZATION2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_synchronization2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_synchronization2 device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_event2_khr: PFN_vkCmdSetEvent2, + pub cmd_reset_event2_khr: PFN_vkCmdResetEvent2, + pub cmd_wait_events2_khr: PFN_vkCmdWaitEvents2, + pub cmd_pipeline_barrier2_khr: PFN_vkCmdPipelineBarrier2, + pub cmd_write_timestamp2_khr: PFN_vkCmdWriteTimestamp2, + pub queue_submit2_khr: PFN_vkQueueSubmit2, + pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD, + pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_event2_khr: unsafe { + unsafe extern "system" fn cmd_set_event2_khr( + _command_buffer: CommandBuffer, + _event: Event, + _p_dependency_info: *const DependencyInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_event2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_event2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_reset_event2_khr: unsafe { + unsafe extern "system" fn cmd_reset_event2_khr( + _command_buffer: CommandBuffer, + _event: Event, + _stage_mask: PipelineStageFlags2, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_reset_event2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_reset_event2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_wait_events2_khr: unsafe { + unsafe extern "system" fn cmd_wait_events2_khr( + _command_buffer: CommandBuffer, + _event_count: u32, + _p_events: *const Event, + _p_dependency_infos: *const DependencyInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_wait_events2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_wait_events2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_pipeline_barrier2_khr: unsafe { + unsafe extern "system" fn cmd_pipeline_barrier2_khr( + _command_buffer: CommandBuffer, + _p_dependency_info: *const DependencyInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_pipeline_barrier2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_pipeline_barrier2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_timestamp2_khr: unsafe { + unsafe extern "system" fn cmd_write_timestamp2_khr( + _command_buffer: CommandBuffer, + _stage: PipelineStageFlags2, + _query_pool: QueryPool, + _query: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_timestamp2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_write_timestamp2_khr + } else { + ::core::mem::transmute(val) + } + }, + queue_submit2_khr: unsafe { + unsafe extern "system" fn queue_submit2_khr( + _queue: Queue, + _submit_count: u32, + _p_submits: *const SubmitInfo2<'_>, + _fence: Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_submit2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0"); + let val = _f(cname); + if val.is_null() { + queue_submit2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_buffer_marker2_amd: unsafe { + unsafe extern "system" fn cmd_write_buffer_marker2_amd( + _command_buffer: CommandBuffer, + _stage: PipelineStageFlags2, + _dst_buffer: Buffer, + _dst_offset: DeviceSize, + _marker: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_buffer_marker2_amd) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarker2AMD\0"); + let val = _f(cname); + if val.is_null() { + cmd_write_buffer_marker2_amd + } else { + ::core::mem::transmute(val) + } + }, + get_queue_checkpoint_data2_nv: unsafe { + unsafe extern "system" fn get_queue_checkpoint_data2_nv( + _queue: Queue, + _p_checkpoint_data_count: *mut u32, + _p_checkpoint_data: *mut CheckpointData2NV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_queue_checkpoint_data2_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointData2NV\0"); + let val = _f(cname); + if val.is_null() { + get_queue_checkpoint_data2_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_fragment_shader_barycentric"] + pub mod fragment_shader_barycentric { + use super::super::*; + pub use { + crate::vk::KHR_FRAGMENT_SHADER_BARYCENTRIC_NAME as NAME, + crate::vk::KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_subgroup_uniform_control_flow"] + pub mod shader_subgroup_uniform_control_flow { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_NAME as NAME, + crate::vk::KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_zero_initialize_workgroup_memory"] + pub mod zero_initialize_workgroup_memory { + use super::super::*; + pub use { + crate::vk::KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_NAME as NAME, + crate::vk::KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_workgroup_memory_explicit_layout"] + pub mod workgroup_memory_explicit_layout { + use super::super::*; + pub use { + crate::vk::KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_NAME as NAME, + crate::vk::KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_copy_commands2"] + pub mod copy_commands2 { + use super::super::*; + pub use { + crate::vk::KHR_COPY_COMMANDS2_NAME as NAME, + crate::vk::KHR_COPY_COMMANDS2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_copy_commands2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_copy_commands2 device-level function pointers"] + pub struct DeviceFn { + pub cmd_copy_buffer2_khr: PFN_vkCmdCopyBuffer2, + pub cmd_copy_image2_khr: PFN_vkCmdCopyImage2, + pub cmd_copy_buffer_to_image2_khr: PFN_vkCmdCopyBufferToImage2, + pub cmd_copy_image_to_buffer2_khr: PFN_vkCmdCopyImageToBuffer2, + pub cmd_blit_image2_khr: PFN_vkCmdBlitImage2, + pub cmd_resolve_image2_khr: PFN_vkCmdResolveImage2, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_copy_buffer2_khr: unsafe { + unsafe extern "system" fn cmd_copy_buffer2_khr( + _command_buffer: CommandBuffer, + _p_copy_buffer_info: *const CopyBufferInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_buffer2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_image2_khr: unsafe { + unsafe extern "system" fn cmd_copy_image2_khr( + _command_buffer: CommandBuffer, + _p_copy_image_info: *const CopyImageInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_copy_image2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_image2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_buffer_to_image2_khr: unsafe { + unsafe extern "system" fn cmd_copy_buffer_to_image2_khr( + _command_buffer: CommandBuffer, + _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_buffer_to_image2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBufferToImage2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_buffer_to_image2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_image_to_buffer2_khr: unsafe { + unsafe extern "system" fn cmd_copy_image_to_buffer2_khr( + _command_buffer: CommandBuffer, + _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_image_to_buffer2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImageToBuffer2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_image_to_buffer2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_blit_image2_khr: unsafe { + unsafe extern "system" fn cmd_blit_image2_khr( + _command_buffer: CommandBuffer, + _p_blit_image_info: *const BlitImageInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_blit_image2_khr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_blit_image2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_resolve_image2_khr: unsafe { + unsafe extern "system" fn cmd_resolve_image2_khr( + _command_buffer: CommandBuffer, + _p_resolve_image_info: *const ResolveImageInfo2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_resolve_image2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_resolve_image2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_format_feature_flags2"] + pub mod format_feature_flags2 { + use super::super::*; + pub use { + crate::vk::KHR_FORMAT_FEATURE_FLAGS2_NAME as NAME, + crate::vk::KHR_FORMAT_FEATURE_FLAGS2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_ray_tracing_maintenance1"] + pub mod ray_tracing_maintenance1 { + use super::super::*; + pub use { + crate::vk::KHR_RAY_TRACING_MAINTENANCE1_NAME as NAME, + crate::vk::KHR_RAY_TRACING_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_ray_tracing_maintenance1 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_ray_tracing_maintenance1 device-level function pointers"] + pub struct DeviceFn { + pub cmd_trace_rays_indirect2_khr: PFN_vkCmdTraceRaysIndirect2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_trace_rays_indirect2_khr: unsafe { + unsafe extern "system" fn cmd_trace_rays_indirect2_khr( + _command_buffer: CommandBuffer, + _indirect_device_address: DeviceAddress, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_trace_rays_indirect2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirect2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_trace_rays_indirect2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_portability_enumeration"] + pub mod portability_enumeration { + use super::super::*; + pub use { + crate::vk::KHR_PORTABILITY_ENUMERATION_NAME as NAME, + crate::vk::KHR_PORTABILITY_ENUMERATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance4"] + pub mod maintenance4 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE4_NAME as NAME, + crate::vk::KHR_MAINTENANCE4_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_maintenance4 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_maintenance4 device-level function pointers"] + pub struct DeviceFn { + pub get_device_buffer_memory_requirements_khr: PFN_vkGetDeviceBufferMemoryRequirements, + pub get_device_image_memory_requirements_khr: PFN_vkGetDeviceImageMemoryRequirements, + pub get_device_image_sparse_memory_requirements_khr: + PFN_vkGetDeviceImageSparseMemoryRequirements, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_device_buffer_memory_requirements_khr: unsafe { + unsafe extern "system" fn get_device_buffer_memory_requirements_khr( + _device: crate::vk::Device, + _p_info: *const DeviceBufferMemoryRequirements<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_buffer_memory_requirements_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceBufferMemoryRequirementsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_buffer_memory_requirements_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_image_memory_requirements_khr: unsafe { + unsafe extern "system" fn get_device_image_memory_requirements_khr( + _device: crate::vk::Device, + _p_info: *const DeviceImageMemoryRequirements<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_image_memory_requirements_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceImageMemoryRequirementsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_image_memory_requirements_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_image_sparse_memory_requirements_khr: unsafe { + unsafe extern "system" fn get_device_image_sparse_memory_requirements_khr( + _device: crate::vk::Device, + _p_info: *const DeviceImageMemoryRequirements<'_>, + _p_sparse_memory_requirement_count: *mut u32, + _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_image_sparse_memory_requirements_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceImageSparseMemoryRequirementsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_image_sparse_memory_requirements_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_subgroup_rotate"] + pub mod shader_subgroup_rotate { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_SUBGROUP_ROTATE_NAME as NAME, + crate::vk::KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_maximal_reconvergence"] + pub mod shader_maximal_reconvergence { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_MAXIMAL_RECONVERGENCE_NAME as NAME, + crate::vk::KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance5"] + pub mod maintenance5 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE5_NAME as NAME, + crate::vk::KHR_MAINTENANCE5_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_maintenance5 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_maintenance5 device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_index_buffer2_khr: PFN_vkCmdBindIndexBuffer2KHR, + pub get_rendering_area_granularity_khr: PFN_vkGetRenderingAreaGranularityKHR, + pub get_device_image_subresource_layout_khr: PFN_vkGetDeviceImageSubresourceLayoutKHR, + pub get_image_subresource_layout2_khr: PFN_vkGetImageSubresourceLayout2KHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_bind_index_buffer2_khr: unsafe { + unsafe extern "system" fn cmd_bind_index_buffer2_khr( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _size: DeviceSize, + _index_type: IndexType, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_index_buffer2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindIndexBuffer2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_index_buffer2_khr + } else { + ::core::mem::transmute(val) + } + }, + get_rendering_area_granularity_khr: unsafe { + unsafe extern "system" fn get_rendering_area_granularity_khr( + _device: crate::vk::Device, + _p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, + _p_granularity: *mut Extent2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_rendering_area_granularity_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRenderingAreaGranularityKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_rendering_area_granularity_khr + } else { + ::core::mem::transmute(val) + } + }, + get_device_image_subresource_layout_khr: unsafe { + unsafe extern "system" fn get_device_image_subresource_layout_khr( + _device: crate::vk::Device, + _p_info: *const DeviceImageSubresourceInfoKHR<'_>, + _p_layout: *mut SubresourceLayout2KHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_image_subresource_layout_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceImageSubresourceLayoutKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_image_subresource_layout_khr + } else { + ::core::mem::transmute(val) + } + }, + get_image_subresource_layout2_khr: unsafe { + unsafe extern "system" fn get_image_subresource_layout2_khr( + _device: crate::vk::Device, + _image: Image, + _p_subresource: *const ImageSubresource2KHR<'_>, + _p_layout: *mut SubresourceLayout2KHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_subresource_layout2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetImageSubresourceLayout2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_image_subresource_layout2_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_ray_tracing_position_fetch"] + pub mod ray_tracing_position_fetch { + use super::super::*; + pub use { + crate::vk::KHR_RAY_TRACING_POSITION_FETCH_NAME as NAME, + crate::vk::KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_cooperative_matrix"] + pub mod cooperative_matrix { + use super::super::*; + pub use { + crate::vk::KHR_COOPERATIVE_MATRIX_NAME as NAME, + crate::vk::KHR_COOPERATIVE_MATRIX_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_cooperative_matrix instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_cooperative_matrix instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_cooperative_matrix_properties_khr: + PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_cooperative_matrix_properties_khr: unsafe { + unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_khr( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut CooperativeMatrixPropertiesKHR<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_cooperative_matrix_properties_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_cooperative_matrix_properties_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_video_decode_av1"] + pub mod video_decode_av1 { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_DECODE_AV1_NAME as NAME, + crate::vk::KHR_VIDEO_DECODE_AV1_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_video_maintenance1"] + pub mod video_maintenance1 { + use super::super::*; + pub use { + crate::vk::KHR_VIDEO_MAINTENANCE1_NAME as NAME, + crate::vk::KHR_VIDEO_MAINTENANCE1_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_vertex_attribute_divisor"] + pub mod vertex_attribute_divisor { + use super::super::*; + pub use { + crate::vk::KHR_VERTEX_ATTRIBUTE_DIVISOR_NAME as NAME, + crate::vk::KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_load_store_op_none"] + pub mod load_store_op_none { + use super::super::*; + pub use { + crate::vk::KHR_LOAD_STORE_OP_NONE_NAME as NAME, + crate::vk::KHR_LOAD_STORE_OP_NONE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_shader_float_controls2"] + pub mod shader_float_controls2 { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_FLOAT_CONTROLS2_NAME as NAME, + crate::vk::KHR_SHADER_FLOAT_CONTROLS2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_index_type_uint8"] + pub mod index_type_uint8 { + use super::super::*; + pub use { + crate::vk::KHR_INDEX_TYPE_UINT8_NAME as NAME, + crate::vk::KHR_INDEX_TYPE_UINT8_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_line_rasterization"] + pub mod line_rasterization { + use super::super::*; + pub use { + crate::vk::KHR_LINE_RASTERIZATION_NAME as NAME, + crate::vk::KHR_LINE_RASTERIZATION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_line_rasterization device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_line_rasterization device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_line_stipple_khr: PFN_vkCmdSetLineStippleKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_line_stipple_khr: unsafe { + unsafe extern "system" fn cmd_set_line_stipple_khr( + _command_buffer: CommandBuffer, + _line_stipple_factor: u32, + _line_stipple_pattern: u16, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_line_stipple_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleKHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_stipple_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_calibrated_timestamps"] + pub mod calibrated_timestamps { + use super::super::*; + pub use { + crate::vk::KHR_CALIBRATED_TIMESTAMPS_NAME as NAME, + crate::vk::KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_calibrated_timestamps instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_calibrated_timestamps instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_calibrateable_time_domains_khr: + PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_calibrateable_time_domains_khr: unsafe { + unsafe extern "system" fn get_physical_device_calibrateable_time_domains_khr( + _physical_device: PhysicalDevice, + _p_time_domain_count: *mut u32, + _p_time_domains: *mut TimeDomainKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_calibrateable_time_domains_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_calibrateable_time_domains_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_KHR_calibrated_timestamps device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_calibrated_timestamps device-level function pointers"] + pub struct DeviceFn { + pub get_calibrated_timestamps_khr: PFN_vkGetCalibratedTimestampsKHR, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_calibrated_timestamps_khr: unsafe { + unsafe extern "system" fn get_calibrated_timestamps_khr( + _device: crate::vk::Device, + _timestamp_count: u32, + _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, + _p_timestamps: *mut u64, + _p_max_deviation: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_calibrated_timestamps_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsKHR\0"); + let val = _f(cname); + if val.is_null() { + get_calibrated_timestamps_khr + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_KHR_shader_expect_assume"] + pub mod shader_expect_assume { + use super::super::*; + pub use { + crate::vk::KHR_SHADER_EXPECT_ASSUME_NAME as NAME, + crate::vk::KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_KHR_maintenance6"] + pub mod maintenance6 { + use super::super::*; + pub use { + crate::vk::KHR_MAINTENANCE6_NAME as NAME, + crate::vk::KHR_MAINTENANCE6_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_KHR_maintenance6 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_KHR_maintenance6 device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_descriptor_sets2_khr: PFN_vkCmdBindDescriptorSets2KHR, + pub cmd_push_constants2_khr: PFN_vkCmdPushConstants2KHR, + pub cmd_push_descriptor_set2_khr: PFN_vkCmdPushDescriptorSet2KHR, + pub cmd_push_descriptor_set_with_template2_khr: + PFN_vkCmdPushDescriptorSetWithTemplate2KHR, + pub cmd_set_descriptor_buffer_offsets2_ext: PFN_vkCmdSetDescriptorBufferOffsets2EXT, + pub cmd_bind_descriptor_buffer_embedded_samplers2_ext: + PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_bind_descriptor_sets2_khr: unsafe { + unsafe extern "system" fn cmd_bind_descriptor_sets2_khr( + _command_buffer: CommandBuffer, + _p_bind_descriptor_sets_info: *const BindDescriptorSetsInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_descriptor_sets2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorSets2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_descriptor_sets2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_constants2_khr: unsafe { + unsafe extern "system" fn cmd_push_constants2_khr( + _command_buffer: CommandBuffer, + _p_push_constants_info: *const PushConstantsInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_constants2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdPushConstants2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_constants2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set2_khr: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set2_khr( + _command_buffer: CommandBuffer, + _p_push_descriptor_set_info: *const PushDescriptorSetInfoKHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set2_khr) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSet2KHR\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_descriptor_set_with_template2_khr: unsafe { + unsafe extern "system" fn cmd_push_descriptor_set_with_template2_khr( + _command_buffer: CommandBuffer, + _p_push_descriptor_set_with_template_info : * const PushDescriptorSetWithTemplateInfoKHR < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_push_descriptor_set_with_template2_khr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdPushDescriptorSetWithTemplate2KHR\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_push_descriptor_set_with_template2_khr + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_descriptor_buffer_offsets2_ext: unsafe { + unsafe extern "system" fn cmd_set_descriptor_buffer_offsets2_ext( + _command_buffer: CommandBuffer, + _p_set_descriptor_buffer_offsets_info : * const SetDescriptorBufferOffsetsInfoEXT < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_descriptor_buffer_offsets2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetDescriptorBufferOffsets2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_descriptor_buffer_offsets2_ext + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_descriptor_buffer_embedded_samplers2_ext: unsafe { + unsafe extern "system" fn cmd_bind_descriptor_buffer_embedded_samplers2_ext( + _command_buffer: CommandBuffer, + _p_bind_descriptor_buffer_embedded_samplers_info : * const BindDescriptorBufferEmbeddedSamplersInfoEXT < '_ >, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_descriptor_buffer_embedded_samplers2_ext) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBindDescriptorBufferEmbeddedSamplers2EXT\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_bind_descriptor_buffer_embedded_samplers2_ext + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged LUNARG"] +pub mod lunarg { + #[doc = "VK_LUNARG_direct_driver_loading"] + pub mod direct_driver_loading { + use super::super::*; + pub use { + crate::vk::LUNARG_DIRECT_DRIVER_LOADING_NAME as NAME, + crate::vk::LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged MSFT"] +pub mod msft { + #[doc = "VK_MSFT_layered_driver"] + pub mod layered_driver { + use super::super::*; + pub use { + crate::vk::MSFT_LAYERED_DRIVER_NAME as NAME, + crate::vk::MSFT_LAYERED_DRIVER_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged MVK"] +pub mod mvk { + #[doc = "VK_MVK_ios_surface"] + pub mod ios_surface { + use super::super::*; + pub use { + crate::vk::MVK_IOS_SURFACE_NAME as NAME, + crate::vk::MVK_IOS_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_MVK_ios_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_MVK_ios_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_ios_surface_mvk: PFN_vkCreateIOSSurfaceMVK, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_ios_surface_mvk: unsafe { + unsafe extern "system" fn create_ios_surface_mvk( + _instance: crate::vk::Instance, + _p_create_info: *const IOSSurfaceCreateInfoMVK<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_ios_surface_mvk) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateIOSSurfaceMVK\0"); + let val = _f(cname); + if val.is_null() { + create_ios_surface_mvk + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_MVK_macos_surface"] + pub mod macos_surface { + use super::super::*; + pub use { + crate::vk::MVK_MACOS_SURFACE_NAME as NAME, + crate::vk::MVK_MACOS_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_MVK_macos_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_MVK_macos_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_mac_os_surface_mvk: PFN_vkCreateMacOSSurfaceMVK, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_mac_os_surface_mvk: unsafe { + unsafe extern "system" fn create_mac_os_surface_mvk( + _instance: crate::vk::Instance, + _p_create_info: *const MacOSSurfaceCreateInfoMVK<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_mac_os_surface_mvk) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateMacOSSurfaceMVK\0"); + let val = _f(cname); + if val.is_null() { + create_mac_os_surface_mvk + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged NN"] +pub mod nn { + #[doc = "VK_NN_vi_surface"] + pub mod vi_surface { + use super::super::*; + pub use { + crate::vk::NN_VI_SURFACE_NAME as NAME, + crate::vk::NN_VI_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NN_vi_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NN_vi_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_vi_surface_nn: PFN_vkCreateViSurfaceNN, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_vi_surface_nn: unsafe { + unsafe extern "system" fn create_vi_surface_nn( + _instance: crate::vk::Instance, + _p_create_info: *const ViSurfaceCreateInfoNN<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_vi_surface_nn))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateViSurfaceNN\0"); + let val = _f(cname); + if val.is_null() { + create_vi_surface_nn + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged NV"] +pub mod nv { + #[doc = "VK_NV_glsl_shader"] + pub mod glsl_shader { + use super::super::*; + pub use { + crate::vk::NV_GLSL_SHADER_NAME as NAME, + crate::vk::NV_GLSL_SHADER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_dedicated_allocation"] + pub mod dedicated_allocation { + use super::super::*; + pub use { + crate::vk::NV_DEDICATED_ALLOCATION_NAME as NAME, + crate::vk::NV_DEDICATED_ALLOCATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_corner_sampled_image"] + pub mod corner_sampled_image { + use super::super::*; + pub use { + crate::vk::NV_CORNER_SAMPLED_IMAGE_NAME as NAME, + crate::vk::NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_external_memory_capabilities"] + pub mod external_memory_capabilities { + use super::super::*; + pub use { + crate::vk::NV_EXTERNAL_MEMORY_CAPABILITIES_NAME as NAME, + crate::vk::NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_external_memory_capabilities instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_external_memory_capabilities instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_external_image_format_properties_nv: + PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_external_image_format_properties_nv: unsafe { + unsafe extern "system" fn get_physical_device_external_image_format_properties_nv( + _physical_device: PhysicalDevice, + _format: Format, + _ty: ImageType, + _tiling: ImageTiling, + _usage: ImageUsageFlags, + _flags: ImageCreateFlags, + _external_handle_type: ExternalMemoryHandleTypeFlagsNV, + _p_external_image_format_properties : * mut ExternalImageFormatPropertiesNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_image_format_properties_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalImageFormatPropertiesNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_image_format_properties_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_external_memory"] + pub mod external_memory { + use super::super::*; + pub use { + crate::vk::NV_EXTERNAL_MEMORY_NAME as NAME, + crate::vk::NV_EXTERNAL_MEMORY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_external_memory_win32"] + pub mod external_memory_win32 { + use super::super::*; + pub use { + crate::vk::NV_EXTERNAL_MEMORY_WIN32_NAME as NAME, + crate::vk::NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_external_memory_win32 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_external_memory_win32 device-level function pointers"] + pub struct DeviceFn { + pub get_memory_win32_handle_nv: PFN_vkGetMemoryWin32HandleNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_memory_win32_handle_nv: unsafe { + unsafe extern "system" fn get_memory_win32_handle_nv( + _device: crate::vk::Device, + _memory: DeviceMemory, + _handle_type: ExternalMemoryHandleTypeFlagsNV, + _p_handle: *mut HANDLE, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_win32_handle_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleNV\0"); + let val = _f(cname); + if val.is_null() { + get_memory_win32_handle_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_win32_keyed_mutex"] + pub mod win32_keyed_mutex { + use super::super::*; + pub use { + crate::vk::NV_WIN32_KEYED_MUTEX_NAME as NAME, + crate::vk::NV_WIN32_KEYED_MUTEX_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_clip_space_w_scaling"] + pub mod clip_space_w_scaling { + use super::super::*; + pub use { + crate::vk::NV_CLIP_SPACE_W_SCALING_NAME as NAME, + crate::vk::NV_CLIP_SPACE_W_SCALING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_clip_space_w_scaling device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_clip_space_w_scaling device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_viewport_w_scaling_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_w_scaling_nv( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_viewport_w_scalings: *const ViewportWScalingNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_w_scaling_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWScalingNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_w_scaling_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_sample_mask_override_coverage"] + pub mod sample_mask_override_coverage { + use super::super::*; + pub use { + crate::vk::NV_SAMPLE_MASK_OVERRIDE_COVERAGE_NAME as NAME, + crate::vk::NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_geometry_shader_passthrough"] + pub mod geometry_shader_passthrough { + use super::super::*; + pub use { + crate::vk::NV_GEOMETRY_SHADER_PASSTHROUGH_NAME as NAME, + crate::vk::NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_viewport_array2"] + pub mod viewport_array2 { + use super::super::*; + pub use { + crate::vk::NV_VIEWPORT_ARRAY2_NAME as NAME, + crate::vk::NV_VIEWPORT_ARRAY2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_viewport_swizzle"] + pub mod viewport_swizzle { + use super::super::*; + pub use { + crate::vk::NV_VIEWPORT_SWIZZLE_NAME as NAME, + crate::vk::NV_VIEWPORT_SWIZZLE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_fragment_coverage_to_color"] + pub mod fragment_coverage_to_color { + use super::super::*; + pub use { + crate::vk::NV_FRAGMENT_COVERAGE_TO_COLOR_NAME as NAME, + crate::vk::NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_framebuffer_mixed_samples"] + pub mod framebuffer_mixed_samples { + use super::super::*; + pub use { + crate::vk::NV_FRAMEBUFFER_MIXED_SAMPLES_NAME as NAME, + crate::vk::NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_fill_rectangle"] + pub mod fill_rectangle { + use super::super::*; + pub use { + crate::vk::NV_FILL_RECTANGLE_NAME as NAME, + crate::vk::NV_FILL_RECTANGLE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shader_sm_builtins"] + pub mod shader_sm_builtins { + use super::super::*; + pub use { + crate::vk::NV_SHADER_SM_BUILTINS_NAME as NAME, + crate::vk::NV_SHADER_SM_BUILTINS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shading_rate_image"] + pub mod shading_rate_image { + use super::super::*; + pub use { + crate::vk::NV_SHADING_RATE_IMAGE_NAME as NAME, + crate::vk::NV_SHADING_RATE_IMAGE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_shading_rate_image device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_shading_rate_image device-level function pointers"] + pub struct DeviceFn { + pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV, + pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV, + pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_bind_shading_rate_image_nv: unsafe { + unsafe extern "system" fn cmd_bind_shading_rate_image_nv( + _command_buffer: CommandBuffer, + _image_view: ImageView, + _image_layout: ImageLayout, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_shading_rate_image_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadingRateImageNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_shading_rate_image_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_shading_rate_palette_nv: unsafe { + unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_shading_rate_palettes: *const ShadingRatePaletteNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_shading_rate_palette_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetViewportShadingRatePaletteNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_shading_rate_palette_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_coarse_sample_order_nv: unsafe { + unsafe extern "system" fn cmd_set_coarse_sample_order_nv( + _command_buffer: CommandBuffer, + _sample_order_type: CoarseSampleOrderTypeNV, + _custom_sample_order_count: u32, + _p_custom_sample_orders: *const CoarseSampleOrderCustomNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_coarse_sample_order_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCoarseSampleOrderNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_coarse_sample_order_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_ray_tracing"] + pub mod ray_tracing { + use super::super::*; + pub use { + crate::vk::NV_RAY_TRACING_NAME as NAME, + crate::vk::NV_RAY_TRACING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_ray_tracing device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_ray_tracing device-level function pointers"] + pub struct DeviceFn { + pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV, + pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV, + pub get_acceleration_structure_memory_requirements_nv: + PFN_vkGetAccelerationStructureMemoryRequirementsNV, + pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV, + pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV, + pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV, + pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV, + pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV, + pub get_ray_tracing_shader_group_handles_nv: PFN_vkGetRayTracingShaderGroupHandlesKHR, + pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV, + pub cmd_write_acceleration_structures_properties_nv: + PFN_vkCmdWriteAccelerationStructuresPropertiesNV, + pub compile_deferred_nv: PFN_vkCompileDeferredNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_acceleration_structure_nv: unsafe { + unsafe extern "system" fn create_acceleration_structure_nv( + _device: crate::vk::Device, + _p_create_info: *const AccelerationStructureCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_acceleration_structure: *mut AccelerationStructureNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + create_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_acceleration_structure_nv: unsafe { + unsafe extern "system" fn destroy_acceleration_structure_nv( + _device: crate::vk::Device, + _acceleration_structure: AccelerationStructureNV, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_memory_requirements_nv: unsafe { + unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv( + _device: crate::vk::Device, + _p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, + _p_memory_requirements: *mut MemoryRequirements2KHR<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_acceleration_structure_memory_requirements_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureMemoryRequirementsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_memory_requirements_nv + } else { + ::core::mem::transmute(val) + } + }, + bind_acceleration_structure_memory_nv: unsafe { + unsafe extern "system" fn bind_acceleration_structure_memory_nv( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_acceleration_structure_memory_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkBindAccelerationStructureMemoryNV\0", + ); + let val = _f(cname); + if val.is_null() { + bind_acceleration_structure_memory_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_build_acceleration_structure_nv: unsafe { + unsafe extern "system" fn cmd_build_acceleration_structure_nv( + _command_buffer: CommandBuffer, + _p_info: *const AccelerationStructureInfoNV<'_>, + _instance_data: Buffer, + _instance_offset: DeviceSize, + _update: Bool32, + _dst: AccelerationStructureNV, + _src: AccelerationStructureNV, + _scratch: Buffer, + _scratch_offset: DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_build_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBuildAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_build_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_acceleration_structure_nv: unsafe { + unsafe extern "system" fn cmd_copy_acceleration_structure_nv( + _command_buffer: CommandBuffer, + _dst: AccelerationStructureNV, + _src: AccelerationStructureNV, + _mode: CopyAccelerationStructureModeKHR, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_acceleration_structure_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyAccelerationStructureNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_acceleration_structure_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_trace_rays_nv: unsafe { + unsafe extern "system" fn cmd_trace_rays_nv( + _command_buffer: CommandBuffer, + _raygen_shader_binding_table_buffer: Buffer, + _raygen_shader_binding_offset: DeviceSize, + _miss_shader_binding_table_buffer: Buffer, + _miss_shader_binding_offset: DeviceSize, + _miss_shader_binding_stride: DeviceSize, + _hit_shader_binding_table_buffer: Buffer, + _hit_shader_binding_offset: DeviceSize, + _hit_shader_binding_stride: DeviceSize, + _callable_shader_binding_table_buffer: Buffer, + _callable_shader_binding_offset: DeviceSize, + _callable_shader_binding_stride: DeviceSize, + _width: u32, + _height: u32, + _depth: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_trace_rays_nv + } else { + ::core::mem::transmute(val) + } + }, + create_ray_tracing_pipelines_nv: unsafe { + unsafe extern "system" fn create_ray_tracing_pipelines_nv( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_ray_tracing_pipelines_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateRayTracingPipelinesNV\0"); + let val = _f(cname); + if val.is_null() { + create_ray_tracing_pipelines_nv + } else { + ::core::mem::transmute(val) + } + }, + get_ray_tracing_shader_group_handles_nv: unsafe { + unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv( + _device: crate::vk::Device, + _pipeline: Pipeline, + _first_group: u32, + _group_count: u32, + _data_size: usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_ray_tracing_shader_group_handles_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetRayTracingShaderGroupHandlesNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_ray_tracing_shader_group_handles_nv + } else { + ::core::mem::transmute(val) + } + }, + get_acceleration_structure_handle_nv: unsafe { + unsafe extern "system" fn get_acceleration_structure_handle_nv( + _device: crate::vk::Device, + _acceleration_structure: AccelerationStructureNV, + _data_size: usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_acceleration_structure_handle_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetAccelerationStructureHandleNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_acceleration_structure_handle_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_acceleration_structures_properties_nv: unsafe { + unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv( + _command_buffer: CommandBuffer, + _acceleration_structure_count: u32, + _p_acceleration_structures: *const AccelerationStructureNV, + _query_type: QueryType, + _query_pool: QueryPool, + _first_query: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_write_acceleration_structures_properties_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdWriteAccelerationStructuresPropertiesNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_write_acceleration_structures_properties_nv + } else { + ::core::mem::transmute(val) + } + }, + compile_deferred_nv: unsafe { + unsafe extern "system" fn compile_deferred_nv( + _device: crate::vk::Device, + _pipeline: Pipeline, + _shader: u32, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(compile_deferred_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0"); + let val = _f(cname); + if val.is_null() { + compile_deferred_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_representative_fragment_test"] + pub mod representative_fragment_test { + use super::super::*; + pub use { + crate::vk::NV_REPRESENTATIVE_FRAGMENT_TEST_NAME as NAME, + crate::vk::NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shader_subgroup_partitioned"] + pub mod shader_subgroup_partitioned { + use super::super::*; + pub use { + crate::vk::NV_SHADER_SUBGROUP_PARTITIONED_NAME as NAME, + crate::vk::NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_compute_shader_derivatives"] + pub mod compute_shader_derivatives { + use super::super::*; + pub use { + crate::vk::NV_COMPUTE_SHADER_DERIVATIVES_NAME as NAME, + crate::vk::NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_mesh_shader"] + pub mod mesh_shader { + use super::super::*; + pub use { + crate::vk::NV_MESH_SHADER_NAME as NAME, + crate::vk::NV_MESH_SHADER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_mesh_shader device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_mesh_shader device-level function pointers"] + pub struct DeviceFn { + pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV, + pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV, + pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_mesh_tasks_nv: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_nv( + _command_buffer: CommandBuffer, + _task_count: u32, + _first_task: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_mesh_tasks_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_mesh_tasks_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_mesh_tasks_indirect_nv: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_mesh_tasks_indirect_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_mesh_tasks_indirect_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_mesh_tasks_indirect_count_nv: unsafe { + unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_mesh_tasks_indirect_count_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDrawMeshTasksIndirectCountNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_draw_mesh_tasks_indirect_count_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_fragment_shader_barycentric"] + pub mod fragment_shader_barycentric { + use super::super::*; + pub use { + crate::vk::NV_FRAGMENT_SHADER_BARYCENTRIC_NAME as NAME, + crate::vk::NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shader_image_footprint"] + pub mod shader_image_footprint { + use super::super::*; + pub use { + crate::vk::NV_SHADER_IMAGE_FOOTPRINT_NAME as NAME, + crate::vk::NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_scissor_exclusive"] + pub mod scissor_exclusive { + use super::super::*; + pub use { + crate::vk::NV_SCISSOR_EXCLUSIVE_NAME as NAME, + crate::vk::NV_SCISSOR_EXCLUSIVE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_scissor_exclusive device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_scissor_exclusive device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_exclusive_scissor_enable_nv: PFN_vkCmdSetExclusiveScissorEnableNV, + pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_exclusive_scissor_enable_nv: unsafe { + unsafe extern "system" fn cmd_set_exclusive_scissor_enable_nv( + _command_buffer: CommandBuffer, + _first_exclusive_scissor: u32, + _exclusive_scissor_count: u32, + _p_exclusive_scissor_enables: *const Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_exclusive_scissor_enable_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetExclusiveScissorEnableNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_exclusive_scissor_enable_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_exclusive_scissor_nv: unsafe { + unsafe extern "system" fn cmd_set_exclusive_scissor_nv( + _command_buffer: CommandBuffer, + _first_exclusive_scissor: u32, + _exclusive_scissor_count: u32, + _p_exclusive_scissors: *const Rect2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_exclusive_scissor_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetExclusiveScissorNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_exclusive_scissor_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_device_diagnostic_checkpoints"] + pub mod device_diagnostic_checkpoints { + use super::super::*; + pub use { + crate::vk::NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_NAME as NAME, + crate::vk::NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_device_diagnostic_checkpoints device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_device_diagnostic_checkpoints device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV, + pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_checkpoint_nv: unsafe { + unsafe extern "system" fn cmd_set_checkpoint_nv( + _command_buffer: CommandBuffer, + _p_checkpoint_marker: *const c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_checkpoint_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_checkpoint_nv + } else { + ::core::mem::transmute(val) + } + }, + get_queue_checkpoint_data_nv: unsafe { + unsafe extern "system" fn get_queue_checkpoint_data_nv( + _queue: Queue, + _p_checkpoint_data_count: *mut u32, + _p_checkpoint_data: *mut CheckpointDataNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_queue_checkpoint_data_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointDataNV\0"); + let val = _f(cname); + if val.is_null() { + get_queue_checkpoint_data_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_dedicated_allocation_image_aliasing"] + pub mod dedicated_allocation_image_aliasing { + use super::super::*; + pub use { + crate::vk::NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_NAME as NAME, + crate::vk::NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_cooperative_matrix"] + pub mod cooperative_matrix { + use super::super::*; + pub use { + crate::vk::NV_COOPERATIVE_MATRIX_NAME as NAME, + crate::vk::NV_COOPERATIVE_MATRIX_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_cooperative_matrix instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_cooperative_matrix instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_cooperative_matrix_properties_nv: + PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_cooperative_matrix_properties_nv: unsafe { + unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut CooperativeMatrixPropertiesNV<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_cooperative_matrix_properties_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_cooperative_matrix_properties_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_coverage_reduction_mode"] + pub mod coverage_reduction_mode { + use super::super::*; + pub use { + crate::vk::NV_COVERAGE_REDUCTION_MODE_NAME as NAME, + crate::vk::NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_coverage_reduction_mode instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_coverage_reduction_mode instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: + PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe { + unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv( + _physical_device: PhysicalDevice, + _p_combination_count: *mut u32, + _p_combinations: *mut FramebufferMixedSamplesCombinationNV<'_>, + ) -> Result { + panic ! (concat ! ("Unable to load " , stringify ! (get_physical_device_supported_framebuffer_mixed_samples_combinations_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_supported_framebuffer_mixed_samples_combinations_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_device_generated_commands"] + pub mod device_generated_commands { + use super::super::*; + pub use { + crate::vk::NV_DEVICE_GENERATED_COMMANDS_NAME as NAME, + crate::vk::NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_device_generated_commands device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_device_generated_commands device-level function pointers"] + pub struct DeviceFn { + pub get_generated_commands_memory_requirements_nv: + PFN_vkGetGeneratedCommandsMemoryRequirementsNV, + pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV, + pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV, + pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV, + pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV, + pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_generated_commands_memory_requirements_nv: unsafe { + unsafe extern "system" fn get_generated_commands_memory_requirements_nv( + _device: crate::vk::Device, + _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_generated_commands_memory_requirements_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetGeneratedCommandsMemoryRequirementsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_generated_commands_memory_requirements_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_preprocess_generated_commands_nv: unsafe { + unsafe extern "system" fn cmd_preprocess_generated_commands_nv( + _command_buffer: CommandBuffer, + _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_preprocess_generated_commands_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdPreprocessGeneratedCommandsNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_preprocess_generated_commands_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_execute_generated_commands_nv: unsafe { + unsafe extern "system" fn cmd_execute_generated_commands_nv( + _command_buffer: CommandBuffer, + _is_preprocessed: Bool32, + _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_execute_generated_commands_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdExecuteGeneratedCommandsNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_execute_generated_commands_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_pipeline_shader_group_nv: unsafe { + unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _pipeline: Pipeline, + _group_index: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_pipeline_shader_group_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdBindPipelineShaderGroupNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_bind_pipeline_shader_group_nv + } else { + ::core::mem::transmute(val) + } + }, + create_indirect_commands_layout_nv: unsafe { + unsafe extern "system" fn create_indirect_commands_layout_nv( + _device: crate::vk::Device, + _p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_indirect_commands_layout_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCreateIndirectCommandsLayoutNV\0", + ); + let val = _f(cname); + if val.is_null() { + create_indirect_commands_layout_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_indirect_commands_layout_nv: unsafe { + unsafe extern "system" fn destroy_indirect_commands_layout_nv( + _device: crate::vk::Device, + _indirect_commands_layout: IndirectCommandsLayoutNV, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_indirect_commands_layout_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkDestroyIndirectCommandsLayoutNV\0", + ); + let val = _f(cname); + if val.is_null() { + destroy_indirect_commands_layout_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_inherited_viewport_scissor"] + pub mod inherited_viewport_scissor { + use super::super::*; + pub use { + crate::vk::NV_INHERITED_VIEWPORT_SCISSOR_NAME as NAME, + crate::vk::NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_present_barrier"] + pub mod present_barrier { + use super::super::*; + pub use { + crate::vk::NV_PRESENT_BARRIER_NAME as NAME, + crate::vk::NV_PRESENT_BARRIER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_device_diagnostics_config"] + pub mod device_diagnostics_config { + use super::super::*; + pub use { + crate::vk::NV_DEVICE_DIAGNOSTICS_CONFIG_NAME as NAME, + crate::vk::NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_cuda_kernel_launch"] + pub mod cuda_kernel_launch { + use super::super::*; + pub use { + crate::vk::NV_CUDA_KERNEL_LAUNCH_NAME as NAME, + crate::vk::NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_cuda_kernel_launch device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_cuda_kernel_launch device-level function pointers"] + pub struct DeviceFn { + pub create_cuda_module_nv: PFN_vkCreateCudaModuleNV, + pub get_cuda_module_cache_nv: PFN_vkGetCudaModuleCacheNV, + pub create_cuda_function_nv: PFN_vkCreateCudaFunctionNV, + pub destroy_cuda_module_nv: PFN_vkDestroyCudaModuleNV, + pub destroy_cuda_function_nv: PFN_vkDestroyCudaFunctionNV, + pub cmd_cuda_launch_kernel_nv: PFN_vkCmdCudaLaunchKernelNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_cuda_module_nv: unsafe { + unsafe extern "system" fn create_cuda_module_nv( + _device: crate::vk::Device, + _p_create_info: *const CudaModuleCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_module: *mut CudaModuleNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_cuda_module_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaModuleNV\0"); + let val = _f(cname); + if val.is_null() { + create_cuda_module_nv + } else { + ::core::mem::transmute(val) + } + }, + get_cuda_module_cache_nv: unsafe { + unsafe extern "system" fn get_cuda_module_cache_nv( + _device: crate::vk::Device, + _module: CudaModuleNV, + _p_cache_size: *mut usize, + _p_cache_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_cuda_module_cache_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetCudaModuleCacheNV\0"); + let val = _f(cname); + if val.is_null() { + get_cuda_module_cache_nv + } else { + ::core::mem::transmute(val) + } + }, + create_cuda_function_nv: unsafe { + unsafe extern "system" fn create_cuda_function_nv( + _device: crate::vk::Device, + _p_create_info: *const CudaFunctionCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_function: *mut CudaFunctionNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_cuda_function_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaFunctionNV\0"); + let val = _f(cname); + if val.is_null() { + create_cuda_function_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_cuda_module_nv: unsafe { + unsafe extern "system" fn destroy_cuda_module_nv( + _device: crate::vk::Device, + _module: CudaModuleNV, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_cuda_module_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaModuleNV\0"); + let val = _f(cname); + if val.is_null() { + destroy_cuda_module_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_cuda_function_nv: unsafe { + unsafe extern "system" fn destroy_cuda_function_nv( + _device: crate::vk::Device, + _function: CudaFunctionNV, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_cuda_function_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaFunctionNV\0"); + let val = _f(cname); + if val.is_null() { + destroy_cuda_function_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_cuda_launch_kernel_nv: unsafe { + unsafe extern "system" fn cmd_cuda_launch_kernel_nv( + _command_buffer: CommandBuffer, + _p_launch_info: *const CudaLaunchInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_cuda_launch_kernel_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCudaLaunchKernelNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_cuda_launch_kernel_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_low_latency"] + pub mod low_latency { + use super::super::*; + pub use { + crate::vk::NV_LOW_LATENCY_NAME as NAME, + crate::vk::NV_LOW_LATENCY_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_fragment_shading_rate_enums"] + pub mod fragment_shading_rate_enums { + use super::super::*; + pub use { + crate::vk::NV_FRAGMENT_SHADING_RATE_ENUMS_NAME as NAME, + crate::vk::NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_fragment_shading_rate_enums device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_fragment_shading_rate_enums device-level function pointers"] + pub struct DeviceFn { + pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_set_fragment_shading_rate_enum_nv: unsafe { + unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv( + _command_buffer: CommandBuffer, + _shading_rate: FragmentShadingRateNV, + _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_fragment_shading_rate_enum_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdSetFragmentShadingRateEnumNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_set_fragment_shading_rate_enum_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_ray_tracing_motion_blur"] + pub mod ray_tracing_motion_blur { + use super::super::*; + pub use { + crate::vk::NV_RAY_TRACING_MOTION_BLUR_NAME as NAME, + crate::vk::NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_acquire_winrt_display"] + pub mod acquire_winrt_display { + use super::super::*; + pub use { + crate::vk::NV_ACQUIRE_WINRT_DISPLAY_NAME as NAME, + crate::vk::NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_acquire_winrt_display instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_acquire_winrt_display instance-level function pointers"] + pub struct InstanceFn { + pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV, + pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + acquire_winrt_display_nv: unsafe { + unsafe extern "system" fn acquire_winrt_display_nv( + _physical_device: PhysicalDevice, + _display: DisplayKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(acquire_winrt_display_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0"); + let val = _f(cname); + if val.is_null() { + acquire_winrt_display_nv + } else { + ::core::mem::transmute(val) + } + }, + get_winrt_display_nv: unsafe { + unsafe extern "system" fn get_winrt_display_nv( + _physical_device: PhysicalDevice, + _device_relative_id: u32, + _p_display: *mut DisplayKHR, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0"); + let val = _f(cname); + if val.is_null() { + get_winrt_display_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_external_memory_rdma"] + pub mod external_memory_rdma { + use super::super::*; + pub use { + crate::vk::NV_EXTERNAL_MEMORY_RDMA_NAME as NAME, + crate::vk::NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_external_memory_rdma device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_external_memory_rdma device-level function pointers"] + pub struct DeviceFn { + pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_memory_remote_address_nv: unsafe { + unsafe extern "system" fn get_memory_remote_address_nv( + _device: crate::vk::Device, + _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV< + '_, + >, + _p_address: *mut RemoteAddressNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_memory_remote_address_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryRemoteAddressNV\0"); + let val = _f(cname); + if val.is_null() { + get_memory_remote_address_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_displacement_micromap"] + pub mod displacement_micromap { + use super::super::*; + pub use { + crate::vk::NV_DISPLACEMENT_MICROMAP_NAME as NAME, + crate::vk::NV_DISPLACEMENT_MICROMAP_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_copy_memory_indirect"] + pub mod copy_memory_indirect { + use super::super::*; + pub use { + crate::vk::NV_COPY_MEMORY_INDIRECT_NAME as NAME, + crate::vk::NV_COPY_MEMORY_INDIRECT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_copy_memory_indirect device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_copy_memory_indirect device-level function pointers"] + pub struct DeviceFn { + pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV, + pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_copy_memory_indirect_nv: unsafe { + unsafe extern "system" fn cmd_copy_memory_indirect_nv( + _command_buffer: CommandBuffer, + _copy_buffer_address: DeviceAddress, + _copy_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_memory_indirect_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryIndirectNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_memory_indirect_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_memory_to_image_indirect_nv: unsafe { + unsafe extern "system" fn cmd_copy_memory_to_image_indirect_nv( + _command_buffer: CommandBuffer, + _copy_buffer_address: DeviceAddress, + _copy_count: u32, + _stride: u32, + _dst_image: Image, + _dst_image_layout: ImageLayout, + _p_image_subresources: *const ImageSubresourceLayers, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_memory_to_image_indirect_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdCopyMemoryToImageIndirectNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_copy_memory_to_image_indirect_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_memory_decompression"] + pub mod memory_decompression { + use super::super::*; + pub use { + crate::vk::NV_MEMORY_DECOMPRESSION_NAME as NAME, + crate::vk::NV_MEMORY_DECOMPRESSION_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_memory_decompression device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_memory_decompression device-level function pointers"] + pub struct DeviceFn { + pub cmd_decompress_memory_nv: PFN_vkCmdDecompressMemoryNV, + pub cmd_decompress_memory_indirect_count_nv: PFN_vkCmdDecompressMemoryIndirectCountNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_decompress_memory_nv: unsafe { + unsafe extern "system" fn cmd_decompress_memory_nv( + _command_buffer: CommandBuffer, + _decompress_region_count: u32, + _p_decompress_memory_regions: *const DecompressMemoryRegionNV, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_decompress_memory_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdDecompressMemoryNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_decompress_memory_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_decompress_memory_indirect_count_nv: unsafe { + unsafe extern "system" fn cmd_decompress_memory_indirect_count_nv( + _command_buffer: CommandBuffer, + _indirect_commands_address: DeviceAddress, + _indirect_commands_count_address: DeviceAddress, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_decompress_memory_indirect_count_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdDecompressMemoryIndirectCountNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_decompress_memory_indirect_count_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_device_generated_commands_compute"] + pub mod device_generated_commands_compute { + use super::super::*; + pub use { + crate::vk::NV_DEVICE_GENERATED_COMMANDS_COMPUTE_NAME as NAME, + crate::vk::NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_device_generated_commands_compute device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_device_generated_commands_compute device-level function pointers"] + pub struct DeviceFn { + pub get_pipeline_indirect_memory_requirements_nv: + PFN_vkGetPipelineIndirectMemoryRequirementsNV, + pub cmd_update_pipeline_indirect_buffer_nv: PFN_vkCmdUpdatePipelineIndirectBufferNV, + pub get_pipeline_indirect_device_address_nv: PFN_vkGetPipelineIndirectDeviceAddressNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_pipeline_indirect_memory_requirements_nv: unsafe { + unsafe extern "system" fn get_pipeline_indirect_memory_requirements_nv( + _device: crate::vk::Device, + _p_create_info: *const ComputePipelineCreateInfo<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_indirect_memory_requirements_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineIndirectMemoryRequirementsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_indirect_memory_requirements_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_update_pipeline_indirect_buffer_nv: unsafe { + unsafe extern "system" fn cmd_update_pipeline_indirect_buffer_nv( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _pipeline: Pipeline, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_update_pipeline_indirect_buffer_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkCmdUpdatePipelineIndirectBufferNV\0", + ); + let val = _f(cname); + if val.is_null() { + cmd_update_pipeline_indirect_buffer_nv + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_indirect_device_address_nv: unsafe { + unsafe extern "system" fn get_pipeline_indirect_device_address_nv( + _device: crate::vk::Device, + _p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_indirect_device_address_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPipelineIndirectDeviceAddressNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_pipeline_indirect_device_address_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_linear_color_attachment"] + pub mod linear_color_attachment { + use super::super::*; + pub use { + crate::vk::NV_LINEAR_COLOR_ATTACHMENT_NAME as NAME, + crate::vk::NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_optical_flow"] + pub mod optical_flow { + use super::super::*; + pub use { + crate::vk::NV_OPTICAL_FLOW_NAME as NAME, + crate::vk::NV_OPTICAL_FLOW_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_optical_flow instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_optical_flow instance-level function pointers"] + pub struct InstanceFn { + pub get_physical_device_optical_flow_image_formats_nv: + PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_optical_flow_image_formats_nv: unsafe { + unsafe extern "system" fn get_physical_device_optical_flow_image_formats_nv( + _physical_device: PhysicalDevice, + _p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV< + '_, + >, + _p_format_count: *mut u32, + _p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_optical_flow_image_formats_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceOpticalFlowImageFormatsNV\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_optical_flow_image_formats_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + #[doc = "VK_NV_optical_flow device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_optical_flow device-level function pointers"] + pub struct DeviceFn { + pub create_optical_flow_session_nv: PFN_vkCreateOpticalFlowSessionNV, + pub destroy_optical_flow_session_nv: PFN_vkDestroyOpticalFlowSessionNV, + pub bind_optical_flow_session_image_nv: PFN_vkBindOpticalFlowSessionImageNV, + pub cmd_optical_flow_execute_nv: PFN_vkCmdOpticalFlowExecuteNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_optical_flow_session_nv: unsafe { + unsafe extern "system" fn create_optical_flow_session_nv( + _device: crate::vk::Device, + _p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_session: *mut OpticalFlowSessionNV, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_optical_flow_session_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateOpticalFlowSessionNV\0"); + let val = _f(cname); + if val.is_null() { + create_optical_flow_session_nv + } else { + ::core::mem::transmute(val) + } + }, + destroy_optical_flow_session_nv: unsafe { + unsafe extern "system" fn destroy_optical_flow_session_nv( + _device: crate::vk::Device, + _session: OpticalFlowSessionNV, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_optical_flow_session_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyOpticalFlowSessionNV\0"); + let val = _f(cname); + if val.is_null() { + destroy_optical_flow_session_nv + } else { + ::core::mem::transmute(val) + } + }, + bind_optical_flow_session_image_nv: unsafe { + unsafe extern "system" fn bind_optical_flow_session_image_nv( + _device: crate::vk::Device, + _session: OpticalFlowSessionNV, + _binding_point: OpticalFlowSessionBindingPointNV, + _view: ImageView, + _layout: ImageLayout, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(bind_optical_flow_session_image_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkBindOpticalFlowSessionImageNV\0", + ); + let val = _f(cname); + if val.is_null() { + bind_optical_flow_session_image_nv + } else { + ::core::mem::transmute(val) + } + }, + cmd_optical_flow_execute_nv: unsafe { + unsafe extern "system" fn cmd_optical_flow_execute_nv( + _command_buffer: CommandBuffer, + _session: OpticalFlowSessionNV, + _p_execute_info: *const OpticalFlowExecuteInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_optical_flow_execute_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdOpticalFlowExecuteNV\0"); + let val = _f(cname); + if val.is_null() { + cmd_optical_flow_execute_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_ray_tracing_invocation_reorder"] + pub mod ray_tracing_invocation_reorder { + use super::super::*; + pub use { + crate::vk::NV_RAY_TRACING_INVOCATION_REORDER_NAME as NAME, + crate::vk::NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_extended_sparse_address_space"] + pub mod extended_sparse_address_space { + use super::super::*; + pub use { + crate::vk::NV_EXTENDED_SPARSE_ADDRESS_SPACE_NAME as NAME, + crate::vk::NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_low_latency2"] + pub mod low_latency2 { + use super::super::*; + pub use { + crate::vk::NV_LOW_LATENCY2_NAME as NAME, + crate::vk::NV_LOW_LATENCY2_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NV_low_latency2 device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NV_low_latency2 device-level function pointers"] + pub struct DeviceFn { + pub set_latency_sleep_mode_nv: PFN_vkSetLatencySleepModeNV, + pub latency_sleep_nv: PFN_vkLatencySleepNV, + pub set_latency_marker_nv: PFN_vkSetLatencyMarkerNV, + pub get_latency_timings_nv: PFN_vkGetLatencyTimingsNV, + pub queue_notify_out_of_band_nv: PFN_vkQueueNotifyOutOfBandNV, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + set_latency_sleep_mode_nv: unsafe { + unsafe extern "system" fn set_latency_sleep_mode_nv( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(set_latency_sleep_mode_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkSetLatencySleepModeNV\0"); + let val = _f(cname); + if val.is_null() { + set_latency_sleep_mode_nv + } else { + ::core::mem::transmute(val) + } + }, + latency_sleep_nv: unsafe { + unsafe extern "system" fn latency_sleep_nv( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_sleep_info: *const LatencySleepInfoNV<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(latency_sleep_nv))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkLatencySleepNV\0"); + let val = _f(cname); + if val.is_null() { + latency_sleep_nv + } else { + ::core::mem::transmute(val) + } + }, + set_latency_marker_nv: unsafe { + unsafe extern "system" fn set_latency_marker_nv( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(set_latency_marker_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLatencyMarkerNV\0"); + let val = _f(cname); + if val.is_null() { + set_latency_marker_nv + } else { + ::core::mem::transmute(val) + } + }, + get_latency_timings_nv: unsafe { + unsafe extern "system" fn get_latency_timings_nv( + _device: crate::vk::Device, + _swapchain: SwapchainKHR, + _p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_latency_timings_nv) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetLatencyTimingsNV\0"); + let val = _f(cname); + if val.is_null() { + get_latency_timings_nv + } else { + ::core::mem::transmute(val) + } + }, + queue_notify_out_of_band_nv: unsafe { + unsafe extern "system" fn queue_notify_out_of_band_nv( + _queue: Queue, + _p_queue_type_info: *const OutOfBandQueueTypeInfoNV<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(queue_notify_out_of_band_nv) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkQueueNotifyOutOfBandNV\0"); + let val = _f(cname); + if val.is_null() { + queue_notify_out_of_band_nv + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NV_per_stage_descriptor_set"] + pub mod per_stage_descriptor_set { + use super::super::*; + pub use { + crate::vk::NV_PER_STAGE_DESCRIPTOR_SET_NAME as NAME, + crate::vk::NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_descriptor_pool_overallocation"] + pub mod descriptor_pool_overallocation { + use super::super::*; + pub use { + crate::vk::NV_DESCRIPTOR_POOL_OVERALLOCATION_NAME as NAME, + crate::vk::NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_raw_access_chains"] + pub mod raw_access_chains { + use super::super::*; + pub use { + crate::vk::NV_RAW_ACCESS_CHAINS_NAME as NAME, + crate::vk::NV_RAW_ACCESS_CHAINS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_shader_atomic_float16_vector"] + pub mod shader_atomic_float16_vector { + use super::super::*; + pub use { + crate::vk::NV_SHADER_ATOMIC_FLOAT16_VECTOR_NAME as NAME, + crate::vk::NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_NV_ray_tracing_validation"] + pub mod ray_tracing_validation { + use super::super::*; + pub use { + crate::vk::NV_RAY_TRACING_VALIDATION_NAME as NAME, + crate::vk::NV_RAY_TRACING_VALIDATION_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged NVX"] +pub mod nvx { + #[doc = "VK_NVX_binary_import"] + pub mod binary_import { + use super::super::*; + pub use { + crate::vk::NVX_BINARY_IMPORT_NAME as NAME, + crate::vk::NVX_BINARY_IMPORT_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NVX_binary_import device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NVX_binary_import device-level function pointers"] + pub struct DeviceFn { + pub create_cu_module_nvx: PFN_vkCreateCuModuleNVX, + pub create_cu_function_nvx: PFN_vkCreateCuFunctionNVX, + pub destroy_cu_module_nvx: PFN_vkDestroyCuModuleNVX, + pub destroy_cu_function_nvx: PFN_vkDestroyCuFunctionNVX, + pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_cu_module_nvx: unsafe { + unsafe extern "system" fn create_cu_module_nvx( + _device: crate::vk::Device, + _p_create_info: *const CuModuleCreateInfoNVX<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_module: *mut CuModuleNVX, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_cu_module_nvx))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCuModuleNVX\0"); + let val = _f(cname); + if val.is_null() { + create_cu_module_nvx + } else { + ::core::mem::transmute(val) + } + }, + create_cu_function_nvx: unsafe { + unsafe extern "system" fn create_cu_function_nvx( + _device: crate::vk::Device, + _p_create_info: *const CuFunctionCreateInfoNVX<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_function: *mut CuFunctionNVX, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_cu_function_nvx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCuFunctionNVX\0"); + let val = _f(cname); + if val.is_null() { + create_cu_function_nvx + } else { + ::core::mem::transmute(val) + } + }, + destroy_cu_module_nvx: unsafe { + unsafe extern "system" fn destroy_cu_module_nvx( + _device: crate::vk::Device, + _module: CuModuleNVX, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_cu_module_nvx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuModuleNVX\0"); + let val = _f(cname); + if val.is_null() { + destroy_cu_module_nvx + } else { + ::core::mem::transmute(val) + } + }, + destroy_cu_function_nvx: unsafe { + unsafe extern "system" fn destroy_cu_function_nvx( + _device: crate::vk::Device, + _function: CuFunctionNVX, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_cu_function_nvx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuFunctionNVX\0"); + let val = _f(cname); + if val.is_null() { + destroy_cu_function_nvx + } else { + ::core::mem::transmute(val) + } + }, + cmd_cu_launch_kernel_nvx: unsafe { + unsafe extern "system" fn cmd_cu_launch_kernel_nvx( + _command_buffer: CommandBuffer, + _p_launch_info: *const CuLaunchInfoNVX<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_cu_launch_kernel_nvx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdCuLaunchKernelNVX\0"); + let val = _f(cname); + if val.is_null() { + cmd_cu_launch_kernel_nvx + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NVX_image_view_handle"] + pub mod image_view_handle { + use super::super::*; + pub use { + crate::vk::NVX_IMAGE_VIEW_HANDLE_NAME as NAME, + crate::vk::NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_NVX_image_view_handle device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_NVX_image_view_handle device-level function pointers"] + pub struct DeviceFn { + pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX, + pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_image_view_handle_nvx: unsafe { + unsafe extern "system" fn get_image_view_handle_nvx( + _device: crate::vk::Device, + _p_info: *const ImageViewHandleInfoNVX<'_>, + ) -> u32 { + panic!(concat!( + "Unable to load ", + stringify!(get_image_view_handle_nvx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewHandleNVX\0"); + let val = _f(cname); + if val.is_null() { + get_image_view_handle_nvx + } else { + ::core::mem::transmute(val) + } + }, + get_image_view_address_nvx: unsafe { + unsafe extern "system" fn get_image_view_address_nvx( + _device: crate::vk::Device, + _image_view: ImageView, + _p_properties: *mut ImageViewAddressPropertiesNVX<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_image_view_address_nvx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewAddressNVX\0"); + let val = _f(cname); + if val.is_null() { + get_image_view_address_nvx + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_NVX_multiview_per_view_attributes"] + pub mod multiview_per_view_attributes { + use super::super::*; + pub use { + crate::vk::NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_NAME as NAME, + crate::vk::NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged QCOM"] +pub mod qcom { + #[doc = "VK_QCOM_render_pass_shader_resolve"] + pub mod render_pass_shader_resolve { + use super::super::*; + pub use { + crate::vk::QCOM_RENDER_PASS_SHADER_RESOLVE_NAME as NAME, + crate::vk::QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_render_pass_transform"] + pub mod render_pass_transform { + use super::super::*; + pub use { + crate::vk::QCOM_RENDER_PASS_TRANSFORM_NAME as NAME, + crate::vk::QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_render_pass_store_ops"] + pub mod render_pass_store_ops { + use super::super::*; + pub use { + crate::vk::QCOM_RENDER_PASS_STORE_OPS_NAME as NAME, + crate::vk::QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_rotated_copy_commands"] + pub mod rotated_copy_commands { + use super::super::*; + pub use { + crate::vk::QCOM_ROTATED_COPY_COMMANDS_NAME as NAME, + crate::vk::QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_fragment_density_map_offset"] + pub mod fragment_density_map_offset { + use super::super::*; + pub use { + crate::vk::QCOM_FRAGMENT_DENSITY_MAP_OFFSET_NAME as NAME, + crate::vk::QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_image_processing"] + pub mod image_processing { + use super::super::*; + pub use { + crate::vk::QCOM_IMAGE_PROCESSING_NAME as NAME, + crate::vk::QCOM_IMAGE_PROCESSING_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_tile_properties"] + pub mod tile_properties { + use super::super::*; + pub use { + crate::vk::QCOM_TILE_PROPERTIES_NAME as NAME, + crate::vk::QCOM_TILE_PROPERTIES_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_QCOM_tile_properties device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_QCOM_tile_properties device-level function pointers"] + pub struct DeviceFn { + pub get_framebuffer_tile_properties_qcom: PFN_vkGetFramebufferTilePropertiesQCOM, + pub get_dynamic_rendering_tile_properties_qcom: + PFN_vkGetDynamicRenderingTilePropertiesQCOM, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_framebuffer_tile_properties_qcom: unsafe { + unsafe extern "system" fn get_framebuffer_tile_properties_qcom( + _device: crate::vk::Device, + _framebuffer: Framebuffer, + _p_properties_count: *mut u32, + _p_properties: *mut TilePropertiesQCOM<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_framebuffer_tile_properties_qcom) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetFramebufferTilePropertiesQCOM\0", + ); + let val = _f(cname); + if val.is_null() { + get_framebuffer_tile_properties_qcom + } else { + ::core::mem::transmute(val) + } + }, + get_dynamic_rendering_tile_properties_qcom: unsafe { + unsafe extern "system" fn get_dynamic_rendering_tile_properties_qcom( + _device: crate::vk::Device, + _p_rendering_info: *const RenderingInfo<'_>, + _p_properties: *mut TilePropertiesQCOM<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_dynamic_rendering_tile_properties_qcom) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDynamicRenderingTilePropertiesQCOM\0", + ); + let val = _f(cname); + if val.is_null() { + get_dynamic_rendering_tile_properties_qcom + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_QCOM_multiview_per_view_viewports"] + pub mod multiview_per_view_viewports { + use super::super::*; + pub use { + crate::vk::QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_NAME as NAME, + crate::vk::QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_multiview_per_view_render_areas"] + pub mod multiview_per_view_render_areas { + use super::super::*; + pub use { + crate::vk::QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_NAME as NAME, + crate::vk::QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_image_processing2"] + pub mod image_processing2 { + use super::super::*; + pub use { + crate::vk::QCOM_IMAGE_PROCESSING2_NAME as NAME, + crate::vk::QCOM_IMAGE_PROCESSING2_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_filter_cubic_weights"] + pub mod filter_cubic_weights { + use super::super::*; + pub use { + crate::vk::QCOM_FILTER_CUBIC_WEIGHTS_NAME as NAME, + crate::vk::QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_ycbcr_degamma"] + pub mod ycbcr_degamma { + use super::super::*; + pub use { + crate::vk::QCOM_YCBCR_DEGAMMA_NAME as NAME, + crate::vk::QCOM_YCBCR_DEGAMMA_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_QCOM_filter_cubic_clamp"] + pub mod filter_cubic_clamp { + use super::super::*; + pub use { + crate::vk::QCOM_FILTER_CUBIC_CLAMP_NAME as NAME, + crate::vk::QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged QNX"] +pub mod qnx { + #[doc = "VK_QNX_screen_surface"] + pub mod screen_surface { + use super::super::*; + pub use { + crate::vk::QNX_SCREEN_SURFACE_NAME as NAME, + crate::vk::QNX_SCREEN_SURFACE_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_QNX_screen_surface instance-level functions"] + pub struct Instance { + pub(crate) fp: InstanceFn, + pub(crate) handle: crate::vk::Instance, + } + impl Instance { + pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { + let handle = instance.handle(); + let fp = InstanceFn::load(|name| unsafe { + core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &InstanceFn { + &self.fp + } + #[inline] + pub fn instance(&self) -> crate::vk::Instance { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_QNX_screen_surface instance-level function pointers"] + pub struct InstanceFn { + pub create_screen_surface_qnx: PFN_vkCreateScreenSurfaceQNX, + pub get_physical_device_screen_presentation_support_qnx: + PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX, + } + unsafe impl Send for InstanceFn {} + unsafe impl Sync for InstanceFn {} + impl InstanceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_screen_surface_qnx: unsafe { + unsafe extern "system" fn create_screen_surface_qnx( + _instance: crate::vk::Instance, + _p_create_info: *const ScreenSurfaceCreateInfoQNX<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_surface: *mut SurfaceKHR, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_screen_surface_qnx) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateScreenSurfaceQNX\0"); + let val = _f(cname); + if val.is_null() { + create_screen_surface_qnx + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_screen_presentation_support_qnx: unsafe { + unsafe extern "system" fn get_physical_device_screen_presentation_support_qnx( + _physical_device: PhysicalDevice, + _queue_family_index: u32, + _window: *mut _screen_window, + ) -> Bool32 { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_screen_presentation_support_qnx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceScreenPresentationSupportQNX\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_screen_presentation_support_qnx + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } + #[doc = "VK_QNX_external_memory_screen_buffer"] + pub mod external_memory_screen_buffer { + use super::super::*; + pub use { + crate::vk::QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_NAME as NAME, + crate::vk::QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_QNX_external_memory_screen_buffer device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_QNX_external_memory_screen_buffer device-level function pointers"] + pub struct DeviceFn { + pub get_screen_buffer_properties_qnx: PFN_vkGetScreenBufferPropertiesQNX, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_screen_buffer_properties_qnx: unsafe { + unsafe extern "system" fn get_screen_buffer_properties_qnx( + _device: crate::vk::Device, + _buffer: *const _screen_buffer, + _p_properties: *mut ScreenBufferPropertiesQNX<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_screen_buffer_properties_qnx) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetScreenBufferPropertiesQNX\0", + ); + let val = _f(cname); + if val.is_null() { + get_screen_buffer_properties_qnx + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} +#[doc = "Extensions tagged SEC"] +pub mod sec { + #[doc = "VK_SEC_amigo_profiling"] + pub mod amigo_profiling { + use super::super::*; + pub use { + crate::vk::SEC_AMIGO_PROFILING_NAME as NAME, + crate::vk::SEC_AMIGO_PROFILING_SPEC_VERSION as SPEC_VERSION, + }; + } +} +#[doc = "Extensions tagged VALVE"] +pub mod valve { + #[doc = "VK_VALVE_mutable_descriptor_type"] + pub mod mutable_descriptor_type { + use super::super::*; + pub use { + crate::vk::VALVE_MUTABLE_DESCRIPTOR_TYPE_NAME as NAME, + crate::vk::VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION as SPEC_VERSION, + }; + } + #[doc = "VK_VALVE_descriptor_set_host_mapping"] + pub mod descriptor_set_host_mapping { + use super::super::*; + pub use { + crate::vk::VALVE_DESCRIPTOR_SET_HOST_MAPPING_NAME as NAME, + crate::vk::VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION as SPEC_VERSION, + }; + #[doc = "VK_VALVE_descriptor_set_host_mapping device-level functions"] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + #[derive(Clone)] + #[doc = "Raw VK_VALVE_descriptor_set_host_mapping device-level function pointers"] + pub struct DeviceFn { + pub get_descriptor_set_layout_host_mapping_info_valve: + PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE, + pub get_descriptor_set_host_mapping_valve: PFN_vkGetDescriptorSetHostMappingVALVE, + } + unsafe impl Send for DeviceFn {} + unsafe impl Sync for DeviceFn {} + impl DeviceFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_descriptor_set_layout_host_mapping_info_valve: unsafe { + unsafe extern "system" fn get_descriptor_set_layout_host_mapping_info_valve( + _device: crate::vk::Device, + _p_binding_reference: *const DescriptorSetBindingReferenceVALVE<'_>, + _p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_descriptor_set_layout_host_mapping_info_valve) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDescriptorSetLayoutHostMappingInfoVALVE\0", + ); + let val = _f(cname); + if val.is_null() { + get_descriptor_set_layout_host_mapping_info_valve + } else { + ::core::mem::transmute(val) + } + }, + get_descriptor_set_host_mapping_valve: unsafe { + unsafe extern "system" fn get_descriptor_set_host_mapping_valve( + _device: crate::vk::Device, + _descriptor_set: DescriptorSet, + _pp_data: *mut *mut c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_descriptor_set_host_mapping_valve) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDescriptorSetHostMappingVALVE\0", + ); + let val = _f(cname); + if val.is_null() { + get_descriptor_set_host_mapping_valve + } else { + ::core::mem::transmute(val) + } + }, + } + } + } + } +} diff --git a/ash/src/instance.rs b/ash/src/instance.rs index 163e2e21..79995e19 100644 --- a/ash/src/instance.rs +++ b/ash/src/instance.rs @@ -14,13 +14,13 @@ use core::ptr; pub struct Instance { pub(crate) handle: vk::Instance, - pub(crate) instance_fn_1_0: vk::InstanceFnV1_0, - pub(crate) instance_fn_1_1: vk::InstanceFnV1_1, - pub(crate) instance_fn_1_3: vk::InstanceFnV1_3, + pub(crate) instance_fn_1_0: crate::InstanceFnV1_0, + pub(crate) instance_fn_1_1: crate::InstanceFnV1_1, + pub(crate) instance_fn_1_3: crate::InstanceFnV1_3, } impl Instance { - pub unsafe fn load(static_fn: &vk::StaticFn, instance: vk::Instance) -> Self { + pub unsafe fn load(static_fn: &crate::StaticFn, instance: vk::Instance) -> Self { Self::load_with( |name| mem::transmute((static_fn.get_instance_proc_addr)(instance, name.as_ptr())), instance, @@ -33,18 +33,18 @@ impl Instance { ) -> Self { Self::from_parts_1_3( instance, - vk::InstanceFnV1_0::load(&mut load_fn), - vk::InstanceFnV1_1::load(&mut load_fn), - vk::InstanceFnV1_3::load(&mut load_fn), + crate::InstanceFnV1_0::load(&mut load_fn), + crate::InstanceFnV1_1::load(&mut load_fn), + crate::InstanceFnV1_3::load(&mut load_fn), ) } #[inline] pub fn from_parts_1_3( handle: vk::Instance, - instance_fn_1_0: vk::InstanceFnV1_0, - instance_fn_1_1: vk::InstanceFnV1_1, - instance_fn_1_3: vk::InstanceFnV1_3, + instance_fn_1_0: crate::InstanceFnV1_0, + instance_fn_1_1: crate::InstanceFnV1_1, + instance_fn_1_3: crate::InstanceFnV1_3, ) -> Self { Self { handle, @@ -64,7 +64,7 @@ impl Instance { /// Vulkan core 1.3 impl Instance { #[inline] - pub fn fp_v1_3(&self) -> &vk::InstanceFnV1_3 { + pub fn fp_v1_3(&self) -> &crate::InstanceFnV1_3 { &self.instance_fn_1_3 } @@ -109,7 +109,7 @@ impl Instance { /// Vulkan core 1.1 impl Instance { #[inline] - pub fn fp_v1_1(&self) -> &vk::InstanceFnV1_1 { + pub fn fp_v1_1(&self) -> &crate::InstanceFnV1_1 { &self.instance_fn_1_1 } @@ -340,7 +340,7 @@ impl Instance { /// Vulkan core 1.0 impl Instance { #[inline] - pub fn fp_v1_0(&self) -> &vk::InstanceFnV1_0 { + pub fn fp_v1_0(&self) -> &crate::InstanceFnV1_0 { &self.instance_fn_1_0 } diff --git a/ash/src/lib.rs b/ash/src/lib.rs index 9c81b214..2f829d16 100644 --- a/ash/src/lib.rs +++ b/ash/src/lib.rs @@ -58,12 +58,16 @@ pub use crate::device::Device; pub use crate::entry::Entry; #[cfg(feature = "loaded")] pub use crate::entry::LoadingError; +pub use crate::extensions_generated::*; pub use crate::instance::Instance; +pub use crate::tables::*; mod device; mod entry; +mod extensions_generated; mod instance; pub mod prelude; +mod tables; pub mod util; /// Raw Vulkan bindings and types, generated from `vk.xml` #[macro_use] diff --git a/ash/src/tables.rs b/ash/src/tables.rs new file mode 100644 index 00000000..37b9d176 --- /dev/null +++ b/ash/src/tables.rs @@ -0,0 +1,4295 @@ +#![allow(unused_qualifications)] +use crate::vk::*; +use core::ffi::*; +#[derive(Clone)] +#[doc = "Raw Vulkan 1 static function pointers"] +pub struct StaticFn { + pub get_instance_proc_addr: PFN_vkGetInstanceProcAddr, +} +unsafe impl Send for StaticFn {} +unsafe impl Sync for StaticFn {} +impl StaticFn { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_instance_proc_addr: unsafe { + unsafe extern "system" fn get_instance_proc_addr( + _instance: crate::vk::Instance, + _p_name: *const c_char, + ) -> PFN_vkVoidFunction { + panic!(concat!( + "Unable to load ", + stringify!(get_instance_proc_addr) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetInstanceProcAddr\0"); + let val = _f(cname); + if val.is_null() { + get_instance_proc_addr + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1 entry point function pointers"] +pub struct EntryFnV1_0 { + pub create_instance: PFN_vkCreateInstance, + pub enumerate_instance_extension_properties: PFN_vkEnumerateInstanceExtensionProperties, + pub enumerate_instance_layer_properties: PFN_vkEnumerateInstanceLayerProperties, +} +unsafe impl Send for EntryFnV1_0 {} +unsafe impl Sync for EntryFnV1_0 {} +impl EntryFnV1_0 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_instance: unsafe { + unsafe extern "system" fn create_instance( + _p_create_info: *const InstanceCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_instance: *mut crate::vk::Instance, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_instance))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateInstance\0"); + let val = _f(cname); + if val.is_null() { + create_instance + } else { + ::core::mem::transmute(val) + } + }, + enumerate_instance_extension_properties: unsafe { + unsafe extern "system" fn enumerate_instance_extension_properties( + _p_layer_name: *const c_char, + _p_property_count: *mut u32, + _p_properties: *mut ExtensionProperties, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_instance_extension_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkEnumerateInstanceExtensionProperties\0", + ); + let val = _f(cname); + if val.is_null() { + enumerate_instance_extension_properties + } else { + ::core::mem::transmute(val) + } + }, + enumerate_instance_layer_properties: unsafe { + unsafe extern "system" fn enumerate_instance_layer_properties( + _p_property_count: *mut u32, + _p_properties: *mut LayerProperties, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_instance_layer_properties) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkEnumerateInstanceLayerProperties\0"); + let val = _f(cname); + if val.is_null() { + enumerate_instance_layer_properties + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1 instance-level function pointers"] +pub struct InstanceFnV1_0 { + pub destroy_instance: PFN_vkDestroyInstance, + pub enumerate_physical_devices: PFN_vkEnumeratePhysicalDevices, + pub get_physical_device_features: PFN_vkGetPhysicalDeviceFeatures, + pub get_physical_device_format_properties: PFN_vkGetPhysicalDeviceFormatProperties, + pub get_physical_device_image_format_properties: PFN_vkGetPhysicalDeviceImageFormatProperties, + pub get_physical_device_properties: PFN_vkGetPhysicalDeviceProperties, + pub get_physical_device_queue_family_properties: PFN_vkGetPhysicalDeviceQueueFamilyProperties, + pub get_physical_device_memory_properties: PFN_vkGetPhysicalDeviceMemoryProperties, + pub get_device_proc_addr: PFN_vkGetDeviceProcAddr, + pub create_device: PFN_vkCreateDevice, + pub enumerate_device_extension_properties: PFN_vkEnumerateDeviceExtensionProperties, + pub enumerate_device_layer_properties: PFN_vkEnumerateDeviceLayerProperties, + pub get_physical_device_sparse_image_format_properties: + PFN_vkGetPhysicalDeviceSparseImageFormatProperties, +} +unsafe impl Send for InstanceFnV1_0 {} +unsafe impl Sync for InstanceFnV1_0 {} +impl InstanceFnV1_0 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + destroy_instance: unsafe { + unsafe extern "system" fn destroy_instance( + _instance: crate::vk::Instance, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_instance))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyInstance\0"); + let val = _f(cname); + if val.is_null() { + destroy_instance + } else { + ::core::mem::transmute(val) + } + }, + enumerate_physical_devices: unsafe { + unsafe extern "system" fn enumerate_physical_devices( + _instance: crate::vk::Instance, + _p_physical_device_count: *mut u32, + _p_physical_devices: *mut PhysicalDevice, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_physical_devices) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkEnumeratePhysicalDevices\0"); + let val = _f(cname); + if val.is_null() { + enumerate_physical_devices + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_features: unsafe { + unsafe extern "system" fn get_physical_device_features( + _physical_device: PhysicalDevice, + _p_features: *mut PhysicalDeviceFeatures, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_features) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFeatures\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_features + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_format_properties: unsafe { + unsafe extern "system" fn get_physical_device_format_properties( + _physical_device: PhysicalDevice, + _format: Format, + _p_format_properties: *mut FormatProperties, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_format_properties) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFormatProperties\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_format_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_image_format_properties: unsafe { + unsafe extern "system" fn get_physical_device_image_format_properties( + _physical_device: PhysicalDevice, + _format: Format, + _ty: ImageType, + _tiling: ImageTiling, + _usage: ImageUsageFlags, + _flags: ImageCreateFlags, + _p_image_format_properties: *mut ImageFormatProperties, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_image_format_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceImageFormatProperties\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_image_format_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_properties: unsafe { + unsafe extern "system" fn get_physical_device_properties( + _physical_device: PhysicalDevice, + _p_properties: *mut PhysicalDeviceProperties, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceProperties\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_queue_family_properties: unsafe { + unsafe extern "system" fn get_physical_device_queue_family_properties( + _physical_device: PhysicalDevice, + _p_queue_family_property_count: *mut u32, + _p_queue_family_properties: *mut QueueFamilyProperties, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_queue_family_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceQueueFamilyProperties\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_queue_family_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_memory_properties: unsafe { + unsafe extern "system" fn get_physical_device_memory_properties( + _physical_device: PhysicalDevice, + _p_memory_properties: *mut PhysicalDeviceMemoryProperties, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_memory_properties) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceMemoryProperties\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_memory_properties + } else { + ::core::mem::transmute(val) + } + }, + get_device_proc_addr: unsafe { + unsafe extern "system" fn get_device_proc_addr( + _device: crate::vk::Device, + _p_name: *const c_char, + ) -> PFN_vkVoidFunction { + panic!(concat!("Unable to load ", stringify!(get_device_proc_addr))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceProcAddr\0"); + let val = _f(cname); + if val.is_null() { + get_device_proc_addr + } else { + ::core::mem::transmute(val) + } + }, + create_device: unsafe { + unsafe extern "system" fn create_device( + _physical_device: PhysicalDevice, + _p_create_info: *const DeviceCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_device: *mut crate::vk::Device, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_device))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateDevice\0"); + let val = _f(cname); + if val.is_null() { + create_device + } else { + ::core::mem::transmute(val) + } + }, + enumerate_device_extension_properties: unsafe { + unsafe extern "system" fn enumerate_device_extension_properties( + _physical_device: PhysicalDevice, + _p_layer_name: *const c_char, + _p_property_count: *mut u32, + _p_properties: *mut ExtensionProperties, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_device_extension_properties) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkEnumerateDeviceExtensionProperties\0"); + let val = _f(cname); + if val.is_null() { + enumerate_device_extension_properties + } else { + ::core::mem::transmute(val) + } + }, + enumerate_device_layer_properties: unsafe { + unsafe extern "system" fn enumerate_device_layer_properties( + _physical_device: PhysicalDevice, + _p_property_count: *mut u32, + _p_properties: *mut LayerProperties, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_device_layer_properties) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkEnumerateDeviceLayerProperties\0"); + let val = _f(cname); + if val.is_null() { + enumerate_device_layer_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_sparse_image_format_properties: unsafe { + unsafe extern "system" fn get_physical_device_sparse_image_format_properties( + _physical_device: PhysicalDevice, + _format: Format, + _ty: ImageType, + _samples: SampleCountFlags, + _usage: ImageUsageFlags, + _tiling: ImageTiling, + _p_property_count: *mut u32, + _p_properties: *mut SparseImageFormatProperties, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_sparse_image_format_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSparseImageFormatProperties\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_sparse_image_format_properties + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1 device-level function pointers"] +pub struct DeviceFnV1_0 { + pub destroy_device: PFN_vkDestroyDevice, + pub get_device_queue: PFN_vkGetDeviceQueue, + pub queue_submit: PFN_vkQueueSubmit, + pub queue_wait_idle: PFN_vkQueueWaitIdle, + pub device_wait_idle: PFN_vkDeviceWaitIdle, + pub allocate_memory: PFN_vkAllocateMemory, + pub free_memory: PFN_vkFreeMemory, + pub map_memory: PFN_vkMapMemory, + pub unmap_memory: PFN_vkUnmapMemory, + pub flush_mapped_memory_ranges: PFN_vkFlushMappedMemoryRanges, + pub invalidate_mapped_memory_ranges: PFN_vkInvalidateMappedMemoryRanges, + pub get_device_memory_commitment: PFN_vkGetDeviceMemoryCommitment, + pub bind_buffer_memory: PFN_vkBindBufferMemory, + pub bind_image_memory: PFN_vkBindImageMemory, + pub get_buffer_memory_requirements: PFN_vkGetBufferMemoryRequirements, + pub get_image_memory_requirements: PFN_vkGetImageMemoryRequirements, + pub get_image_sparse_memory_requirements: PFN_vkGetImageSparseMemoryRequirements, + pub queue_bind_sparse: PFN_vkQueueBindSparse, + pub create_fence: PFN_vkCreateFence, + pub destroy_fence: PFN_vkDestroyFence, + pub reset_fences: PFN_vkResetFences, + pub get_fence_status: PFN_vkGetFenceStatus, + pub wait_for_fences: PFN_vkWaitForFences, + pub create_semaphore: PFN_vkCreateSemaphore, + pub destroy_semaphore: PFN_vkDestroySemaphore, + pub create_event: PFN_vkCreateEvent, + pub destroy_event: PFN_vkDestroyEvent, + pub get_event_status: PFN_vkGetEventStatus, + pub set_event: PFN_vkSetEvent, + pub reset_event: PFN_vkResetEvent, + pub create_query_pool: PFN_vkCreateQueryPool, + pub destroy_query_pool: PFN_vkDestroyQueryPool, + pub get_query_pool_results: PFN_vkGetQueryPoolResults, + pub create_buffer: PFN_vkCreateBuffer, + pub destroy_buffer: PFN_vkDestroyBuffer, + pub create_buffer_view: PFN_vkCreateBufferView, + pub destroy_buffer_view: PFN_vkDestroyBufferView, + pub create_image: PFN_vkCreateImage, + pub destroy_image: PFN_vkDestroyImage, + pub get_image_subresource_layout: PFN_vkGetImageSubresourceLayout, + pub create_image_view: PFN_vkCreateImageView, + pub destroy_image_view: PFN_vkDestroyImageView, + pub create_shader_module: PFN_vkCreateShaderModule, + pub destroy_shader_module: PFN_vkDestroyShaderModule, + pub create_pipeline_cache: PFN_vkCreatePipelineCache, + pub destroy_pipeline_cache: PFN_vkDestroyPipelineCache, + pub get_pipeline_cache_data: PFN_vkGetPipelineCacheData, + pub merge_pipeline_caches: PFN_vkMergePipelineCaches, + pub create_graphics_pipelines: PFN_vkCreateGraphicsPipelines, + pub create_compute_pipelines: PFN_vkCreateComputePipelines, + pub destroy_pipeline: PFN_vkDestroyPipeline, + pub create_pipeline_layout: PFN_vkCreatePipelineLayout, + pub destroy_pipeline_layout: PFN_vkDestroyPipelineLayout, + pub create_sampler: PFN_vkCreateSampler, + pub destroy_sampler: PFN_vkDestroySampler, + pub create_descriptor_set_layout: PFN_vkCreateDescriptorSetLayout, + pub destroy_descriptor_set_layout: PFN_vkDestroyDescriptorSetLayout, + pub create_descriptor_pool: PFN_vkCreateDescriptorPool, + pub destroy_descriptor_pool: PFN_vkDestroyDescriptorPool, + pub reset_descriptor_pool: PFN_vkResetDescriptorPool, + pub allocate_descriptor_sets: PFN_vkAllocateDescriptorSets, + pub free_descriptor_sets: PFN_vkFreeDescriptorSets, + pub update_descriptor_sets: PFN_vkUpdateDescriptorSets, + pub create_framebuffer: PFN_vkCreateFramebuffer, + pub destroy_framebuffer: PFN_vkDestroyFramebuffer, + pub create_render_pass: PFN_vkCreateRenderPass, + pub destroy_render_pass: PFN_vkDestroyRenderPass, + pub get_render_area_granularity: PFN_vkGetRenderAreaGranularity, + pub create_command_pool: PFN_vkCreateCommandPool, + pub destroy_command_pool: PFN_vkDestroyCommandPool, + pub reset_command_pool: PFN_vkResetCommandPool, + pub allocate_command_buffers: PFN_vkAllocateCommandBuffers, + pub free_command_buffers: PFN_vkFreeCommandBuffers, + pub begin_command_buffer: PFN_vkBeginCommandBuffer, + pub end_command_buffer: PFN_vkEndCommandBuffer, + pub reset_command_buffer: PFN_vkResetCommandBuffer, + pub cmd_bind_pipeline: PFN_vkCmdBindPipeline, + pub cmd_set_viewport: PFN_vkCmdSetViewport, + pub cmd_set_scissor: PFN_vkCmdSetScissor, + pub cmd_set_line_width: PFN_vkCmdSetLineWidth, + pub cmd_set_depth_bias: PFN_vkCmdSetDepthBias, + pub cmd_set_blend_constants: PFN_vkCmdSetBlendConstants, + pub cmd_set_depth_bounds: PFN_vkCmdSetDepthBounds, + pub cmd_set_stencil_compare_mask: PFN_vkCmdSetStencilCompareMask, + pub cmd_set_stencil_write_mask: PFN_vkCmdSetStencilWriteMask, + pub cmd_set_stencil_reference: PFN_vkCmdSetStencilReference, + pub cmd_bind_descriptor_sets: PFN_vkCmdBindDescriptorSets, + pub cmd_bind_index_buffer: PFN_vkCmdBindIndexBuffer, + pub cmd_bind_vertex_buffers: PFN_vkCmdBindVertexBuffers, + pub cmd_draw: PFN_vkCmdDraw, + pub cmd_draw_indexed: PFN_vkCmdDrawIndexed, + pub cmd_draw_indirect: PFN_vkCmdDrawIndirect, + pub cmd_draw_indexed_indirect: PFN_vkCmdDrawIndexedIndirect, + pub cmd_dispatch: PFN_vkCmdDispatch, + pub cmd_dispatch_indirect: PFN_vkCmdDispatchIndirect, + pub cmd_copy_buffer: PFN_vkCmdCopyBuffer, + pub cmd_copy_image: PFN_vkCmdCopyImage, + pub cmd_blit_image: PFN_vkCmdBlitImage, + pub cmd_copy_buffer_to_image: PFN_vkCmdCopyBufferToImage, + pub cmd_copy_image_to_buffer: PFN_vkCmdCopyImageToBuffer, + pub cmd_update_buffer: PFN_vkCmdUpdateBuffer, + pub cmd_fill_buffer: PFN_vkCmdFillBuffer, + pub cmd_clear_color_image: PFN_vkCmdClearColorImage, + pub cmd_clear_depth_stencil_image: PFN_vkCmdClearDepthStencilImage, + pub cmd_clear_attachments: PFN_vkCmdClearAttachments, + pub cmd_resolve_image: PFN_vkCmdResolveImage, + pub cmd_set_event: PFN_vkCmdSetEvent, + pub cmd_reset_event: PFN_vkCmdResetEvent, + pub cmd_wait_events: PFN_vkCmdWaitEvents, + pub cmd_pipeline_barrier: PFN_vkCmdPipelineBarrier, + pub cmd_begin_query: PFN_vkCmdBeginQuery, + pub cmd_end_query: PFN_vkCmdEndQuery, + pub cmd_reset_query_pool: PFN_vkCmdResetQueryPool, + pub cmd_write_timestamp: PFN_vkCmdWriteTimestamp, + pub cmd_copy_query_pool_results: PFN_vkCmdCopyQueryPoolResults, + pub cmd_push_constants: PFN_vkCmdPushConstants, + pub cmd_begin_render_pass: PFN_vkCmdBeginRenderPass, + pub cmd_next_subpass: PFN_vkCmdNextSubpass, + pub cmd_end_render_pass: PFN_vkCmdEndRenderPass, + pub cmd_execute_commands: PFN_vkCmdExecuteCommands, +} +unsafe impl Send for DeviceFnV1_0 {} +unsafe impl Sync for DeviceFnV1_0 {} +impl DeviceFnV1_0 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + destroy_device: unsafe { + unsafe extern "system" fn destroy_device( + _device: crate::vk::Device, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_device))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyDevice\0"); + let val = _f(cname); + if val.is_null() { + destroy_device + } else { + ::core::mem::transmute(val) + } + }, + get_device_queue: unsafe { + unsafe extern "system" fn get_device_queue( + _device: crate::vk::Device, + _queue_family_index: u32, + _queue_index: u32, + _p_queue: *mut Queue, + ) { + panic!(concat!("Unable to load ", stringify!(get_device_queue))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceQueue\0"); + let val = _f(cname); + if val.is_null() { + get_device_queue + } else { + ::core::mem::transmute(val) + } + }, + queue_submit: unsafe { + unsafe extern "system" fn queue_submit( + _queue: Queue, + _submit_count: u32, + _p_submits: *const SubmitInfo<'_>, + _fence: Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_submit))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit\0"); + let val = _f(cname); + if val.is_null() { + queue_submit + } else { + ::core::mem::transmute(val) + } + }, + queue_wait_idle: unsafe { + unsafe extern "system" fn queue_wait_idle(_queue: Queue) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_wait_idle))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueWaitIdle\0"); + let val = _f(cname); + if val.is_null() { + queue_wait_idle + } else { + ::core::mem::transmute(val) + } + }, + device_wait_idle: unsafe { + unsafe extern "system" fn device_wait_idle(_device: crate::vk::Device) -> Result { + panic!(concat!("Unable to load ", stringify!(device_wait_idle))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDeviceWaitIdle\0"); + let val = _f(cname); + if val.is_null() { + device_wait_idle + } else { + ::core::mem::transmute(val) + } + }, + allocate_memory: unsafe { + unsafe extern "system" fn allocate_memory( + _device: crate::vk::Device, + _p_allocate_info: *const MemoryAllocateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_memory: *mut DeviceMemory, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(allocate_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkAllocateMemory\0"); + let val = _f(cname); + if val.is_null() { + allocate_memory + } else { + ::core::mem::transmute(val) + } + }, + free_memory: unsafe { + unsafe extern "system" fn free_memory( + _device: crate::vk::Device, + _memory: DeviceMemory, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(free_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkFreeMemory\0"); + let val = _f(cname); + if val.is_null() { + free_memory + } else { + ::core::mem::transmute(val) + } + }, + map_memory: unsafe { + unsafe extern "system" fn map_memory( + _device: crate::vk::Device, + _memory: DeviceMemory, + _offset: DeviceSize, + _size: DeviceSize, + _flags: MemoryMapFlags, + _pp_data: *mut *mut c_void, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(map_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkMapMemory\0"); + let val = _f(cname); + if val.is_null() { + map_memory + } else { + ::core::mem::transmute(val) + } + }, + unmap_memory: unsafe { + unsafe extern "system" fn unmap_memory( + _device: crate::vk::Device, + _memory: DeviceMemory, + ) { + panic!(concat!("Unable to load ", stringify!(unmap_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory\0"); + let val = _f(cname); + if val.is_null() { + unmap_memory + } else { + ::core::mem::transmute(val) + } + }, + flush_mapped_memory_ranges: unsafe { + unsafe extern "system" fn flush_mapped_memory_ranges( + _device: crate::vk::Device, + _memory_range_count: u32, + _p_memory_ranges: *const MappedMemoryRange<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(flush_mapped_memory_ranges) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkFlushMappedMemoryRanges\0"); + let val = _f(cname); + if val.is_null() { + flush_mapped_memory_ranges + } else { + ::core::mem::transmute(val) + } + }, + invalidate_mapped_memory_ranges: unsafe { + unsafe extern "system" fn invalidate_mapped_memory_ranges( + _device: crate::vk::Device, + _memory_range_count: u32, + _p_memory_ranges: *const MappedMemoryRange<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(invalidate_mapped_memory_ranges) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkInvalidateMappedMemoryRanges\0"); + let val = _f(cname); + if val.is_null() { + invalidate_mapped_memory_ranges + } else { + ::core::mem::transmute(val) + } + }, + get_device_memory_commitment: unsafe { + unsafe extern "system" fn get_device_memory_commitment( + _device: crate::vk::Device, + _memory: DeviceMemory, + _p_committed_memory_in_bytes: *mut DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_memory_commitment) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceMemoryCommitment\0"); + let val = _f(cname); + if val.is_null() { + get_device_memory_commitment + } else { + ::core::mem::transmute(val) + } + }, + bind_buffer_memory: unsafe { + unsafe extern "system" fn bind_buffer_memory( + _device: crate::vk::Device, + _buffer: Buffer, + _memory: DeviceMemory, + _memory_offset: DeviceSize, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(bind_buffer_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory\0"); + let val = _f(cname); + if val.is_null() { + bind_buffer_memory + } else { + ::core::mem::transmute(val) + } + }, + bind_image_memory: unsafe { + unsafe extern "system" fn bind_image_memory( + _device: crate::vk::Device, + _image: Image, + _memory: DeviceMemory, + _memory_offset: DeviceSize, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(bind_image_memory))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory\0"); + let val = _f(cname); + if val.is_null() { + bind_image_memory + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_memory_requirements: unsafe { + unsafe extern "system" fn get_buffer_memory_requirements( + _device: crate::vk::Device, + _buffer: Buffer, + _p_memory_requirements: *mut MemoryRequirements, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_memory_requirements) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetBufferMemoryRequirements\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_memory_requirements + } else { + ::core::mem::transmute(val) + } + }, + get_image_memory_requirements: unsafe { + unsafe extern "system" fn get_image_memory_requirements( + _device: crate::vk::Device, + _image: Image, + _p_memory_requirements: *mut MemoryRequirements, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_memory_requirements) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageMemoryRequirements\0"); + let val = _f(cname); + if val.is_null() { + get_image_memory_requirements + } else { + ::core::mem::transmute(val) + } + }, + get_image_sparse_memory_requirements: unsafe { + unsafe extern "system" fn get_image_sparse_memory_requirements( + _device: crate::vk::Device, + _image: Image, + _p_sparse_memory_requirement_count: *mut u32, + _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_sparse_memory_requirements) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetImageSparseMemoryRequirements\0"); + let val = _f(cname); + if val.is_null() { + get_image_sparse_memory_requirements + } else { + ::core::mem::transmute(val) + } + }, + queue_bind_sparse: unsafe { + unsafe extern "system" fn queue_bind_sparse( + _queue: Queue, + _bind_info_count: u32, + _p_bind_info: *const BindSparseInfo<'_>, + _fence: Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_bind_sparse))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueBindSparse\0"); + let val = _f(cname); + if val.is_null() { + queue_bind_sparse + } else { + ::core::mem::transmute(val) + } + }, + create_fence: unsafe { + unsafe extern "system" fn create_fence( + _device: crate::vk::Device, + _p_create_info: *const FenceCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_fence: *mut Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_fence))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateFence\0"); + let val = _f(cname); + if val.is_null() { + create_fence + } else { + ::core::mem::transmute(val) + } + }, + destroy_fence: unsafe { + unsafe extern "system" fn destroy_fence( + _device: crate::vk::Device, + _fence: Fence, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_fence))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyFence\0"); + let val = _f(cname); + if val.is_null() { + destroy_fence + } else { + ::core::mem::transmute(val) + } + }, + reset_fences: unsafe { + unsafe extern "system" fn reset_fences( + _device: crate::vk::Device, + _fence_count: u32, + _p_fences: *const Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(reset_fences))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetFences\0"); + let val = _f(cname); + if val.is_null() { + reset_fences + } else { + ::core::mem::transmute(val) + } + }, + get_fence_status: unsafe { + unsafe extern "system" fn get_fence_status( + _device: crate::vk::Device, + _fence: Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_fence_status))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetFenceStatus\0"); + let val = _f(cname); + if val.is_null() { + get_fence_status + } else { + ::core::mem::transmute(val) + } + }, + wait_for_fences: unsafe { + unsafe extern "system" fn wait_for_fences( + _device: crate::vk::Device, + _fence_count: u32, + _p_fences: *const Fence, + _wait_all: Bool32, + _timeout: u64, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(wait_for_fences))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitForFences\0"); + let val = _f(cname); + if val.is_null() { + wait_for_fences + } else { + ::core::mem::transmute(val) + } + }, + create_semaphore: unsafe { + unsafe extern "system" fn create_semaphore( + _device: crate::vk::Device, + _p_create_info: *const SemaphoreCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_semaphore: *mut Semaphore, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_semaphore))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSemaphore\0"); + let val = _f(cname); + if val.is_null() { + create_semaphore + } else { + ::core::mem::transmute(val) + } + }, + destroy_semaphore: unsafe { + unsafe extern "system" fn destroy_semaphore( + _device: crate::vk::Device, + _semaphore: Semaphore, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_semaphore))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySemaphore\0"); + let val = _f(cname); + if val.is_null() { + destroy_semaphore + } else { + ::core::mem::transmute(val) + } + }, + create_event: unsafe { + unsafe extern "system" fn create_event( + _device: crate::vk::Device, + _p_create_info: *const EventCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_event: *mut Event, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_event))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateEvent\0"); + let val = _f(cname); + if val.is_null() { + create_event + } else { + ::core::mem::transmute(val) + } + }, + destroy_event: unsafe { + unsafe extern "system" fn destroy_event( + _device: crate::vk::Device, + _event: Event, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_event))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyEvent\0"); + let val = _f(cname); + if val.is_null() { + destroy_event + } else { + ::core::mem::transmute(val) + } + }, + get_event_status: unsafe { + unsafe extern "system" fn get_event_status( + _device: crate::vk::Device, + _event: Event, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(get_event_status))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetEventStatus\0"); + let val = _f(cname); + if val.is_null() { + get_event_status + } else { + ::core::mem::transmute(val) + } + }, + set_event: unsafe { + unsafe extern "system" fn set_event( + _device: crate::vk::Device, + _event: Event, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(set_event))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetEvent\0"); + let val = _f(cname); + if val.is_null() { + set_event + } else { + ::core::mem::transmute(val) + } + }, + reset_event: unsafe { + unsafe extern "system" fn reset_event( + _device: crate::vk::Device, + _event: Event, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(reset_event))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetEvent\0"); + let val = _f(cname); + if val.is_null() { + reset_event + } else { + ::core::mem::transmute(val) + } + }, + create_query_pool: unsafe { + unsafe extern "system" fn create_query_pool( + _device: crate::vk::Device, + _p_create_info: *const QueryPoolCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_query_pool: *mut QueryPool, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_query_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateQueryPool\0"); + let val = _f(cname); + if val.is_null() { + create_query_pool + } else { + ::core::mem::transmute(val) + } + }, + destroy_query_pool: unsafe { + unsafe extern "system" fn destroy_query_pool( + _device: crate::vk::Device, + _query_pool: QueryPool, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_query_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyQueryPool\0"); + let val = _f(cname); + if val.is_null() { + destroy_query_pool + } else { + ::core::mem::transmute(val) + } + }, + get_query_pool_results: unsafe { + unsafe extern "system" fn get_query_pool_results( + _device: crate::vk::Device, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + _data_size: usize, + _p_data: *mut c_void, + _stride: DeviceSize, + _flags: QueryResultFlags, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_query_pool_results) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetQueryPoolResults\0"); + let val = _f(cname); + if val.is_null() { + get_query_pool_results + } else { + ::core::mem::transmute(val) + } + }, + create_buffer: unsafe { + unsafe extern "system" fn create_buffer( + _device: crate::vk::Device, + _p_create_info: *const BufferCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_buffer: *mut Buffer, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateBuffer\0"); + let val = _f(cname); + if val.is_null() { + create_buffer + } else { + ::core::mem::transmute(val) + } + }, + destroy_buffer: unsafe { + unsafe extern "system" fn destroy_buffer( + _device: crate::vk::Device, + _buffer: Buffer, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyBuffer\0"); + let val = _f(cname); + if val.is_null() { + destroy_buffer + } else { + ::core::mem::transmute(val) + } + }, + create_buffer_view: unsafe { + unsafe extern "system" fn create_buffer_view( + _device: crate::vk::Device, + _p_create_info: *const BufferViewCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_view: *mut BufferView, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_buffer_view))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateBufferView\0"); + let val = _f(cname); + if val.is_null() { + create_buffer_view + } else { + ::core::mem::transmute(val) + } + }, + destroy_buffer_view: unsafe { + unsafe extern "system" fn destroy_buffer_view( + _device: crate::vk::Device, + _buffer_view: BufferView, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_buffer_view))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyBufferView\0"); + let val = _f(cname); + if val.is_null() { + destroy_buffer_view + } else { + ::core::mem::transmute(val) + } + }, + create_image: unsafe { + unsafe extern "system" fn create_image( + _device: crate::vk::Device, + _p_create_info: *const ImageCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_image: *mut Image, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateImage\0"); + let val = _f(cname); + if val.is_null() { + create_image + } else { + ::core::mem::transmute(val) + } + }, + destroy_image: unsafe { + unsafe extern "system" fn destroy_image( + _device: crate::vk::Device, + _image: Image, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyImage\0"); + let val = _f(cname); + if val.is_null() { + destroy_image + } else { + ::core::mem::transmute(val) + } + }, + get_image_subresource_layout: unsafe { + unsafe extern "system" fn get_image_subresource_layout( + _device: crate::vk::Device, + _image: Image, + _p_subresource: *const ImageSubresource, + _p_layout: *mut SubresourceLayout, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_subresource_layout) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageSubresourceLayout\0"); + let val = _f(cname); + if val.is_null() { + get_image_subresource_layout + } else { + ::core::mem::transmute(val) + } + }, + create_image_view: unsafe { + unsafe extern "system" fn create_image_view( + _device: crate::vk::Device, + _p_create_info: *const ImageViewCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_view: *mut ImageView, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_image_view))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateImageView\0"); + let val = _f(cname); + if val.is_null() { + create_image_view + } else { + ::core::mem::transmute(val) + } + }, + destroy_image_view: unsafe { + unsafe extern "system" fn destroy_image_view( + _device: crate::vk::Device, + _image_view: ImageView, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_image_view))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyImageView\0"); + let val = _f(cname); + if val.is_null() { + destroy_image_view + } else { + ::core::mem::transmute(val) + } + }, + create_shader_module: unsafe { + unsafe extern "system" fn create_shader_module( + _device: crate::vk::Device, + _p_create_info: *const ShaderModuleCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_shader_module: *mut ShaderModule, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_shader_module))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateShaderModule\0"); + let val = _f(cname); + if val.is_null() { + create_shader_module + } else { + ::core::mem::transmute(val) + } + }, + destroy_shader_module: unsafe { + unsafe extern "system" fn destroy_shader_module( + _device: crate::vk::Device, + _shader_module: ShaderModule, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_shader_module) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyShaderModule\0"); + let val = _f(cname); + if val.is_null() { + destroy_shader_module + } else { + ::core::mem::transmute(val) + } + }, + create_pipeline_cache: unsafe { + unsafe extern "system" fn create_pipeline_cache( + _device: crate::vk::Device, + _p_create_info: *const PipelineCacheCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipeline_cache: *mut PipelineCache, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_pipeline_cache) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreatePipelineCache\0"); + let val = _f(cname); + if val.is_null() { + create_pipeline_cache + } else { + ::core::mem::transmute(val) + } + }, + destroy_pipeline_cache: unsafe { + unsafe extern "system" fn destroy_pipeline_cache( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_pipeline_cache) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipelineCache\0"); + let val = _f(cname); + if val.is_null() { + destroy_pipeline_cache + } else { + ::core::mem::transmute(val) + } + }, + get_pipeline_cache_data: unsafe { + unsafe extern "system" fn get_pipeline_cache_data( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _p_data_size: *mut usize, + _p_data: *mut c_void, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_pipeline_cache_data) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPipelineCacheData\0"); + let val = _f(cname); + if val.is_null() { + get_pipeline_cache_data + } else { + ::core::mem::transmute(val) + } + }, + merge_pipeline_caches: unsafe { + unsafe extern "system" fn merge_pipeline_caches( + _device: crate::vk::Device, + _dst_cache: PipelineCache, + _src_cache_count: u32, + _p_src_caches: *const PipelineCache, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(merge_pipeline_caches) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkMergePipelineCaches\0"); + let val = _f(cname); + if val.is_null() { + merge_pipeline_caches + } else { + ::core::mem::transmute(val) + } + }, + create_graphics_pipelines: unsafe { + unsafe extern "system" fn create_graphics_pipelines( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const GraphicsPipelineCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_graphics_pipelines) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateGraphicsPipelines\0"); + let val = _f(cname); + if val.is_null() { + create_graphics_pipelines + } else { + ::core::mem::transmute(val) + } + }, + create_compute_pipelines: unsafe { + unsafe extern "system" fn create_compute_pipelines( + _device: crate::vk::Device, + _pipeline_cache: PipelineCache, + _create_info_count: u32, + _p_create_infos: *const ComputePipelineCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipelines: *mut Pipeline, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_compute_pipelines) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateComputePipelines\0"); + let val = _f(cname); + if val.is_null() { + create_compute_pipelines + } else { + ::core::mem::transmute(val) + } + }, + destroy_pipeline: unsafe { + unsafe extern "system" fn destroy_pipeline( + _device: crate::vk::Device, + _pipeline: Pipeline, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_pipeline))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipeline\0"); + let val = _f(cname); + if val.is_null() { + destroy_pipeline + } else { + ::core::mem::transmute(val) + } + }, + create_pipeline_layout: unsafe { + unsafe extern "system" fn create_pipeline_layout( + _device: crate::vk::Device, + _p_create_info: *const PipelineLayoutCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_pipeline_layout: *mut PipelineLayout, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_pipeline_layout) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreatePipelineLayout\0"); + let val = _f(cname); + if val.is_null() { + create_pipeline_layout + } else { + ::core::mem::transmute(val) + } + }, + destroy_pipeline_layout: unsafe { + unsafe extern "system" fn destroy_pipeline_layout( + _device: crate::vk::Device, + _pipeline_layout: PipelineLayout, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_pipeline_layout) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipelineLayout\0"); + let val = _f(cname); + if val.is_null() { + destroy_pipeline_layout + } else { + ::core::mem::transmute(val) + } + }, + create_sampler: unsafe { + unsafe extern "system" fn create_sampler( + _device: crate::vk::Device, + _p_create_info: *const SamplerCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_sampler: *mut Sampler, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_sampler))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSampler\0"); + let val = _f(cname); + if val.is_null() { + create_sampler + } else { + ::core::mem::transmute(val) + } + }, + destroy_sampler: unsafe { + unsafe extern "system" fn destroy_sampler( + _device: crate::vk::Device, + _sampler: Sampler, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_sampler))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySampler\0"); + let val = _f(cname); + if val.is_null() { + destroy_sampler + } else { + ::core::mem::transmute(val) + } + }, + create_descriptor_set_layout: unsafe { + unsafe extern "system" fn create_descriptor_set_layout( + _device: crate::vk::Device, + _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_set_layout: *mut DescriptorSetLayout, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_descriptor_set_layout) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateDescriptorSetLayout\0"); + let val = _f(cname); + if val.is_null() { + create_descriptor_set_layout + } else { + ::core::mem::transmute(val) + } + }, + destroy_descriptor_set_layout: unsafe { + unsafe extern "system" fn destroy_descriptor_set_layout( + _device: crate::vk::Device, + _descriptor_set_layout: DescriptorSetLayout, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_descriptor_set_layout) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyDescriptorSetLayout\0"); + let val = _f(cname); + if val.is_null() { + destroy_descriptor_set_layout + } else { + ::core::mem::transmute(val) + } + }, + create_descriptor_pool: unsafe { + unsafe extern "system" fn create_descriptor_pool( + _device: crate::vk::Device, + _p_create_info: *const DescriptorPoolCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_descriptor_pool: *mut DescriptorPool, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_descriptor_pool) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateDescriptorPool\0"); + let val = _f(cname); + if val.is_null() { + create_descriptor_pool + } else { + ::core::mem::transmute(val) + } + }, + destroy_descriptor_pool: unsafe { + unsafe extern "system" fn destroy_descriptor_pool( + _device: crate::vk::Device, + _descriptor_pool: DescriptorPool, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_descriptor_pool) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyDescriptorPool\0"); + let val = _f(cname); + if val.is_null() { + destroy_descriptor_pool + } else { + ::core::mem::transmute(val) + } + }, + reset_descriptor_pool: unsafe { + unsafe extern "system" fn reset_descriptor_pool( + _device: crate::vk::Device, + _descriptor_pool: DescriptorPool, + _flags: DescriptorPoolResetFlags, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(reset_descriptor_pool) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetDescriptorPool\0"); + let val = _f(cname); + if val.is_null() { + reset_descriptor_pool + } else { + ::core::mem::transmute(val) + } + }, + allocate_descriptor_sets: unsafe { + unsafe extern "system" fn allocate_descriptor_sets( + _device: crate::vk::Device, + _p_allocate_info: *const DescriptorSetAllocateInfo<'_>, + _p_descriptor_sets: *mut DescriptorSet, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(allocate_descriptor_sets) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkAllocateDescriptorSets\0"); + let val = _f(cname); + if val.is_null() { + allocate_descriptor_sets + } else { + ::core::mem::transmute(val) + } + }, + free_descriptor_sets: unsafe { + unsafe extern "system" fn free_descriptor_sets( + _device: crate::vk::Device, + _descriptor_pool: DescriptorPool, + _descriptor_set_count: u32, + _p_descriptor_sets: *const DescriptorSet, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(free_descriptor_sets))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkFreeDescriptorSets\0"); + let val = _f(cname); + if val.is_null() { + free_descriptor_sets + } else { + ::core::mem::transmute(val) + } + }, + update_descriptor_sets: unsafe { + unsafe extern "system" fn update_descriptor_sets( + _device: crate::vk::Device, + _descriptor_write_count: u32, + _p_descriptor_writes: *const WriteDescriptorSet<'_>, + _descriptor_copy_count: u32, + _p_descriptor_copies: *const CopyDescriptorSet<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(update_descriptor_sets) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkUpdateDescriptorSets\0"); + let val = _f(cname); + if val.is_null() { + update_descriptor_sets + } else { + ::core::mem::transmute(val) + } + }, + create_framebuffer: unsafe { + unsafe extern "system" fn create_framebuffer( + _device: crate::vk::Device, + _p_create_info: *const FramebufferCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_framebuffer: *mut Framebuffer, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_framebuffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateFramebuffer\0"); + let val = _f(cname); + if val.is_null() { + create_framebuffer + } else { + ::core::mem::transmute(val) + } + }, + destroy_framebuffer: unsafe { + unsafe extern "system" fn destroy_framebuffer( + _device: crate::vk::Device, + _framebuffer: Framebuffer, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_framebuffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyFramebuffer\0"); + let val = _f(cname); + if val.is_null() { + destroy_framebuffer + } else { + ::core::mem::transmute(val) + } + }, + create_render_pass: unsafe { + unsafe extern "system" fn create_render_pass( + _device: crate::vk::Device, + _p_create_info: *const RenderPassCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_render_pass: *mut RenderPass, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_render_pass))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass\0"); + let val = _f(cname); + if val.is_null() { + create_render_pass + } else { + ::core::mem::transmute(val) + } + }, + destroy_render_pass: unsafe { + unsafe extern "system" fn destroy_render_pass( + _device: crate::vk::Device, + _render_pass: RenderPass, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_render_pass))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyRenderPass\0"); + let val = _f(cname); + if val.is_null() { + destroy_render_pass + } else { + ::core::mem::transmute(val) + } + }, + get_render_area_granularity: unsafe { + unsafe extern "system" fn get_render_area_granularity( + _device: crate::vk::Device, + _render_pass: RenderPass, + _p_granularity: *mut Extent2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_render_area_granularity) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetRenderAreaGranularity\0"); + let val = _f(cname); + if val.is_null() { + get_render_area_granularity + } else { + ::core::mem::transmute(val) + } + }, + create_command_pool: unsafe { + unsafe extern "system" fn create_command_pool( + _device: crate::vk::Device, + _p_create_info: *const CommandPoolCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_command_pool: *mut CommandPool, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_command_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCommandPool\0"); + let val = _f(cname); + if val.is_null() { + create_command_pool + } else { + ::core::mem::transmute(val) + } + }, + destroy_command_pool: unsafe { + unsafe extern "system" fn destroy_command_pool( + _device: crate::vk::Device, + _command_pool: CommandPool, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(destroy_command_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCommandPool\0"); + let val = _f(cname); + if val.is_null() { + destroy_command_pool + } else { + ::core::mem::transmute(val) + } + }, + reset_command_pool: unsafe { + unsafe extern "system" fn reset_command_pool( + _device: crate::vk::Device, + _command_pool: CommandPool, + _flags: CommandPoolResetFlags, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(reset_command_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetCommandPool\0"); + let val = _f(cname); + if val.is_null() { + reset_command_pool + } else { + ::core::mem::transmute(val) + } + }, + allocate_command_buffers: unsafe { + unsafe extern "system" fn allocate_command_buffers( + _device: crate::vk::Device, + _p_allocate_info: *const CommandBufferAllocateInfo<'_>, + _p_command_buffers: *mut CommandBuffer, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(allocate_command_buffers) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkAllocateCommandBuffers\0"); + let val = _f(cname); + if val.is_null() { + allocate_command_buffers + } else { + ::core::mem::transmute(val) + } + }, + free_command_buffers: unsafe { + unsafe extern "system" fn free_command_buffers( + _device: crate::vk::Device, + _command_pool: CommandPool, + _command_buffer_count: u32, + _p_command_buffers: *const CommandBuffer, + ) { + panic!(concat!("Unable to load ", stringify!(free_command_buffers))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkFreeCommandBuffers\0"); + let val = _f(cname); + if val.is_null() { + free_command_buffers + } else { + ::core::mem::transmute(val) + } + }, + begin_command_buffer: unsafe { + unsafe extern "system" fn begin_command_buffer( + _command_buffer: CommandBuffer, + _p_begin_info: *const CommandBufferBeginInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(begin_command_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBeginCommandBuffer\0"); + let val = _f(cname); + if val.is_null() { + begin_command_buffer + } else { + ::core::mem::transmute(val) + } + }, + end_command_buffer: unsafe { + unsafe extern "system" fn end_command_buffer( + _command_buffer: CommandBuffer, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(end_command_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkEndCommandBuffer\0"); + let val = _f(cname); + if val.is_null() { + end_command_buffer + } else { + ::core::mem::transmute(val) + } + }, + reset_command_buffer: unsafe { + unsafe extern "system" fn reset_command_buffer( + _command_buffer: CommandBuffer, + _flags: CommandBufferResetFlags, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(reset_command_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetCommandBuffer\0"); + let val = _f(cname); + if val.is_null() { + reset_command_buffer + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_pipeline: unsafe { + unsafe extern "system" fn cmd_bind_pipeline( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _pipeline: Pipeline, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_bind_pipeline))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindPipeline\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_pipeline + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport: unsafe { + unsafe extern "system" fn cmd_set_viewport( + _command_buffer: CommandBuffer, + _first_viewport: u32, + _viewport_count: u32, + _p_viewports: *const Viewport, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_viewport))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewport\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_scissor: unsafe { + unsafe extern "system" fn cmd_set_scissor( + _command_buffer: CommandBuffer, + _first_scissor: u32, + _scissor_count: u32, + _p_scissors: *const Rect2D, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_scissor))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissor\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_scissor + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_line_width: unsafe { + unsafe extern "system" fn cmd_set_line_width( + _command_buffer: CommandBuffer, + _line_width: f32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_line_width))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineWidth\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_line_width + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bias: unsafe { + unsafe extern "system" fn cmd_set_depth_bias( + _command_buffer: CommandBuffer, + _depth_bias_constant_factor: f32, + _depth_bias_clamp: f32, + _depth_bias_slope_factor: f32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_depth_bias))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBias\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bias + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_blend_constants: unsafe { + unsafe extern "system" fn cmd_set_blend_constants( + _command_buffer: CommandBuffer, + _blend_constants: *const [f32; 4usize], + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_blend_constants) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetBlendConstants\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_blend_constants + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bounds: unsafe { + unsafe extern "system" fn cmd_set_depth_bounds( + _command_buffer: CommandBuffer, + _min_depth_bounds: f32, + _max_depth_bounds: f32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_depth_bounds))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBounds\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bounds + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_compare_mask: unsafe { + unsafe extern "system" fn cmd_set_stencil_compare_mask( + _command_buffer: CommandBuffer, + _face_mask: StencilFaceFlags, + _compare_mask: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_compare_mask) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilCompareMask\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_compare_mask + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_write_mask: unsafe { + unsafe extern "system" fn cmd_set_stencil_write_mask( + _command_buffer: CommandBuffer, + _face_mask: StencilFaceFlags, + _write_mask: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_write_mask) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilWriteMask\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_write_mask + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_reference: unsafe { + unsafe extern "system" fn cmd_set_stencil_reference( + _command_buffer: CommandBuffer, + _face_mask: StencilFaceFlags, + _reference: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_reference) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilReference\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_reference + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_descriptor_sets: unsafe { + unsafe extern "system" fn cmd_bind_descriptor_sets( + _command_buffer: CommandBuffer, + _pipeline_bind_point: PipelineBindPoint, + _layout: PipelineLayout, + _first_set: u32, + _descriptor_set_count: u32, + _p_descriptor_sets: *const DescriptorSet, + _dynamic_offset_count: u32, + _p_dynamic_offsets: *const u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_descriptor_sets) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorSets\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_descriptor_sets + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_index_buffer: unsafe { + unsafe extern "system" fn cmd_bind_index_buffer( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _index_type: IndexType, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_index_buffer) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindIndexBuffer\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_index_buffer + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_vertex_buffers: unsafe { + unsafe extern "system" fn cmd_bind_vertex_buffers( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _p_buffers: *const Buffer, + _p_offsets: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_vertex_buffers) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_vertex_buffers + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw: unsafe { + unsafe extern "system" fn cmd_draw( + _command_buffer: CommandBuffer, + _vertex_count: u32, + _instance_count: u32, + _first_vertex: u32, + _first_instance: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_draw))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDraw\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indexed: unsafe { + unsafe extern "system" fn cmd_draw_indexed( + _command_buffer: CommandBuffer, + _index_count: u32, + _instance_count: u32, + _first_index: u32, + _vertex_offset: i32, + _first_instance: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_draw_indexed))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexed\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indexed + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indirect: unsafe { + unsafe extern "system" fn cmd_draw_indirect( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _draw_count: u32, + _stride: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_draw_indirect))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirect\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indirect + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indexed_indirect: unsafe { + unsafe extern "system" fn cmd_draw_indexed_indirect( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indexed_indirect) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexedIndirect\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indexed_indirect + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch: unsafe { + unsafe extern "system" fn cmd_dispatch( + _command_buffer: CommandBuffer, + _group_count_x: u32, + _group_count_y: u32, + _group_count_z: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_dispatch))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatch\0"); + let val = _f(cname); + if val.is_null() { + cmd_dispatch + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_indirect: unsafe { + unsafe extern "system" fn cmd_dispatch_indirect( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_dispatch_indirect) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchIndirect\0"); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_indirect + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_buffer: unsafe { + unsafe extern "system" fn cmd_copy_buffer( + _command_buffer: CommandBuffer, + _src_buffer: Buffer, + _dst_buffer: Buffer, + _region_count: u32, + _p_regions: *const BufferCopy, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_buffer + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_image: unsafe { + unsafe extern "system" fn cmd_copy_image( + _command_buffer: CommandBuffer, + _src_image: Image, + _src_image_layout: ImageLayout, + _dst_image: Image, + _dst_image_layout: ImageLayout, + _region_count: u32, + _p_regions: *const ImageCopy, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_copy_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_image + } else { + ::core::mem::transmute(val) + } + }, + cmd_blit_image: unsafe { + unsafe extern "system" fn cmd_blit_image( + _command_buffer: CommandBuffer, + _src_image: Image, + _src_image_layout: ImageLayout, + _dst_image: Image, + _dst_image_layout: ImageLayout, + _region_count: u32, + _p_regions: *const ImageBlit, + _filter: Filter, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_blit_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage\0"); + let val = _f(cname); + if val.is_null() { + cmd_blit_image + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_buffer_to_image: unsafe { + unsafe extern "system" fn cmd_copy_buffer_to_image( + _command_buffer: CommandBuffer, + _src_buffer: Buffer, + _dst_image: Image, + _dst_image_layout: ImageLayout, + _region_count: u32, + _p_regions: *const BufferImageCopy, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_buffer_to_image) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBufferToImage\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_buffer_to_image + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_image_to_buffer: unsafe { + unsafe extern "system" fn cmd_copy_image_to_buffer( + _command_buffer: CommandBuffer, + _src_image: Image, + _src_image_layout: ImageLayout, + _dst_buffer: Buffer, + _region_count: u32, + _p_regions: *const BufferImageCopy, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_image_to_buffer) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImageToBuffer\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_image_to_buffer + } else { + ::core::mem::transmute(val) + } + }, + cmd_update_buffer: unsafe { + unsafe extern "system" fn cmd_update_buffer( + _command_buffer: CommandBuffer, + _dst_buffer: Buffer, + _dst_offset: DeviceSize, + _data_size: DeviceSize, + _p_data: *const c_void, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_update_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdUpdateBuffer\0"); + let val = _f(cname); + if val.is_null() { + cmd_update_buffer + } else { + ::core::mem::transmute(val) + } + }, + cmd_fill_buffer: unsafe { + unsafe extern "system" fn cmd_fill_buffer( + _command_buffer: CommandBuffer, + _dst_buffer: Buffer, + _dst_offset: DeviceSize, + _size: DeviceSize, + _data: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_fill_buffer))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdFillBuffer\0"); + let val = _f(cname); + if val.is_null() { + cmd_fill_buffer + } else { + ::core::mem::transmute(val) + } + }, + cmd_clear_color_image: unsafe { + unsafe extern "system" fn cmd_clear_color_image( + _command_buffer: CommandBuffer, + _image: Image, + _image_layout: ImageLayout, + _p_color: *const ClearColorValue, + _range_count: u32, + _p_ranges: *const ImageSubresourceRange, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_clear_color_image) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdClearColorImage\0"); + let val = _f(cname); + if val.is_null() { + cmd_clear_color_image + } else { + ::core::mem::transmute(val) + } + }, + cmd_clear_depth_stencil_image: unsafe { + unsafe extern "system" fn cmd_clear_depth_stencil_image( + _command_buffer: CommandBuffer, + _image: Image, + _image_layout: ImageLayout, + _p_depth_stencil: *const ClearDepthStencilValue, + _range_count: u32, + _p_ranges: *const ImageSubresourceRange, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_clear_depth_stencil_image) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdClearDepthStencilImage\0"); + let val = _f(cname); + if val.is_null() { + cmd_clear_depth_stencil_image + } else { + ::core::mem::transmute(val) + } + }, + cmd_clear_attachments: unsafe { + unsafe extern "system" fn cmd_clear_attachments( + _command_buffer: CommandBuffer, + _attachment_count: u32, + _p_attachments: *const ClearAttachment, + _rect_count: u32, + _p_rects: *const ClearRect, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_clear_attachments) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdClearAttachments\0"); + let val = _f(cname); + if val.is_null() { + cmd_clear_attachments + } else { + ::core::mem::transmute(val) + } + }, + cmd_resolve_image: unsafe { + unsafe extern "system" fn cmd_resolve_image( + _command_buffer: CommandBuffer, + _src_image: Image, + _src_image_layout: ImageLayout, + _dst_image: Image, + _dst_image_layout: ImageLayout, + _region_count: u32, + _p_regions: *const ImageResolve, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_resolve_image))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage\0"); + let val = _f(cname); + if val.is_null() { + cmd_resolve_image + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_event: unsafe { + unsafe extern "system" fn cmd_set_event( + _command_buffer: CommandBuffer, + _event: Event, + _stage_mask: PipelineStageFlags, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_event))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_event + } else { + ::core::mem::transmute(val) + } + }, + cmd_reset_event: unsafe { + unsafe extern "system" fn cmd_reset_event( + _command_buffer: CommandBuffer, + _event: Event, + _stage_mask: PipelineStageFlags, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_reset_event))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent\0"); + let val = _f(cname); + if val.is_null() { + cmd_reset_event + } else { + ::core::mem::transmute(val) + } + }, + cmd_wait_events: unsafe { + unsafe extern "system" fn cmd_wait_events( + _command_buffer: CommandBuffer, + _event_count: u32, + _p_events: *const Event, + _src_stage_mask: PipelineStageFlags, + _dst_stage_mask: PipelineStageFlags, + _memory_barrier_count: u32, + _p_memory_barriers: *const MemoryBarrier<'_>, + _buffer_memory_barrier_count: u32, + _p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>, + _image_memory_barrier_count: u32, + _p_image_memory_barriers: *const ImageMemoryBarrier<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_wait_events))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents\0"); + let val = _f(cname); + if val.is_null() { + cmd_wait_events + } else { + ::core::mem::transmute(val) + } + }, + cmd_pipeline_barrier: unsafe { + unsafe extern "system" fn cmd_pipeline_barrier( + _command_buffer: CommandBuffer, + _src_stage_mask: PipelineStageFlags, + _dst_stage_mask: PipelineStageFlags, + _dependency_flags: DependencyFlags, + _memory_barrier_count: u32, + _p_memory_barriers: *const MemoryBarrier<'_>, + _buffer_memory_barrier_count: u32, + _p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>, + _image_memory_barrier_count: u32, + _p_image_memory_barriers: *const ImageMemoryBarrier<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_pipeline_barrier))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier\0"); + let val = _f(cname); + if val.is_null() { + cmd_pipeline_barrier + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_query: unsafe { + unsafe extern "system" fn cmd_begin_query( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _query: u32, + _flags: QueryControlFlags, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_begin_query))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQuery\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_query + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_query: unsafe { + unsafe extern "system" fn cmd_end_query( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _query: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_end_query))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQuery\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_query + } else { + ::core::mem::transmute(val) + } + }, + cmd_reset_query_pool: unsafe { + unsafe extern "system" fn cmd_reset_query_pool( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_reset_query_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetQueryPool\0"); + let val = _f(cname); + if val.is_null() { + cmd_reset_query_pool + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_timestamp: unsafe { + unsafe extern "system" fn cmd_write_timestamp( + _command_buffer: CommandBuffer, + _pipeline_stage: PipelineStageFlags, + _query_pool: QueryPool, + _query: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_write_timestamp))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp\0"); + let val = _f(cname); + if val.is_null() { + cmd_write_timestamp + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_query_pool_results: unsafe { + unsafe extern "system" fn cmd_copy_query_pool_results( + _command_buffer: CommandBuffer, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + _dst_buffer: Buffer, + _dst_offset: DeviceSize, + _stride: DeviceSize, + _flags: QueryResultFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_query_pool_results) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyQueryPoolResults\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_query_pool_results + } else { + ::core::mem::transmute(val) + } + }, + cmd_push_constants: unsafe { + unsafe extern "system" fn cmd_push_constants( + _command_buffer: CommandBuffer, + _layout: PipelineLayout, + _stage_flags: ShaderStageFlags, + _offset: u32, + _size: u32, + _p_values: *const c_void, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_push_constants))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPushConstants\0"); + let val = _f(cname); + if val.is_null() { + cmd_push_constants + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_render_pass: unsafe { + unsafe extern "system" fn cmd_begin_render_pass( + _command_buffer: CommandBuffer, + _p_render_pass_begin: *const RenderPassBeginInfo<'_>, + _contents: SubpassContents, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_render_pass) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_render_pass + } else { + ::core::mem::transmute(val) + } + }, + cmd_next_subpass: unsafe { + unsafe extern "system" fn cmd_next_subpass( + _command_buffer: CommandBuffer, + _contents: SubpassContents, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_next_subpass))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass\0"); + let val = _f(cname); + if val.is_null() { + cmd_next_subpass + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_render_pass: unsafe { + unsafe extern "system" fn cmd_end_render_pass(_command_buffer: CommandBuffer) { + panic!(concat!("Unable to load ", stringify!(cmd_end_render_pass))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_render_pass + } else { + ::core::mem::transmute(val) + } + }, + cmd_execute_commands: unsafe { + unsafe extern "system" fn cmd_execute_commands( + _command_buffer: CommandBuffer, + _command_buffer_count: u32, + _p_command_buffers: *const CommandBuffer, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_execute_commands))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdExecuteCommands\0"); + let val = _f(cname); + if val.is_null() { + cmd_execute_commands + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1.1 entry point function pointers"] +pub struct EntryFnV1_1 { + pub enumerate_instance_version: PFN_vkEnumerateInstanceVersion, +} +unsafe impl Send for EntryFnV1_1 {} +unsafe impl Sync for EntryFnV1_1 {} +impl EntryFnV1_1 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + enumerate_instance_version: unsafe { + unsafe extern "system" fn enumerate_instance_version( + _p_api_version: *mut u32, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_instance_version) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkEnumerateInstanceVersion\0"); + let val = _f(cname); + if val.is_null() { + enumerate_instance_version + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1.1 instance-level function pointers"] +pub struct InstanceFnV1_1 { + pub enumerate_physical_device_groups: PFN_vkEnumeratePhysicalDeviceGroups, + pub get_physical_device_features2: PFN_vkGetPhysicalDeviceFeatures2, + pub get_physical_device_properties2: PFN_vkGetPhysicalDeviceProperties2, + pub get_physical_device_format_properties2: PFN_vkGetPhysicalDeviceFormatProperties2, + pub get_physical_device_image_format_properties2: PFN_vkGetPhysicalDeviceImageFormatProperties2, + pub get_physical_device_queue_family_properties2: PFN_vkGetPhysicalDeviceQueueFamilyProperties2, + pub get_physical_device_memory_properties2: PFN_vkGetPhysicalDeviceMemoryProperties2, + pub get_physical_device_sparse_image_format_properties2: + PFN_vkGetPhysicalDeviceSparseImageFormatProperties2, + pub get_physical_device_external_buffer_properties: + PFN_vkGetPhysicalDeviceExternalBufferProperties, + pub get_physical_device_external_fence_properties: + PFN_vkGetPhysicalDeviceExternalFenceProperties, + pub get_physical_device_external_semaphore_properties: + PFN_vkGetPhysicalDeviceExternalSemaphoreProperties, +} +unsafe impl Send for InstanceFnV1_1 {} +unsafe impl Sync for InstanceFnV1_1 {} +impl InstanceFnV1_1 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + enumerate_physical_device_groups: unsafe { + unsafe extern "system" fn enumerate_physical_device_groups( + _instance: crate::vk::Instance, + _p_physical_device_group_count: *mut u32, + _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(enumerate_physical_device_groups) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkEnumeratePhysicalDeviceGroups\0"); + let val = _f(cname); + if val.is_null() { + enumerate_physical_device_groups + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_features2: unsafe { + unsafe extern "system" fn get_physical_device_features2( + _physical_device: PhysicalDevice, + _p_features: *mut PhysicalDeviceFeatures2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_features2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFeatures2\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_features2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_properties2: unsafe { + unsafe extern "system" fn get_physical_device_properties2( + _physical_device: PhysicalDevice, + _p_properties: *mut PhysicalDeviceProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_properties2) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceProperties2\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_properties2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_format_properties2: unsafe { + unsafe extern "system" fn get_physical_device_format_properties2( + _physical_device: PhysicalDevice, + _format: Format, + _p_format_properties: *mut FormatProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_format_properties2) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFormatProperties2\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_format_properties2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_image_format_properties2: unsafe { + unsafe extern "system" fn get_physical_device_image_format_properties2( + _physical_device: PhysicalDevice, + _p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>, + _p_image_format_properties: *mut ImageFormatProperties2<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_image_format_properties2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceImageFormatProperties2\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_image_format_properties2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_queue_family_properties2: unsafe { + unsafe extern "system" fn get_physical_device_queue_family_properties2( + _physical_device: PhysicalDevice, + _p_queue_family_property_count: *mut u32, + _p_queue_family_properties: *mut QueueFamilyProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_queue_family_properties2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceQueueFamilyProperties2\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_queue_family_properties2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_memory_properties2: unsafe { + unsafe extern "system" fn get_physical_device_memory_properties2( + _physical_device: PhysicalDevice, + _p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_memory_properties2) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceMemoryProperties2\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_memory_properties2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_sparse_image_format_properties2: unsafe { + unsafe extern "system" fn get_physical_device_sparse_image_format_properties2( + _physical_device: PhysicalDevice, + _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>, + _p_property_count: *mut u32, + _p_properties: *mut SparseImageFormatProperties2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_sparse_image_format_properties2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceSparseImageFormatProperties2\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_sparse_image_format_properties2 + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_external_buffer_properties: unsafe { + unsafe extern "system" fn get_physical_device_external_buffer_properties( + _physical_device: PhysicalDevice, + _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo<'_>, + _p_external_buffer_properties: *mut ExternalBufferProperties<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_buffer_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalBufferProperties\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_buffer_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_external_fence_properties: unsafe { + unsafe extern "system" fn get_physical_device_external_fence_properties( + _physical_device: PhysicalDevice, + _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo<'_>, + _p_external_fence_properties: *mut ExternalFenceProperties<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_fence_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalFenceProperties\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_fence_properties + } else { + ::core::mem::transmute(val) + } + }, + get_physical_device_external_semaphore_properties: unsafe { + unsafe extern "system" fn get_physical_device_external_semaphore_properties( + _physical_device: PhysicalDevice, + _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo<'_>, + _p_external_semaphore_properties: *mut ExternalSemaphoreProperties<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_external_semaphore_properties) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetPhysicalDeviceExternalSemaphoreProperties\0", + ); + let val = _f(cname); + if val.is_null() { + get_physical_device_external_semaphore_properties + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1.1 device-level function pointers"] +pub struct DeviceFnV1_1 { + pub bind_buffer_memory2: PFN_vkBindBufferMemory2, + pub bind_image_memory2: PFN_vkBindImageMemory2, + pub get_device_group_peer_memory_features: PFN_vkGetDeviceGroupPeerMemoryFeatures, + pub cmd_set_device_mask: PFN_vkCmdSetDeviceMask, + pub cmd_dispatch_base: PFN_vkCmdDispatchBase, + pub get_image_memory_requirements2: PFN_vkGetImageMemoryRequirements2, + pub get_buffer_memory_requirements2: PFN_vkGetBufferMemoryRequirements2, + pub get_image_sparse_memory_requirements2: PFN_vkGetImageSparseMemoryRequirements2, + pub trim_command_pool: PFN_vkTrimCommandPool, + pub get_device_queue2: PFN_vkGetDeviceQueue2, + pub create_sampler_ycbcr_conversion: PFN_vkCreateSamplerYcbcrConversion, + pub destroy_sampler_ycbcr_conversion: PFN_vkDestroySamplerYcbcrConversion, + pub create_descriptor_update_template: PFN_vkCreateDescriptorUpdateTemplate, + pub destroy_descriptor_update_template: PFN_vkDestroyDescriptorUpdateTemplate, + pub update_descriptor_set_with_template: PFN_vkUpdateDescriptorSetWithTemplate, + pub get_descriptor_set_layout_support: PFN_vkGetDescriptorSetLayoutSupport, +} +unsafe impl Send for DeviceFnV1_1 {} +unsafe impl Sync for DeviceFnV1_1 {} +impl DeviceFnV1_1 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + bind_buffer_memory2: unsafe { + unsafe extern "system" fn bind_buffer_memory2( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindBufferMemoryInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(bind_buffer_memory2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2\0"); + let val = _f(cname); + if val.is_null() { + bind_buffer_memory2 + } else { + ::core::mem::transmute(val) + } + }, + bind_image_memory2: unsafe { + unsafe extern "system" fn bind_image_memory2( + _device: crate::vk::Device, + _bind_info_count: u32, + _p_bind_infos: *const BindImageMemoryInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(bind_image_memory2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2\0"); + let val = _f(cname); + if val.is_null() { + bind_image_memory2 + } else { + ::core::mem::transmute(val) + } + }, + get_device_group_peer_memory_features: unsafe { + unsafe extern "system" fn get_device_group_peer_memory_features( + _device: crate::vk::Device, + _heap_index: u32, + _local_device_index: u32, + _remote_device_index: u32, + _p_peer_memory_features: *mut PeerMemoryFeatureFlags, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_group_peer_memory_features) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceGroupPeerMemoryFeatures\0"); + let val = _f(cname); + if val.is_null() { + get_device_group_peer_memory_features + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_device_mask: unsafe { + unsafe extern "system" fn cmd_set_device_mask( + _command_buffer: CommandBuffer, + _device_mask: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_device_mask))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMask\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_device_mask + } else { + ::core::mem::transmute(val) + } + }, + cmd_dispatch_base: unsafe { + unsafe extern "system" fn cmd_dispatch_base( + _command_buffer: CommandBuffer, + _base_group_x: u32, + _base_group_y: u32, + _base_group_z: u32, + _group_count_x: u32, + _group_count_y: u32, + _group_count_z: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_dispatch_base))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBase\0"); + let val = _f(cname); + if val.is_null() { + cmd_dispatch_base + } else { + ::core::mem::transmute(val) + } + }, + get_image_memory_requirements2: unsafe { + unsafe extern "system" fn get_image_memory_requirements2( + _device: crate::vk::Device, + _p_info: *const ImageMemoryRequirementsInfo2<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_memory_requirements2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageMemoryRequirements2\0"); + let val = _f(cname); + if val.is_null() { + get_image_memory_requirements2 + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_memory_requirements2: unsafe { + unsafe extern "system" fn get_buffer_memory_requirements2( + _device: crate::vk::Device, + _p_info: *const BufferMemoryRequirementsInfo2<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_memory_requirements2) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetBufferMemoryRequirements2\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_memory_requirements2 + } else { + ::core::mem::transmute(val) + } + }, + get_image_sparse_memory_requirements2: unsafe { + unsafe extern "system" fn get_image_sparse_memory_requirements2( + _device: crate::vk::Device, + _p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, + _p_sparse_memory_requirement_count: *mut u32, + _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_image_sparse_memory_requirements2) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetImageSparseMemoryRequirements2\0"); + let val = _f(cname); + if val.is_null() { + get_image_sparse_memory_requirements2 + } else { + ::core::mem::transmute(val) + } + }, + trim_command_pool: unsafe { + unsafe extern "system" fn trim_command_pool( + _device: crate::vk::Device, + _command_pool: CommandPool, + _flags: CommandPoolTrimFlags, + ) { + panic!(concat!("Unable to load ", stringify!(trim_command_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPool\0"); + let val = _f(cname); + if val.is_null() { + trim_command_pool + } else { + ::core::mem::transmute(val) + } + }, + get_device_queue2: unsafe { + unsafe extern "system" fn get_device_queue2( + _device: crate::vk::Device, + _p_queue_info: *const DeviceQueueInfo2<'_>, + _p_queue: *mut Queue, + ) { + panic!(concat!("Unable to load ", stringify!(get_device_queue2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceQueue2\0"); + let val = _f(cname); + if val.is_null() { + get_device_queue2 + } else { + ::core::mem::transmute(val) + } + }, + create_sampler_ycbcr_conversion: unsafe { + unsafe extern "system" fn create_sampler_ycbcr_conversion( + _device: crate::vk::Device, + _p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_ycbcr_conversion: *mut SamplerYcbcrConversion, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_sampler_ycbcr_conversion) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateSamplerYcbcrConversion\0"); + let val = _f(cname); + if val.is_null() { + create_sampler_ycbcr_conversion + } else { + ::core::mem::transmute(val) + } + }, + destroy_sampler_ycbcr_conversion: unsafe { + unsafe extern "system" fn destroy_sampler_ycbcr_conversion( + _device: crate::vk::Device, + _ycbcr_conversion: SamplerYcbcrConversion, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_sampler_ycbcr_conversion) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroySamplerYcbcrConversion\0"); + let val = _f(cname); + if val.is_null() { + destroy_sampler_ycbcr_conversion + } else { + ::core::mem::transmute(val) + } + }, + create_descriptor_update_template: unsafe { + unsafe extern "system" fn create_descriptor_update_template( + _device: crate::vk::Device, + _p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_descriptor_update_template: *mut DescriptorUpdateTemplate, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_descriptor_update_template) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCreateDescriptorUpdateTemplate\0"); + let val = _f(cname); + if val.is_null() { + create_descriptor_update_template + } else { + ::core::mem::transmute(val) + } + }, + destroy_descriptor_update_template: unsafe { + unsafe extern "system" fn destroy_descriptor_update_template( + _device: crate::vk::Device, + _descriptor_update_template: DescriptorUpdateTemplate, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_descriptor_update_template) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkDestroyDescriptorUpdateTemplate\0"); + let val = _f(cname); + if val.is_null() { + destroy_descriptor_update_template + } else { + ::core::mem::transmute(val) + } + }, + update_descriptor_set_with_template: unsafe { + unsafe extern "system" fn update_descriptor_set_with_template( + _device: crate::vk::Device, + _descriptor_set: DescriptorSet, + _descriptor_update_template: DescriptorUpdateTemplate, + _p_data: *const c_void, + ) { + panic!(concat!( + "Unable to load ", + stringify!(update_descriptor_set_with_template) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkUpdateDescriptorSetWithTemplate\0"); + let val = _f(cname); + if val.is_null() { + update_descriptor_set_with_template + } else { + ::core::mem::transmute(val) + } + }, + get_descriptor_set_layout_support: unsafe { + unsafe extern "system" fn get_descriptor_set_layout_support( + _device: crate::vk::Device, + _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, + _p_support: *mut DescriptorSetLayoutSupport<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_descriptor_set_layout_support) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDescriptorSetLayoutSupport\0"); + let val = _f(cname); + if val.is_null() { + get_descriptor_set_layout_support + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1.2 entry point function pointers"] +pub struct EntryFnV1_2; +#[derive(Clone)] +#[doc = "Raw Vulkan 1.2 instance-level function pointers"] +pub struct InstanceFnV1_2; +#[derive(Clone)] +#[doc = "Raw Vulkan 1.2 device-level function pointers"] +pub struct DeviceFnV1_2 { + pub cmd_draw_indirect_count: PFN_vkCmdDrawIndirectCount, + pub cmd_draw_indexed_indirect_count: PFN_vkCmdDrawIndexedIndirectCount, + pub create_render_pass2: PFN_vkCreateRenderPass2, + pub cmd_begin_render_pass2: PFN_vkCmdBeginRenderPass2, + pub cmd_next_subpass2: PFN_vkCmdNextSubpass2, + pub cmd_end_render_pass2: PFN_vkCmdEndRenderPass2, + pub reset_query_pool: PFN_vkResetQueryPool, + pub get_semaphore_counter_value: PFN_vkGetSemaphoreCounterValue, + pub wait_semaphores: PFN_vkWaitSemaphores, + pub signal_semaphore: PFN_vkSignalSemaphore, + pub get_buffer_device_address: PFN_vkGetBufferDeviceAddress, + pub get_buffer_opaque_capture_address: PFN_vkGetBufferOpaqueCaptureAddress, + pub get_device_memory_opaque_capture_address: PFN_vkGetDeviceMemoryOpaqueCaptureAddress, +} +unsafe impl Send for DeviceFnV1_2 {} +unsafe impl Sync for DeviceFnV1_2 {} +impl DeviceFnV1_2 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + cmd_draw_indirect_count: unsafe { + unsafe extern "system" fn cmd_draw_indirect_count( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indirect_count) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCount\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indirect_count + } else { + ::core::mem::transmute(val) + } + }, + cmd_draw_indexed_indirect_count: unsafe { + unsafe extern "system" fn cmd_draw_indexed_indirect_count( + _command_buffer: CommandBuffer, + _buffer: Buffer, + _offset: DeviceSize, + _count_buffer: Buffer, + _count_buffer_offset: DeviceSize, + _max_draw_count: u32, + _stride: u32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_draw_indexed_indirect_count) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexedIndirectCount\0"); + let val = _f(cname); + if val.is_null() { + cmd_draw_indexed_indirect_count + } else { + ::core::mem::transmute(val) + } + }, + create_render_pass2: unsafe { + unsafe extern "system" fn create_render_pass2( + _device: crate::vk::Device, + _p_create_info: *const RenderPassCreateInfo2<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_render_pass: *mut RenderPass, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(create_render_pass2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2\0"); + let val = _f(cname); + if val.is_null() { + create_render_pass2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_render_pass2: unsafe { + unsafe extern "system" fn cmd_begin_render_pass2( + _command_buffer: CommandBuffer, + _p_render_pass_begin: *const RenderPassBeginInfo<'_>, + _p_subpass_begin_info: *const SubpassBeginInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_begin_render_pass2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_render_pass2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_next_subpass2: unsafe { + unsafe extern "system" fn cmd_next_subpass2( + _command_buffer: CommandBuffer, + _p_subpass_begin_info: *const SubpassBeginInfo<'_>, + _p_subpass_end_info: *const SubpassEndInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_next_subpass2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2\0"); + let val = _f(cname); + if val.is_null() { + cmd_next_subpass2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_render_pass2: unsafe { + unsafe extern "system" fn cmd_end_render_pass2( + _command_buffer: CommandBuffer, + _p_subpass_end_info: *const SubpassEndInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_end_render_pass2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_render_pass2 + } else { + ::core::mem::transmute(val) + } + }, + reset_query_pool: unsafe { + unsafe extern "system" fn reset_query_pool( + _device: crate::vk::Device, + _query_pool: QueryPool, + _first_query: u32, + _query_count: u32, + ) { + panic!(concat!("Unable to load ", stringify!(reset_query_pool))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPool\0"); + let val = _f(cname); + if val.is_null() { + reset_query_pool + } else { + ::core::mem::transmute(val) + } + }, + get_semaphore_counter_value: unsafe { + unsafe extern "system" fn get_semaphore_counter_value( + _device: crate::vk::Device, + _semaphore: Semaphore, + _p_value: *mut u64, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_semaphore_counter_value) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreCounterValue\0"); + let val = _f(cname); + if val.is_null() { + get_semaphore_counter_value + } else { + ::core::mem::transmute(val) + } + }, + wait_semaphores: unsafe { + unsafe extern "system" fn wait_semaphores( + _device: crate::vk::Device, + _p_wait_info: *const SemaphoreWaitInfo<'_>, + _timeout: u64, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(wait_semaphores))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphores\0"); + let val = _f(cname); + if val.is_null() { + wait_semaphores + } else { + ::core::mem::transmute(val) + } + }, + signal_semaphore: unsafe { + unsafe extern "system" fn signal_semaphore( + _device: crate::vk::Device, + _p_signal_info: *const SemaphoreSignalInfo<'_>, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(signal_semaphore))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphore\0"); + let val = _f(cname); + if val.is_null() { + signal_semaphore + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_device_address: unsafe { + unsafe extern "system" fn get_buffer_device_address( + _device: crate::vk::Device, + _p_info: *const BufferDeviceAddressInfo<'_>, + ) -> DeviceAddress { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_device_address) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddress\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_device_address + } else { + ::core::mem::transmute(val) + } + }, + get_buffer_opaque_capture_address: unsafe { + unsafe extern "system" fn get_buffer_opaque_capture_address( + _device: crate::vk::Device, + _p_info: *const BufferDeviceAddressInfo<'_>, + ) -> u64 { + panic!(concat!( + "Unable to load ", + stringify!(get_buffer_opaque_capture_address) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetBufferOpaqueCaptureAddress\0"); + let val = _f(cname); + if val.is_null() { + get_buffer_opaque_capture_address + } else { + ::core::mem::transmute(val) + } + }, + get_device_memory_opaque_capture_address: unsafe { + unsafe extern "system" fn get_device_memory_opaque_capture_address( + _device: crate::vk::Device, + _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, + ) -> u64 { + panic!(concat!( + "Unable to load ", + stringify!(get_device_memory_opaque_capture_address) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceMemoryOpaqueCaptureAddress\0"); + let val = _f(cname); + if val.is_null() { + get_device_memory_opaque_capture_address + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1.3 entry point function pointers"] +pub struct EntryFnV1_3; +#[derive(Clone)] +#[doc = "Raw Vulkan 1.3 instance-level function pointers"] +pub struct InstanceFnV1_3 { + pub get_physical_device_tool_properties: PFN_vkGetPhysicalDeviceToolProperties, +} +unsafe impl Send for InstanceFnV1_3 {} +unsafe impl Sync for InstanceFnV1_3 {} +impl InstanceFnV1_3 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + get_physical_device_tool_properties: unsafe { + unsafe extern "system" fn get_physical_device_tool_properties( + _physical_device: PhysicalDevice, + _p_tool_count: *mut u32, + _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(get_physical_device_tool_properties) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceToolProperties\0"); + let val = _f(cname); + if val.is_null() { + get_physical_device_tool_properties + } else { + ::core::mem::transmute(val) + } + }, + } + } +} +#[derive(Clone)] +#[doc = "Raw Vulkan 1.3 device-level function pointers"] +pub struct DeviceFnV1_3 { + pub create_private_data_slot: PFN_vkCreatePrivateDataSlot, + pub destroy_private_data_slot: PFN_vkDestroyPrivateDataSlot, + pub set_private_data: PFN_vkSetPrivateData, + pub get_private_data: PFN_vkGetPrivateData, + pub cmd_set_event2: PFN_vkCmdSetEvent2, + pub cmd_reset_event2: PFN_vkCmdResetEvent2, + pub cmd_wait_events2: PFN_vkCmdWaitEvents2, + pub cmd_pipeline_barrier2: PFN_vkCmdPipelineBarrier2, + pub cmd_write_timestamp2: PFN_vkCmdWriteTimestamp2, + pub queue_submit2: PFN_vkQueueSubmit2, + pub cmd_copy_buffer2: PFN_vkCmdCopyBuffer2, + pub cmd_copy_image2: PFN_vkCmdCopyImage2, + pub cmd_copy_buffer_to_image2: PFN_vkCmdCopyBufferToImage2, + pub cmd_copy_image_to_buffer2: PFN_vkCmdCopyImageToBuffer2, + pub cmd_blit_image2: PFN_vkCmdBlitImage2, + pub cmd_resolve_image2: PFN_vkCmdResolveImage2, + pub cmd_begin_rendering: PFN_vkCmdBeginRendering, + pub cmd_end_rendering: PFN_vkCmdEndRendering, + pub cmd_set_cull_mode: PFN_vkCmdSetCullMode, + pub cmd_set_front_face: PFN_vkCmdSetFrontFace, + pub cmd_set_primitive_topology: PFN_vkCmdSetPrimitiveTopology, + pub cmd_set_viewport_with_count: PFN_vkCmdSetViewportWithCount, + pub cmd_set_scissor_with_count: PFN_vkCmdSetScissorWithCount, + pub cmd_bind_vertex_buffers2: PFN_vkCmdBindVertexBuffers2, + pub cmd_set_depth_test_enable: PFN_vkCmdSetDepthTestEnable, + pub cmd_set_depth_write_enable: PFN_vkCmdSetDepthWriteEnable, + pub cmd_set_depth_compare_op: PFN_vkCmdSetDepthCompareOp, + pub cmd_set_depth_bounds_test_enable: PFN_vkCmdSetDepthBoundsTestEnable, + pub cmd_set_stencil_test_enable: PFN_vkCmdSetStencilTestEnable, + pub cmd_set_stencil_op: PFN_vkCmdSetStencilOp, + pub cmd_set_rasterizer_discard_enable: PFN_vkCmdSetRasterizerDiscardEnable, + pub cmd_set_depth_bias_enable: PFN_vkCmdSetDepthBiasEnable, + pub cmd_set_primitive_restart_enable: PFN_vkCmdSetPrimitiveRestartEnable, + pub get_device_buffer_memory_requirements: PFN_vkGetDeviceBufferMemoryRequirements, + pub get_device_image_memory_requirements: PFN_vkGetDeviceImageMemoryRequirements, + pub get_device_image_sparse_memory_requirements: PFN_vkGetDeviceImageSparseMemoryRequirements, +} +unsafe impl Send for DeviceFnV1_3 {} +unsafe impl Sync for DeviceFnV1_3 {} +impl DeviceFnV1_3 { + pub fn load(mut _f: F) -> Self + where + F: FnMut(&CStr) -> *const c_void, + { + Self { + create_private_data_slot: unsafe { + unsafe extern "system" fn create_private_data_slot( + _device: crate::vk::Device, + _p_create_info: *const PrivateDataSlotCreateInfo<'_>, + _p_allocator: *const AllocationCallbacks<'_>, + _p_private_data_slot: *mut PrivateDataSlot, + ) -> Result { + panic!(concat!( + "Unable to load ", + stringify!(create_private_data_slot) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreatePrivateDataSlot\0"); + let val = _f(cname); + if val.is_null() { + create_private_data_slot + } else { + ::core::mem::transmute(val) + } + }, + destroy_private_data_slot: unsafe { + unsafe extern "system" fn destroy_private_data_slot( + _device: crate::vk::Device, + _private_data_slot: PrivateDataSlot, + _p_allocator: *const AllocationCallbacks<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(destroy_private_data_slot) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPrivateDataSlot\0"); + let val = _f(cname); + if val.is_null() { + destroy_private_data_slot + } else { + ::core::mem::transmute(val) + } + }, + set_private_data: unsafe { + unsafe extern "system" fn set_private_data( + _device: crate::vk::Device, + _object_type: ObjectType, + _object_handle: u64, + _private_data_slot: PrivateDataSlot, + _data: u64, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(set_private_data))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateData\0"); + let val = _f(cname); + if val.is_null() { + set_private_data + } else { + ::core::mem::transmute(val) + } + }, + get_private_data: unsafe { + unsafe extern "system" fn get_private_data( + _device: crate::vk::Device, + _object_type: ObjectType, + _object_handle: u64, + _private_data_slot: PrivateDataSlot, + _p_data: *mut u64, + ) { + panic!(concat!("Unable to load ", stringify!(get_private_data))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateData\0"); + let val = _f(cname); + if val.is_null() { + get_private_data + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_event2: unsafe { + unsafe extern "system" fn cmd_set_event2( + _command_buffer: CommandBuffer, + _event: Event, + _p_dependency_info: *const DependencyInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_event2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_event2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_reset_event2: unsafe { + unsafe extern "system" fn cmd_reset_event2( + _command_buffer: CommandBuffer, + _event: Event, + _stage_mask: PipelineStageFlags2, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_reset_event2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2\0"); + let val = _f(cname); + if val.is_null() { + cmd_reset_event2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_wait_events2: unsafe { + unsafe extern "system" fn cmd_wait_events2( + _command_buffer: CommandBuffer, + _event_count: u32, + _p_events: *const Event, + _p_dependency_infos: *const DependencyInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_wait_events2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2\0"); + let val = _f(cname); + if val.is_null() { + cmd_wait_events2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_pipeline_barrier2: unsafe { + unsafe extern "system" fn cmd_pipeline_barrier2( + _command_buffer: CommandBuffer, + _p_dependency_info: *const DependencyInfo<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_pipeline_barrier2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2\0"); + let val = _f(cname); + if val.is_null() { + cmd_pipeline_barrier2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_write_timestamp2: unsafe { + unsafe extern "system" fn cmd_write_timestamp2( + _command_buffer: CommandBuffer, + _stage: PipelineStageFlags2, + _query_pool: QueryPool, + _query: u32, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_write_timestamp2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2\0"); + let val = _f(cname); + if val.is_null() { + cmd_write_timestamp2 + } else { + ::core::mem::transmute(val) + } + }, + queue_submit2: unsafe { + unsafe extern "system" fn queue_submit2( + _queue: Queue, + _submit_count: u32, + _p_submits: *const SubmitInfo2<'_>, + _fence: Fence, + ) -> Result { + panic!(concat!("Unable to load ", stringify!(queue_submit2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2\0"); + let val = _f(cname); + if val.is_null() { + queue_submit2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_buffer2: unsafe { + unsafe extern "system" fn cmd_copy_buffer2( + _command_buffer: CommandBuffer, + _p_copy_buffer_info: *const CopyBufferInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_buffer2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_image2: unsafe { + unsafe extern "system" fn cmd_copy_image2( + _command_buffer: CommandBuffer, + _p_copy_image_info: *const CopyImageInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_copy_image2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_image2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_buffer_to_image2: unsafe { + unsafe extern "system" fn cmd_copy_buffer_to_image2( + _command_buffer: CommandBuffer, + _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_buffer_to_image2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBufferToImage2\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_buffer_to_image2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_copy_image_to_buffer2: unsafe { + unsafe extern "system" fn cmd_copy_image_to_buffer2( + _command_buffer: CommandBuffer, + _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_copy_image_to_buffer2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImageToBuffer2\0"); + let val = _f(cname); + if val.is_null() { + cmd_copy_image_to_buffer2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_blit_image2: unsafe { + unsafe extern "system" fn cmd_blit_image2( + _command_buffer: CommandBuffer, + _p_blit_image_info: *const BlitImageInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_blit_image2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2\0"); + let val = _f(cname); + if val.is_null() { + cmd_blit_image2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_resolve_image2: unsafe { + unsafe extern "system" fn cmd_resolve_image2( + _command_buffer: CommandBuffer, + _p_resolve_image_info: *const ResolveImageInfo2<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_resolve_image2))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2\0"); + let val = _f(cname); + if val.is_null() { + cmd_resolve_image2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_begin_rendering: unsafe { + unsafe extern "system" fn cmd_begin_rendering( + _command_buffer: CommandBuffer, + _p_rendering_info: *const RenderingInfo<'_>, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_begin_rendering))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRendering\0"); + let val = _f(cname); + if val.is_null() { + cmd_begin_rendering + } else { + ::core::mem::transmute(val) + } + }, + cmd_end_rendering: unsafe { + unsafe extern "system" fn cmd_end_rendering(_command_buffer: CommandBuffer) { + panic!(concat!("Unable to load ", stringify!(cmd_end_rendering))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRendering\0"); + let val = _f(cname); + if val.is_null() { + cmd_end_rendering + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_cull_mode: unsafe { + unsafe extern "system" fn cmd_set_cull_mode( + _command_buffer: CommandBuffer, + _cull_mode: CullModeFlags, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_cull_mode))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullMode\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_cull_mode + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_front_face: unsafe { + unsafe extern "system" fn cmd_set_front_face( + _command_buffer: CommandBuffer, + _front_face: FrontFace, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_front_face))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFace\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_front_face + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_topology: unsafe { + unsafe extern "system" fn cmd_set_primitive_topology( + _command_buffer: CommandBuffer, + _primitive_topology: PrimitiveTopology, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_topology) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopology\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_topology + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_viewport_with_count: unsafe { + unsafe extern "system" fn cmd_set_viewport_with_count( + _command_buffer: CommandBuffer, + _viewport_count: u32, + _p_viewports: *const Viewport, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_viewport_with_count) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCount\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_viewport_with_count + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_scissor_with_count: unsafe { + unsafe extern "system" fn cmd_set_scissor_with_count( + _command_buffer: CommandBuffer, + _scissor_count: u32, + _p_scissors: *const Rect2D, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_scissor_with_count) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCount\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_scissor_with_count + } else { + ::core::mem::transmute(val) + } + }, + cmd_bind_vertex_buffers2: unsafe { + unsafe extern "system" fn cmd_bind_vertex_buffers2( + _command_buffer: CommandBuffer, + _first_binding: u32, + _binding_count: u32, + _p_buffers: *const Buffer, + _p_offsets: *const DeviceSize, + _p_sizes: *const DeviceSize, + _p_strides: *const DeviceSize, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_bind_vertex_buffers2) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2\0"); + let val = _f(cname); + if val.is_null() { + cmd_bind_vertex_buffers2 + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_test_enable: unsafe { + unsafe extern "system" fn cmd_set_depth_test_enable( + _command_buffer: CommandBuffer, + _depth_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_test_enable) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_test_enable + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_write_enable: unsafe { + unsafe extern "system" fn cmd_set_depth_write_enable( + _command_buffer: CommandBuffer, + _depth_write_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_write_enable) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_write_enable + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_compare_op: unsafe { + unsafe extern "system" fn cmd_set_depth_compare_op( + _command_buffer: CommandBuffer, + _depth_compare_op: CompareOp, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_compare_op) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOp\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_compare_op + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bounds_test_enable: unsafe { + unsafe extern "system" fn cmd_set_depth_bounds_test_enable( + _command_buffer: CommandBuffer, + _depth_bounds_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bounds_test_enable) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBoundsTestEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bounds_test_enable + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_test_enable: unsafe { + unsafe extern "system" fn cmd_set_stencil_test_enable( + _command_buffer: CommandBuffer, + _stencil_test_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_stencil_test_enable) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_test_enable + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_stencil_op: unsafe { + unsafe extern "system" fn cmd_set_stencil_op( + _command_buffer: CommandBuffer, + _face_mask: StencilFaceFlags, + _fail_op: StencilOp, + _pass_op: StencilOp, + _depth_fail_op: StencilOp, + _compare_op: CompareOp, + ) { + panic!(concat!("Unable to load ", stringify!(cmd_set_stencil_op))) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOp\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_stencil_op + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_rasterizer_discard_enable: unsafe { + unsafe extern "system" fn cmd_set_rasterizer_discard_enable( + _command_buffer: CommandBuffer, + _rasterizer_discard_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_rasterizer_discard_enable) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetRasterizerDiscardEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_rasterizer_discard_enable + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_depth_bias_enable: unsafe { + unsafe extern "system" fn cmd_set_depth_bias_enable( + _command_buffer: CommandBuffer, + _depth_bias_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_depth_bias_enable) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_depth_bias_enable + } else { + ::core::mem::transmute(val) + } + }, + cmd_set_primitive_restart_enable: unsafe { + unsafe extern "system" fn cmd_set_primitive_restart_enable( + _command_buffer: CommandBuffer, + _primitive_restart_enable: Bool32, + ) { + panic!(concat!( + "Unable to load ", + stringify!(cmd_set_primitive_restart_enable) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveRestartEnable\0"); + let val = _f(cname); + if val.is_null() { + cmd_set_primitive_restart_enable + } else { + ::core::mem::transmute(val) + } + }, + get_device_buffer_memory_requirements: unsafe { + unsafe extern "system" fn get_device_buffer_memory_requirements( + _device: crate::vk::Device, + _p_info: *const DeviceBufferMemoryRequirements<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_buffer_memory_requirements) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceBufferMemoryRequirements\0"); + let val = _f(cname); + if val.is_null() { + get_device_buffer_memory_requirements + } else { + ::core::mem::transmute(val) + } + }, + get_device_image_memory_requirements: unsafe { + unsafe extern "system" fn get_device_image_memory_requirements( + _device: crate::vk::Device, + _p_info: *const DeviceImageMemoryRequirements<'_>, + _p_memory_requirements: *mut MemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_image_memory_requirements) + )) + } + let cname = + CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceImageMemoryRequirements\0"); + let val = _f(cname); + if val.is_null() { + get_device_image_memory_requirements + } else { + ::core::mem::transmute(val) + } + }, + get_device_image_sparse_memory_requirements: unsafe { + unsafe extern "system" fn get_device_image_sparse_memory_requirements( + _device: crate::vk::Device, + _p_info: *const DeviceImageMemoryRequirements<'_>, + _p_sparse_memory_requirement_count: *mut u32, + _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, + ) { + panic!(concat!( + "Unable to load ", + stringify!(get_device_image_sparse_memory_requirements) + )) + } + let cname = CStr::from_bytes_with_nul_unchecked( + b"vkGetDeviceImageSparseMemoryRequirements\0", + ); + let val = _f(cname); + if val.is_null() { + get_device_image_sparse_memory_requirements + } else { + ::core::mem::transmute(val) + } + }, + } + } +} diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index 6552073e..075883d9 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -1,5 +1,4 @@ #![allow(unused_qualifications)] -#![allow(unused_imports)] use crate::vk::aliases::*; use crate::vk::bitflags::*; use crate::vk::definitions::*; @@ -3956,22883 +3955,3929 @@ impl StructureType { impl StructureType { pub const PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV: Self = Self(1_000_568_000); } -#[doc = "Extensions tagged AMD"] -pub mod amd { - #[doc = "VK_AMD_rasterization_order"] - pub mod rasterization_order { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_rasterization_order\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_shader_trinary_minmax"] - pub mod shader_trinary_minmax { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_trinary_minmax\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_shader_explicit_vertex_parameter"] - pub mod shader_explicit_vertex_parameter { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_explicit_vertex_parameter\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_gcn_shader"] - pub mod gcn_shader { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gcn_shader\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_draw_indirect_count"] - pub mod draw_indirect_count { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_draw_indirect_count\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawIndirectCount = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - count_buffer: Buffer, - count_buffer_offset: DeviceSize, - max_draw_count: u32, - stride: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - count_buffer: Buffer, - count_buffer_offset: DeviceSize, - max_draw_count: u32, - stride: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_AMD_draw_indirect_count device-level function pointers"] - pub struct DeviceFn { - pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCount, - pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCount, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_indirect_count_amd: unsafe { - unsafe extern "system" fn cmd_draw_indirect_count_amd( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indirect_count_amd) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountAMD\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indirect_count_amd - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indexed_indirect_count_amd: unsafe { - unsafe extern "system" fn cmd_draw_indexed_indirect_count_amd( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indexed_indirect_count_amd) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDrawIndexedIndirectCountAMD\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_draw_indexed_indirect_count_amd - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_AMD_draw_indirect_count device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_AMD_negative_viewport_height"] - pub mod negative_viewport_height { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_negative_viewport_height\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_gpu_shader_half_float"] - pub mod gpu_shader_half_float { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_half_float\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_AMD_shader_ballot"] - pub mod shader_ballot { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_ballot\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_texture_gather_bias_lod"] - pub mod texture_gather_bias_lod { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_texture_gather_bias_lod\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_shader_info"] - pub mod shader_info { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_info\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn( - device: crate::vk::Device, - pipeline: Pipeline, - shader_stage: ShaderStageFlags, - info_type: ShaderInfoTypeAMD, - p_info_size: *mut usize, - p_info: *mut c_void, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_AMD_shader_info device-level function pointers"] - pub struct DeviceFn { - pub get_shader_info_amd: PFN_vkGetShaderInfoAMD, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_shader_info_amd: unsafe { - unsafe extern "system" fn get_shader_info_amd( - _device: crate::vk::Device, - _pipeline: Pipeline, - _shader_stage: ShaderStageFlags, - _info_type: ShaderInfoTypeAMD, - _p_info_size: *mut usize, - _p_info: *mut c_void, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_shader_info_amd))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetShaderInfoAMD\0"); - let val = _f(cname); - if val.is_null() { - get_shader_info_amd - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_AMD_shader_info device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_AMD_shader_image_load_store_lod"] - pub mod shader_image_load_store_lod { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_image_load_store_lod\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_gpu_shader_int16"] - pub mod gpu_shader_int16 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_int16\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_AMD_mixed_attachment_samples"] - pub mod mixed_attachment_samples { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_mixed_attachment_samples\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_shader_fragment_mask"] - pub mod shader_fragment_mask { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_fragment_mask\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_buffer_marker"] - pub mod buffer_marker { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_buffer_marker\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn( - command_buffer: CommandBuffer, - pipeline_stage: PipelineStageFlags, - dst_buffer: Buffer, - dst_offset: DeviceSize, - marker: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_AMD_buffer_marker device-level function pointers"] - pub struct DeviceFn { - pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_write_buffer_marker_amd: unsafe { - unsafe extern "system" fn cmd_write_buffer_marker_amd( - _command_buffer: CommandBuffer, - _pipeline_stage: PipelineStageFlags, - _dst_buffer: Buffer, - _dst_offset: DeviceSize, - _marker: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_buffer_marker_amd) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarkerAMD\0"); - let val = _f(cname); - if val.is_null() { - cmd_write_buffer_marker_amd - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_AMD_buffer_marker device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_AMD_pipeline_compiler_control"] - pub mod pipeline_compiler_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_pipeline_compiler_control\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_shader_core_properties"] - pub mod shader_core_properties { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_AMD_memory_overallocation_behavior"] - pub mod memory_overallocation_behavior { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_AMD_memory_overallocation_behavior\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_display_native_hdr"] - pub mod display_native_hdr { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_display_native_hdr\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkSetLocalDimmingAMD = unsafe extern "system" fn( - device: crate::vk::Device, - swap_chain: SwapchainKHR, - local_dimming_enable: Bool32, - ); - #[derive(Clone)] - #[doc = "Raw VK_AMD_display_native_hdr device-level function pointers"] - pub struct DeviceFn { - pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - set_local_dimming_amd: unsafe { - unsafe extern "system" fn set_local_dimming_amd( - _device: crate::vk::Device, - _swap_chain: SwapchainKHR, - _local_dimming_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(set_local_dimming_amd) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLocalDimmingAMD\0"); - let val = _f(cname); - if val.is_null() { - set_local_dimming_amd - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_AMD_display_native_hdr device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_AMD_shader_core_properties2"] - pub mod shader_core_properties2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_device_coherent_memory"] - pub mod device_coherent_memory { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_device_coherent_memory\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_AMD_shader_early_and_late_fragment_tests"] - pub mod shader_early_and_late_fragment_tests { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_early_and_late_fragment_tests\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged AMDX"] -pub mod amdx { - #[doc = "VK_AMDX_shader_enqueue"] - pub mod shader_enqueue { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMDX_shader_enqueue\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateExecutionGraphPipelinesAMDX = unsafe extern "system" fn( - device: crate::vk::Device, - pipeline_cache: PipelineCache, - create_info_count: u32, - p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_pipelines: *mut Pipeline, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetExecutionGraphPipelineScratchSizeAMDX = - unsafe extern "system" fn( - device: crate::vk::Device, - execution_graph: Pipeline, - p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetExecutionGraphPipelineNodeIndexAMDX = unsafe extern "system" fn( - device: crate::vk::Device, - execution_graph: Pipeline, - p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>, - p_node_index: *mut u32, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = - unsafe extern "system" fn(command_buffer: CommandBuffer, scratch: DeviceAddress); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDispatchGraphAMDX = unsafe extern "system" fn( - command_buffer: CommandBuffer, - scratch: DeviceAddress, - p_count_info: *const DispatchGraphCountInfoAMDX, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDispatchGraphIndirectAMDX = unsafe extern "system" fn( - command_buffer: CommandBuffer, - scratch: DeviceAddress, - p_count_info: *const DispatchGraphCountInfoAMDX, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDispatchGraphIndirectCountAMDX = unsafe extern "system" fn( - command_buffer: CommandBuffer, - scratch: DeviceAddress, - count_info: DeviceAddress, - ); - #[derive(Clone)] - #[doc = "Raw VK_AMDX_shader_enqueue device-level function pointers"] - pub struct DeviceFn { - pub create_execution_graph_pipelines_amdx: PFN_vkCreateExecutionGraphPipelinesAMDX, - pub get_execution_graph_pipeline_scratch_size_amdx: - PFN_vkGetExecutionGraphPipelineScratchSizeAMDX, - pub get_execution_graph_pipeline_node_index_amdx: - PFN_vkGetExecutionGraphPipelineNodeIndexAMDX, - pub cmd_initialize_graph_scratch_memory_amdx: PFN_vkCmdInitializeGraphScratchMemoryAMDX, - pub cmd_dispatch_graph_amdx: PFN_vkCmdDispatchGraphAMDX, - pub cmd_dispatch_graph_indirect_amdx: PFN_vkCmdDispatchGraphIndirectAMDX, - pub cmd_dispatch_graph_indirect_count_amdx: PFN_vkCmdDispatchGraphIndirectCountAMDX, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_execution_graph_pipelines_amdx: unsafe { - unsafe extern "system" fn create_execution_graph_pipelines_amdx( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _create_info_count: u32, - _p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipelines: *mut Pipeline, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_execution_graph_pipelines_amdx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateExecutionGraphPipelinesAMDX\0", - ); - let val = _f(cname); - if val.is_null() { - create_execution_graph_pipelines_amdx - } else { - ::core::mem::transmute(val) - } - }, - get_execution_graph_pipeline_scratch_size_amdx: unsafe { - unsafe extern "system" fn get_execution_graph_pipeline_scratch_size_amdx( - _device: crate::vk::Device, - _execution_graph: Pipeline, - _p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_execution_graph_pipeline_scratch_size_amdx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetExecutionGraphPipelineScratchSizeAMDX\0", - ); - let val = _f(cname); - if val.is_null() { - get_execution_graph_pipeline_scratch_size_amdx - } else { - ::core::mem::transmute(val) - } - }, - get_execution_graph_pipeline_node_index_amdx: unsafe { - unsafe extern "system" fn get_execution_graph_pipeline_node_index_amdx( - _device: crate::vk::Device, - _execution_graph: Pipeline, - _p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>, - _p_node_index: *mut u32, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_execution_graph_pipeline_node_index_amdx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetExecutionGraphPipelineNodeIndexAMDX\0", - ); - let val = _f(cname); - if val.is_null() { - get_execution_graph_pipeline_node_index_amdx - } else { - ::core::mem::transmute(val) - } - }, - cmd_initialize_graph_scratch_memory_amdx: unsafe { - unsafe extern "system" fn cmd_initialize_graph_scratch_memory_amdx( - _command_buffer: CommandBuffer, - _scratch: DeviceAddress, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_initialize_graph_scratch_memory_amdx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdInitializeGraphScratchMemoryAMDX\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_initialize_graph_scratch_memory_amdx - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch_graph_amdx: unsafe { - unsafe extern "system" fn cmd_dispatch_graph_amdx( - _command_buffer: CommandBuffer, - _scratch: DeviceAddress, - _p_count_info: *const DispatchGraphCountInfoAMDX, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_dispatch_graph_amdx) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchGraphAMDX\0"); - let val = _f(cname); - if val.is_null() { - cmd_dispatch_graph_amdx - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch_graph_indirect_amdx: unsafe { - unsafe extern "system" fn cmd_dispatch_graph_indirect_amdx( - _command_buffer: CommandBuffer, - _scratch: DeviceAddress, - _p_count_info: *const DispatchGraphCountInfoAMDX, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_dispatch_graph_indirect_amdx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDispatchGraphIndirectAMDX\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_dispatch_graph_indirect_amdx - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch_graph_indirect_count_amdx: unsafe { - unsafe extern "system" fn cmd_dispatch_graph_indirect_count_amdx( - _command_buffer: CommandBuffer, - _scratch: DeviceAddress, - _count_info: DeviceAddress, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_dispatch_graph_indirect_count_amdx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDispatchGraphIndirectCountAMDX\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_dispatch_graph_indirect_count_amdx - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_AMDX_shader_enqueue device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged ANDROID"] -pub mod android { - #[doc = "VK_ANDROID_native_buffer"] - pub mod native_buffer { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_native_buffer\0") }; - pub const SPEC_VERSION: u32 = 8u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSwapchainGrallocUsageANDROID = unsafe extern "system" fn( - device: crate::vk::Device, - format: Format, - image_usage: ImageUsageFlags, - gralloc_usage: *mut c_int, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireImageANDROID = unsafe extern "system" fn( - device: crate::vk::Device, - image: Image, - native_fence_fd: c_int, - semaphore: Semaphore, - fence: Fence, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkQueueSignalReleaseImageANDROID = unsafe extern "system" fn( - queue: Queue, - wait_semaphore_count: u32, - p_wait_semaphores: *const Semaphore, - image: Image, - p_native_fence_fd: *mut c_int, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = unsafe extern "system" fn( - device: crate::vk::Device, - format: Format, - image_usage: ImageUsageFlags, - swapchain_image_usage: SwapchainImageUsageFlagsANDROID, - gralloc_consumer_usage: *mut u64, - gralloc_producer_usage: *mut u64, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_ANDROID_native_buffer device-level function pointers"] - pub struct DeviceFn { - pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID, - pub acquire_image_android: PFN_vkAcquireImageANDROID, - pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID, - pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_swapchain_gralloc_usage_android: unsafe { - unsafe extern "system" fn get_swapchain_gralloc_usage_android( - _device: crate::vk::Device, - _format: Format, - _image_usage: ImageUsageFlags, - _gralloc_usage: *mut c_int, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_swapchain_gralloc_usage_android) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetSwapchainGrallocUsageANDROID\0", - ); - let val = _f(cname); - if val.is_null() { - get_swapchain_gralloc_usage_android - } else { - ::core::mem::transmute(val) - } - }, - acquire_image_android: unsafe { - unsafe extern "system" fn acquire_image_android( - _device: crate::vk::Device, - _image: Image, - _native_fence_fd: c_int, - _semaphore: Semaphore, - _fence: Fence, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_image_android) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkAcquireImageANDROID\0"); - let val = _f(cname); - if val.is_null() { - acquire_image_android - } else { - ::core::mem::transmute(val) - } - }, - queue_signal_release_image_android: unsafe { - unsafe extern "system" fn queue_signal_release_image_android( - _queue: Queue, - _wait_semaphore_count: u32, - _p_wait_semaphores: *const Semaphore, - _image: Image, - _p_native_fence_fd: *mut c_int, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(queue_signal_release_image_android) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkQueueSignalReleaseImageANDROID\0", - ); - let val = _f(cname); - if val.is_null() { - queue_signal_release_image_android - } else { - ::core::mem::transmute(val) - } - }, - get_swapchain_gralloc_usage2_android: unsafe { - unsafe extern "system" fn get_swapchain_gralloc_usage2_android( - _device: crate::vk::Device, - _format: Format, - _image_usage: ImageUsageFlags, - _swapchain_image_usage: SwapchainImageUsageFlagsANDROID, - _gralloc_consumer_usage: *mut u64, - _gralloc_producer_usage: *mut u64, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_swapchain_gralloc_usage2_android) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetSwapchainGrallocUsage2ANDROID\0", - ); - let val = _f(cname); - if val.is_null() { - get_swapchain_gralloc_usage2_android - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_ANDROID_native_buffer device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_ANDROID_external_memory_android_hardware_buffer"] - pub mod external_memory_android_hardware_buffer { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked( - b"VK_ANDROID_external_memory_android_hardware_buffer\0", - ) - }; - pub const SPEC_VERSION: u32 = 5u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = - unsafe extern "system" fn( - device: crate::vk::Device, - buffer: *const AHardwareBuffer, - p_properties: *mut AndroidHardwareBufferPropertiesANDROID<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID<'_>, - p_buffer: *mut *mut AHardwareBuffer, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_ANDROID_external_memory_android_hardware_buffer device-level function pointers"] - pub struct DeviceFn { - pub get_android_hardware_buffer_properties_android: - PFN_vkGetAndroidHardwareBufferPropertiesANDROID, - pub get_memory_android_hardware_buffer_android: - PFN_vkGetMemoryAndroidHardwareBufferANDROID, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_android_hardware_buffer_properties_android: unsafe { - unsafe extern "system" fn get_android_hardware_buffer_properties_android( - _device: crate::vk::Device, - _buffer: *const AHardwareBuffer, - _p_properties: *mut AndroidHardwareBufferPropertiesANDROID<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_android_hardware_buffer_properties_android) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAndroidHardwareBufferPropertiesANDROID\0", - ); - let val = _f(cname); - if val.is_null() { - get_android_hardware_buffer_properties_android - } else { - ::core::mem::transmute(val) - } - }, - get_memory_android_hardware_buffer_android: unsafe { - unsafe extern "system" fn get_memory_android_hardware_buffer_android( - _device: crate::vk::Device, - _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID<'_>, - _p_buffer: *mut *mut AHardwareBuffer, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_android_hardware_buffer_android) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetMemoryAndroidHardwareBufferANDROID\0", - ); - let val = _f(cname); - if val.is_null() { - get_memory_android_hardware_buffer_android - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_ANDROID_external_memory_android_hardware_buffer device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_ANDROID_external_format_resolve"] - pub mod external_format_resolve { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_external_format_resolve\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged ARM"] -pub mod arm { - #[doc = "VK_ARM_rasterization_order_attachment_access"] - pub mod rasterization_order_attachment_access { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_ARM_rasterization_order_attachment_access\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_ARM_shader_core_properties"] - pub mod shader_core_properties { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_shader_core_properties\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_ARM_scheduling_controls"] - pub mod scheduling_controls { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_scheduling_controls\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_ARM_render_pass_striped"] - pub mod render_pass_striped { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_render_pass_striped\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_ARM_shader_core_builtins"] - pub mod shader_core_builtins { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_shader_core_builtins\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } -} -#[doc = "Extensions tagged EXT"] -pub mod ext { - #[doc = "VK_EXT_debug_report"] - pub mod debug_report { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_report\0") }; - pub const SPEC_VERSION: u32 = 10u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDebugReportCallbackEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_callback: *mut DebugReportCallbackEXT, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyDebugReportCallbackEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - callback: DebugReportCallbackEXT, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkDebugReportMessageEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - flags: DebugReportFlagsEXT, - object_type: DebugReportObjectTypeEXT, - object: u64, - location: usize, - message_code: i32, - p_layer_prefix: *const c_char, - p_message: *const c_char, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_report instance-level function pointers"] - pub struct InstanceFn { - pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT, - pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT, - pub debug_report_message_ext: PFN_vkDebugReportMessageEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_debug_report_callback_ext: unsafe { - unsafe extern "system" fn create_debug_report_callback_ext( - _instance: crate::vk::Instance, - _p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_callback: *mut DebugReportCallbackEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_debug_report_callback_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateDebugReportCallbackEXT\0", - ); - let val = _f(cname); - if val.is_null() { - create_debug_report_callback_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_debug_report_callback_ext: unsafe { - unsafe extern "system" fn destroy_debug_report_callback_ext( - _instance: crate::vk::Instance, - _callback: DebugReportCallbackEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_debug_report_callback_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyDebugReportCallbackEXT\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_debug_report_callback_ext - } else { - ::core::mem::transmute(val) - } - }, - debug_report_message_ext: unsafe { - unsafe extern "system" fn debug_report_message_ext( - _instance: crate::vk::Instance, - _flags: DebugReportFlagsEXT, - _object_type: DebugReportObjectTypeEXT, - _object: u64, - _location: usize, - _message_code: i32, - _p_layer_prefix: *const c_char, - _p_message: *const c_char, - ) { - panic!(concat!( - "Unable to load ", - stringify!(debug_report_message_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0"); - let val = _f(cname); - if val.is_null() { - debug_report_message_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_debug_report instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_depth_range_unrestricted"] - pub mod depth_range_unrestricted { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_range_unrestricted\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_debug_marker"] - pub mod debug_marker { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_marker\0") }; - pub const SPEC_VERSION: u32 = 4u32; - #[allow(non_camel_case_types)] - pub type PFN_vkDebugMarkerSetObjectTagEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDebugMarkerSetObjectNameEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDebugMarkerBeginEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDebugMarkerEndEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDebugMarkerInsertEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_marker device-level function pointers"] - pub struct DeviceFn { - pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT, - pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT, - pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT, - pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT, - pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - debug_marker_set_object_tag_ext: unsafe { - unsafe extern "system" fn debug_marker_set_object_tag_ext( - _device: crate::vk::Device, - _p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(debug_marker_set_object_tag_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectTagEXT\0"); - let val = _f(cname); - if val.is_null() { - debug_marker_set_object_tag_ext - } else { - ::core::mem::transmute(val) - } - }, - debug_marker_set_object_name_ext: unsafe { - unsafe extern "system" fn debug_marker_set_object_name_ext( - _device: crate::vk::Device, - _p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(debug_marker_set_object_name_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDebugMarkerSetObjectNameEXT\0"); - let val = _f(cname); - if val.is_null() { - debug_marker_set_object_name_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_debug_marker_begin_ext: unsafe { - unsafe extern "system" fn cmd_debug_marker_begin_ext( - _command_buffer: CommandBuffer, - _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_debug_marker_begin_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_debug_marker_begin_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_debug_marker_end_ext: unsafe { - unsafe extern "system" fn cmd_debug_marker_end_ext( - _command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_debug_marker_end_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_debug_marker_end_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_debug_marker_insert_ext: unsafe { - unsafe extern "system" fn cmd_debug_marker_insert_ext( - _command_buffer: CommandBuffer, - _p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_debug_marker_insert_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_debug_marker_insert_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_debug_marker device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_transform_feedback"] - pub mod transform_feedback { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_transform_feedback\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_binding: u32, - binding_count: u32, - p_buffers: *const Buffer, - p_offsets: *const DeviceSize, - p_sizes: *const DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_counter_buffer: u32, - counter_buffer_count: u32, - p_counter_buffers: *const Buffer, - p_counter_buffer_offsets: *const DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_counter_buffer: u32, - counter_buffer_count: u32, - p_counter_buffers: *const Buffer, - p_counter_buffer_offsets: *const DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginQueryIndexedEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - query_pool: QueryPool, - query: u32, - flags: QueryControlFlags, - index: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndQueryIndexedEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - query_pool: QueryPool, - query: u32, - index: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - instance_count: u32, - first_instance: u32, - counter_buffer: Buffer, - counter_buffer_offset: DeviceSize, - counter_offset: u32, - vertex_stride: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_transform_feedback device-level function pointers"] - pub struct DeviceFn { - pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT, - pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT, - pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT, - pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT, - pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT, - pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_bind_transform_feedback_buffers_ext: unsafe { - unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext( - _command_buffer: CommandBuffer, - _first_binding: u32, - _binding_count: u32, - _p_buffers: *const Buffer, - _p_offsets: *const DeviceSize, - _p_sizes: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_transform_feedback_buffers_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBindTransformFeedbackBuffersEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_bind_transform_feedback_buffers_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_transform_feedback_ext: unsafe { - unsafe extern "system" fn cmd_begin_transform_feedback_ext( - _command_buffer: CommandBuffer, - _first_counter_buffer: u32, - _counter_buffer_count: u32, - _p_counter_buffers: *const Buffer, - _p_counter_buffer_offsets: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_transform_feedback_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBeginTransformFeedbackEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_begin_transform_feedback_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_transform_feedback_ext: unsafe { - unsafe extern "system" fn cmd_end_transform_feedback_ext( - _command_buffer: CommandBuffer, - _first_counter_buffer: u32, - _counter_buffer_count: u32, - _p_counter_buffers: *const Buffer, - _p_counter_buffer_offsets: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_transform_feedback_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndTransformFeedbackEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_transform_feedback_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_query_indexed_ext: unsafe { - unsafe extern "system" fn cmd_begin_query_indexed_ext( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _query: u32, - _flags: QueryControlFlags, - _index: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_query_indexed_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_query_indexed_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_query_indexed_ext: unsafe { - unsafe extern "system" fn cmd_end_query_indexed_ext( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _query: u32, - _index: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_query_indexed_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_query_indexed_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indirect_byte_count_ext: unsafe { - unsafe extern "system" fn cmd_draw_indirect_byte_count_ext( - _command_buffer: CommandBuffer, - _instance_count: u32, - _first_instance: u32, - _counter_buffer: Buffer, - _counter_buffer_offset: DeviceSize, - _counter_offset: u32, - _vertex_stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indirect_byte_count_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectByteCountEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indirect_byte_count_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_transform_feedback device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_validation_flags"] - pub mod validation_flags { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_flags\0") }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_EXT_shader_subgroup_ballot"] - pub mod shader_subgroup_ballot { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_ballot\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_shader_subgroup_vote"] - pub mod shader_subgroup_vote { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_vote\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_texture_compression_astc_hdr"] - pub mod texture_compression_astc_hdr { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_texture_compression_astc_hdr\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_astc_decode_mode"] - pub mod astc_decode_mode { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_astc_decode_mode\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_pipeline_robustness"] - pub mod pipeline_robustness { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_robustness\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_conditional_rendering"] - pub mod conditional_rendering { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conditional_rendering\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndConditionalRenderingEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer); - #[derive(Clone)] - #[doc = "Raw VK_EXT_conditional_rendering device-level function pointers"] - pub struct DeviceFn { - pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT, - pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_begin_conditional_rendering_ext: unsafe { - unsafe extern "system" fn cmd_begin_conditional_rendering_ext( - _command_buffer: CommandBuffer, - _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT< - '_, - >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_conditional_rendering_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBeginConditionalRenderingEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_begin_conditional_rendering_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_conditional_rendering_ext: unsafe { - unsafe extern "system" fn cmd_end_conditional_rendering_ext( - _command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_conditional_rendering_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdEndConditionalRenderingEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_end_conditional_rendering_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_conditional_rendering device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_direct_mode_display"] - pub mod direct_mode_display { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_direct_mode_display\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkReleaseDisplayEXT = unsafe extern "system" fn( - physical_device: PhysicalDevice, - display: DisplayKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_direct_mode_display instance-level function pointers"] - pub struct InstanceFn { - pub release_display_ext: PFN_vkReleaseDisplayEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - release_display_ext: unsafe { - unsafe extern "system" fn release_display_ext( - _physical_device: PhysicalDevice, - _display: DisplayKHR, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(release_display_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0"); - let val = _f(cname); - if val.is_null() { - release_display_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_direct_mode_display instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_acquire_xlib_display"] - pub mod acquire_xlib_display { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_xlib_display\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireXlibDisplayEXT = unsafe extern "system" fn( - physical_device: PhysicalDevice, - dpy: *mut Display, - display: DisplayKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetRandROutputDisplayEXT = unsafe extern "system" fn( - physical_device: PhysicalDevice, - dpy: *mut Display, - rr_output: RROutput, - p_display: *mut DisplayKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_acquire_xlib_display instance-level function pointers"] - pub struct InstanceFn { - pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT, - pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - acquire_xlib_display_ext: unsafe { - unsafe extern "system" fn acquire_xlib_display_ext( - _physical_device: PhysicalDevice, - _dpy: *mut Display, - _display: DisplayKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_xlib_display_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0"); - let val = _f(cname); - if val.is_null() { - acquire_xlib_display_ext - } else { - ::core::mem::transmute(val) - } - }, - get_rand_r_output_display_ext: unsafe { - unsafe extern "system" fn get_rand_r_output_display_ext( - _physical_device: PhysicalDevice, - _dpy: *mut Display, - _rr_output: RROutput, - _p_display: *mut DisplayKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_rand_r_output_display_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetRandROutputDisplayEXT\0"); - let val = _f(cname); - if val.is_null() { - get_rand_r_output_display_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_acquire_xlib_display instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_display_surface_counter"] - pub mod display_surface_counter { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_surface_counter\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - surface: SurfaceKHR, - p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_display_surface_counter instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_surface_capabilities2_ext: - PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_surface_capabilities2_ext: unsafe { - unsafe extern "system" fn get_physical_device_surface_capabilities2_ext( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_capabilities2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_capabilities2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_display_surface_counter instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_display_control"] - pub mod display_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_control\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkDisplayPowerControlEXT = unsafe extern "system" fn( - device: crate::vk::Device, - display: DisplayKHR, - p_display_power_info: *const DisplayPowerInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkRegisterDeviceEventEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_device_event_info: *const DeviceEventInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_fence: *mut Fence, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkRegisterDisplayEventEXT = unsafe extern "system" fn( - device: crate::vk::Device, - display: DisplayKHR, - p_display_event_info: *const DisplayEventInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_fence: *mut Fence, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSwapchainCounterEXT = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - counter: SurfaceCounterFlagsEXT, - p_counter_value: *mut u64, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_display_control device-level function pointers"] - pub struct DeviceFn { - pub display_power_control_ext: PFN_vkDisplayPowerControlEXT, - pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT, - pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT, - pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - display_power_control_ext: unsafe { - unsafe extern "system" fn display_power_control_ext( - _device: crate::vk::Device, - _display: DisplayKHR, - _p_display_power_info: *const DisplayPowerInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(display_power_control_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0"); - let val = _f(cname); - if val.is_null() { - display_power_control_ext - } else { - ::core::mem::transmute(val) - } - }, - register_device_event_ext: unsafe { - unsafe extern "system" fn register_device_event_ext( - _device: crate::vk::Device, - _p_device_event_info: *const DeviceEventInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_fence: *mut Fence, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(register_device_event_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0"); - let val = _f(cname); - if val.is_null() { - register_device_event_ext - } else { - ::core::mem::transmute(val) - } - }, - register_display_event_ext: unsafe { - unsafe extern "system" fn register_display_event_ext( - _device: crate::vk::Device, - _display: DisplayKHR, - _p_display_event_info: *const DisplayEventInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_fence: *mut Fence, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(register_display_event_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0"); - let val = _f(cname); - if val.is_null() { - register_display_event_ext - } else { - ::core::mem::transmute(val) - } - }, - get_swapchain_counter_ext: unsafe { - unsafe extern "system" fn get_swapchain_counter_ext( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _counter: SurfaceCounterFlagsEXT, - _p_counter_value: *mut u64, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_swapchain_counter_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0"); - let val = _f(cname); - if val.is_null() { - get_swapchain_counter_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_display_control device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_discard_rectangles"] - pub mod discard_rectangles { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_discard_rectangles\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDiscardRectangleEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_discard_rectangle: u32, - discard_rectangle_count: u32, - p_discard_rectangles: *const Rect2D, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDiscardRectangleEnableEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - discard_rectangle_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDiscardRectangleModeEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - discard_rectangle_mode: DiscardRectangleModeEXT, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_discard_rectangles device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT, - pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT, - pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_discard_rectangle_ext: unsafe { - unsafe extern "system" fn cmd_set_discard_rectangle_ext( - _command_buffer: CommandBuffer, - _first_discard_rectangle: u32, - _discard_rectangle_count: u32, - _p_discard_rectangles: *const Rect2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_discard_rectangle_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDiscardRectangleEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_discard_rectangle_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_discard_rectangle_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_discard_rectangle_enable_ext( - _command_buffer: CommandBuffer, - _discard_rectangle_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_discard_rectangle_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDiscardRectangleEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_discard_rectangle_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_discard_rectangle_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_discard_rectangle_mode_ext( - _command_buffer: CommandBuffer, - _discard_rectangle_mode: DiscardRectangleModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_discard_rectangle_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDiscardRectangleModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_discard_rectangle_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_discard_rectangles device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_conservative_rasterization"] - pub mod conservative_rasterization { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conservative_rasterization\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_depth_clip_enable"] - pub mod depth_clip_enable { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_enable\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_swapchain_colorspace"] - pub mod swapchain_colorspace { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_colorspace\0") }; - pub const SPEC_VERSION: u32 = 4u32; - } - #[doc = "VK_EXT_hdr_metadata"] - pub mod hdr_metadata { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_hdr_metadata\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain_count: u32, - p_swapchains: *const SwapchainKHR, - p_metadata: *const HdrMetadataEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_hdr_metadata device-level function pointers"] - pub struct DeviceFn { - pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - set_hdr_metadata_ext: unsafe { - unsafe extern "system" fn set_hdr_metadata_ext( - _device: crate::vk::Device, - _swapchain_count: u32, - _p_swapchains: *const SwapchainKHR, - _p_metadata: *const HdrMetadataEXT<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0"); - let val = _f(cname); - if val.is_null() { - set_hdr_metadata_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_hdr_metadata device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_external_memory_dma_buf"] - pub mod external_memory_dma_buf { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_dma_buf\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_queue_family_foreign"] - pub mod queue_family_foreign { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_queue_family_foreign\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_debug_utils"] - pub mod debug_utils { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_utils\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDebugUtilsMessengerEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_messenger: *mut DebugUtilsMessengerEXT, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyDebugUtilsMessengerEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - messenger: DebugUtilsMessengerEXT, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkSubmitDebugUtilsMessageEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - message_severity: DebugUtilsMessageSeverityFlagsEXT, - message_types: DebugUtilsMessageTypeFlagsEXT, - p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_utils instance-level function pointers"] - pub struct InstanceFn { - pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT, - pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT, - pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_debug_utils_messenger_ext: unsafe { - unsafe extern "system" fn create_debug_utils_messenger_ext( - _instance: crate::vk::Instance, - _p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_messenger: *mut DebugUtilsMessengerEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_debug_utils_messenger_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateDebugUtilsMessengerEXT\0", - ); - let val = _f(cname); - if val.is_null() { - create_debug_utils_messenger_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_debug_utils_messenger_ext: unsafe { - unsafe extern "system" fn destroy_debug_utils_messenger_ext( - _instance: crate::vk::Instance, - _messenger: DebugUtilsMessengerEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_debug_utils_messenger_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyDebugUtilsMessengerEXT\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_debug_utils_messenger_ext - } else { - ::core::mem::transmute(val) - } - }, - submit_debug_utils_message_ext: unsafe { - unsafe extern "system" fn submit_debug_utils_message_ext( - _instance: crate::vk::Instance, - _message_severity: DebugUtilsMessageSeverityFlagsEXT, - _message_types: DebugUtilsMessageTypeFlagsEXT, - _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(submit_debug_utils_message_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSubmitDebugUtilsMessageEXT\0"); - let val = _f(cname); - if val.is_null() { - submit_debug_utils_message_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_debug_utils instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkSetDebugUtilsObjectNameEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkSetDebugUtilsObjectTagEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkQueueBeginDebugUtilsLabelEXT = - unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT<'_>); - #[allow(non_camel_case_types)] - pub type PFN_vkQueueEndDebugUtilsLabelEXT = unsafe extern "system" fn(queue: Queue); - #[allow(non_camel_case_types)] - pub type PFN_vkQueueInsertDebugUtilsLabelEXT = - unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT<'_>); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginDebugUtilsLabelEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_label_info: *const DebugUtilsLabelEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndDebugUtilsLabelEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdInsertDebugUtilsLabelEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_label_info: *const DebugUtilsLabelEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_debug_utils device-level function pointers"] - pub struct DeviceFn { - pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT, - pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT, - pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT, - pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT, - pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT, - pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT, - pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT, - pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - set_debug_utils_object_name_ext: unsafe { - unsafe extern "system" fn set_debug_utils_object_name_ext( - _device: crate::vk::Device, - _p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(set_debug_utils_object_name_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectNameEXT\0"); - let val = _f(cname); - if val.is_null() { - set_debug_utils_object_name_ext - } else { - ::core::mem::transmute(val) - } - }, - set_debug_utils_object_tag_ext: unsafe { - unsafe extern "system" fn set_debug_utils_object_tag_ext( - _device: crate::vk::Device, - _p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(set_debug_utils_object_tag_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetDebugUtilsObjectTagEXT\0"); - let val = _f(cname); - if val.is_null() { - set_debug_utils_object_tag_ext - } else { - ::core::mem::transmute(val) - } - }, - queue_begin_debug_utils_label_ext: unsafe { - unsafe extern "system" fn queue_begin_debug_utils_label_ext( - _queue: Queue, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(queue_begin_debug_utils_label_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkQueueBeginDebugUtilsLabelEXT\0", - ); - let val = _f(cname); - if val.is_null() { - queue_begin_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - queue_end_debug_utils_label_ext: unsafe { - unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) { - panic!(concat!( - "Unable to load ", - stringify!(queue_end_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkQueueEndDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - queue_end_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - queue_insert_debug_utils_label_ext: unsafe { - unsafe extern "system" fn queue_insert_debug_utils_label_ext( - _queue: Queue, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(queue_insert_debug_utils_label_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkQueueInsertDebugUtilsLabelEXT\0", - ); - let val = _f(cname); - if val.is_null() { - queue_insert_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_debug_utils_label_ext: unsafe { - unsafe extern "system" fn cmd_begin_debug_utils_label_ext( - _command_buffer: CommandBuffer, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_debug_utils_label_ext: unsafe { - unsafe extern "system" fn cmd_end_debug_utils_label_ext( - _command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_insert_debug_utils_label_ext: unsafe { - unsafe extern "system" fn cmd_insert_debug_utils_label_ext( - _command_buffer: CommandBuffer, - _p_label_info: *const DebugUtilsLabelEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_insert_debug_utils_label_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdInsertDebugUtilsLabelEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_insert_debug_utils_label_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_debug_utils device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_sampler_filter_minmax"] - pub mod sampler_filter_minmax { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sampler_filter_minmax\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_inline_uniform_block"] - pub mod inline_uniform_block { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_inline_uniform_block\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_shader_stencil_export"] - pub mod shader_stencil_export { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_stencil_export\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_sample_locations"] - pub mod sample_locations { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sample_locations\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = unsafe extern "system" fn( - physical_device: PhysicalDevice, - samples: SampleCountFlags, - p_multisample_properties: *mut MultisamplePropertiesEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_sample_locations instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_multisample_properties_ext: - PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_multisample_properties_ext: unsafe { - unsafe extern "system" fn get_physical_device_multisample_properties_ext( - _physical_device: PhysicalDevice, - _samples: SampleCountFlags, - _p_multisample_properties: *mut MultisamplePropertiesEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_multisample_properties_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_multisample_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_sample_locations instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetSampleLocationsEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_sample_locations_info: *const SampleLocationsInfoEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_sample_locations device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_sample_locations_ext: unsafe { - unsafe extern "system" fn cmd_set_sample_locations_ext( - _command_buffer: CommandBuffer, - _p_sample_locations_info: *const SampleLocationsInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_sample_locations_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleLocationsEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_sample_locations_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_sample_locations device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_blend_operation_advanced"] - pub mod blend_operation_advanced { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_blend_operation_advanced\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_post_depth_coverage"] - pub mod post_depth_coverage { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_post_depth_coverage\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_image_drm_format_modifier"] - pub mod image_drm_format_modifier { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_drm_format_modifier\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - image: Image, - p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_image_drm_format_modifier device-level function pointers"] - pub struct DeviceFn { - pub get_image_drm_format_modifier_properties_ext: - PFN_vkGetImageDrmFormatModifierPropertiesEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_image_drm_format_modifier_properties_ext: unsafe { - unsafe extern "system" fn get_image_drm_format_modifier_properties_ext( - _device: crate::vk::Device, - _image: Image, - _p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_image_drm_format_modifier_properties_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageDrmFormatModifierPropertiesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_drm_format_modifier_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_image_drm_format_modifier device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_validation_cache"] - pub mod validation_cache { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_cache\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateValidationCacheEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const ValidationCacheCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_validation_cache: *mut ValidationCacheEXT, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyValidationCacheEXT = unsafe extern "system" fn( - device: crate::vk::Device, - validation_cache: ValidationCacheEXT, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkMergeValidationCachesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - dst_cache: ValidationCacheEXT, - src_cache_count: u32, - p_src_caches: *const ValidationCacheEXT, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetValidationCacheDataEXT = unsafe extern "system" fn( - device: crate::vk::Device, - validation_cache: ValidationCacheEXT, - p_data_size: *mut usize, - p_data: *mut c_void, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_validation_cache device-level function pointers"] - pub struct DeviceFn { - pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT, - pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT, - pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT, - pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_validation_cache_ext: unsafe { - unsafe extern "system" fn create_validation_cache_ext( - _device: crate::vk::Device, - _p_create_info: *const ValidationCacheCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_validation_cache: *mut ValidationCacheEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_validation_cache_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateValidationCacheEXT\0"); - let val = _f(cname); - if val.is_null() { - create_validation_cache_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_validation_cache_ext: unsafe { - unsafe extern "system" fn destroy_validation_cache_ext( - _device: crate::vk::Device, - _validation_cache: ValidationCacheEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_validation_cache_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyValidationCacheEXT\0"); - let val = _f(cname); - if val.is_null() { - destroy_validation_cache_ext - } else { - ::core::mem::transmute(val) - } - }, - merge_validation_caches_ext: unsafe { - unsafe extern "system" fn merge_validation_caches_ext( - _device: crate::vk::Device, - _dst_cache: ValidationCacheEXT, - _src_cache_count: u32, - _p_src_caches: *const ValidationCacheEXT, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(merge_validation_caches_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkMergeValidationCachesEXT\0"); - let val = _f(cname); - if val.is_null() { - merge_validation_caches_ext - } else { - ::core::mem::transmute(val) - } - }, - get_validation_cache_data_ext: unsafe { - unsafe extern "system" fn get_validation_cache_data_ext( - _device: crate::vk::Device, - _validation_cache: ValidationCacheEXT, - _p_data_size: *mut usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_validation_cache_data_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetValidationCacheDataEXT\0"); - let val = _f(cname); - if val.is_null() { - get_validation_cache_data_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_validation_cache device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_descriptor_indexing"] - pub mod descriptor_indexing { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_indexing\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_shader_viewport_index_layer"] - pub mod shader_viewport_index_layer { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_viewport_index_layer\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_filter_cubic"] - pub mod filter_cubic { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_filter_cubic\0") }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_EXT_global_priority"] - pub mod global_priority { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_external_memory_host"] - pub mod external_memory_host { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_host\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryHostPointerPropertiesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - handle_type: ExternalMemoryHandleTypeFlags, - p_host_pointer: *const c_void, - p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_external_memory_host device-level function pointers"] - pub struct DeviceFn { - pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_memory_host_pointer_properties_ext: unsafe { - unsafe extern "system" fn get_memory_host_pointer_properties_ext( - _device: crate::vk::Device, - _handle_type: ExternalMemoryHandleTypeFlags, - _p_host_pointer: *const c_void, - _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_host_pointer_properties_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetMemoryHostPointerPropertiesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_memory_host_pointer_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_external_memory_host device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_calibrated_timestamps"] - pub mod calibrated_timestamps { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_calibrated_timestamps\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_time_domain_count: *mut u32, - p_time_domains: *mut TimeDomainKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_calibrated_timestamps instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_calibrateable_time_domains_ext: - PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_calibrateable_time_domains_ext: unsafe { - unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext( - _physical_device: PhysicalDevice, - _p_time_domain_count: *mut u32, - _p_time_domains: *mut TimeDomainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_calibrateable_time_domains_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_calibrateable_time_domains_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_calibrated_timestamps instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkGetCalibratedTimestampsKHR = unsafe extern "system" fn( - device: crate::vk::Device, - timestamp_count: u32, - p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, - p_timestamps: *mut u64, - p_max_deviation: *mut u64, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_calibrated_timestamps device-level function pointers"] - pub struct DeviceFn { - pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_calibrated_timestamps_ext: unsafe { - unsafe extern "system" fn get_calibrated_timestamps_ext( - _device: crate::vk::Device, - _timestamp_count: u32, - _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, - _p_timestamps: *mut u64, - _p_max_deviation: *mut u64, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_calibrated_timestamps_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsEXT\0"); - let val = _f(cname); - if val.is_null() { - get_calibrated_timestamps_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_calibrated_timestamps device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_vertex_attribute_divisor"] - pub mod vertex_attribute_divisor { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_attribute_divisor\0") }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_EXT_pipeline_creation_feedback"] - pub mod pipeline_creation_feedback { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_creation_feedback\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_pci_bus_info"] - pub mod pci_bus_info { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pci_bus_info\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_metal_surface"] - pub mod metal_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateMetalSurfaceEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_metal_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_metal_surface_ext: unsafe { - unsafe extern "system" fn create_metal_surface_ext( - _instance: crate::vk::Instance, - _p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_metal_surface_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0"); - let val = _f(cname); - if val.is_null() { - create_metal_surface_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_metal_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_fragment_density_map"] - pub mod fragment_density_map { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_scalar_block_layout"] - pub mod scalar_block_layout { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_scalar_block_layout\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_subgroup_size_control"] - pub mod subgroup_size_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subgroup_size_control\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_shader_image_atomic_int64"] - pub mod shader_image_atomic_int64 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_memory_budget"] - pub mod memory_budget { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_budget\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_memory_priority"] - pub mod memory_priority { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_priority\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_buffer_device_address"] - pub mod buffer_device_address { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_buffer_device_address\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetBufferDeviceAddress = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const BufferDeviceAddressInfo<'_>, - ) -> DeviceAddress; - #[derive(Clone)] - #[doc = "Raw VK_EXT_buffer_device_address device-level function pointers"] - pub struct DeviceFn { - pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_buffer_device_address_ext: unsafe { - unsafe extern "system" fn get_buffer_device_address_ext( - _device: crate::vk::Device, - _p_info: *const BufferDeviceAddressInfo<'_>, - ) -> DeviceAddress { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_device_address_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressEXT\0"); - let val = _f(cname); - if val.is_null() { - get_buffer_device_address_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_buffer_device_address device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_tooling_info"] - pub mod tooling_info { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_tooling_info\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceToolProperties = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_tool_count: *mut u32, - p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_tooling_info instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolProperties, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_tool_properties_ext: unsafe { - unsafe extern "system" fn get_physical_device_tool_properties_ext( - _physical_device: PhysicalDevice, - _p_tool_count: *mut u32, - _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_tool_properties_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceToolPropertiesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_tool_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_tooling_info instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_separate_stencil_usage"] - pub mod separate_stencil_usage { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_separate_stencil_usage\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_validation_features"] - pub mod validation_features { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_features\0") }; - pub const SPEC_VERSION: u32 = 6u32; - } - #[doc = "VK_EXT_fragment_shader_interlock"] - pub mod fragment_shader_interlock { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_shader_interlock\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_ycbcr_image_arrays"] - pub mod ycbcr_image_arrays { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_image_arrays\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_provoking_vertex"] - pub mod provoking_vertex { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_provoking_vertex\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_full_screen_exclusive"] - pub mod full_screen_exclusive { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_full_screen_exclusive\0") }; - pub const SPEC_VERSION: u32 = 4u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - p_present_mode_count: *mut u32, - p_present_modes: *mut PresentModeKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_full_screen_exclusive instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_surface_present_modes2_ext: - PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_surface_present_modes2_ext: unsafe { - unsafe extern "system" fn get_physical_device_surface_present_modes2_ext( - _physical_device: PhysicalDevice, - _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - _p_present_mode_count: *mut u32, - _p_present_modes: *mut PresentModeKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_present_modes2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_present_modes2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_full_screen_exclusive instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireFullScreenExclusiveModeEXT = - unsafe extern "system" fn(device: crate::vk::Device, swapchain: SwapchainKHR) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkReleaseFullScreenExclusiveModeEXT = - unsafe extern "system" fn(device: crate::vk::Device, swapchain: SwapchainKHR) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceGroupSurfacePresentModes2EXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - p_modes: *mut DeviceGroupPresentModeFlagsKHR, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_full_screen_exclusive device-level function pointers"] - pub struct DeviceFn { - pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT, - pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT, - pub get_device_group_surface_present_modes2_ext: - PFN_vkGetDeviceGroupSurfacePresentModes2EXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - acquire_full_screen_exclusive_mode_ext: unsafe { - unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_full_screen_exclusive_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkAcquireFullScreenExclusiveModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - acquire_full_screen_exclusive_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - release_full_screen_exclusive_mode_ext: unsafe { - unsafe extern "system" fn release_full_screen_exclusive_mode_ext( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(release_full_screen_exclusive_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkReleaseFullScreenExclusiveModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - release_full_screen_exclusive_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_surface_present_modes2_ext: unsafe { - unsafe extern "system" fn get_device_group_surface_present_modes2_ext( - _device: crate::vk::Device, - _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - _p_modes: *mut DeviceGroupPresentModeFlagsKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_surface_present_modes2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupSurfacePresentModes2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_group_surface_present_modes2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_full_screen_exclusive device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_headless_surface"] - pub mod headless_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_headless_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateHeadlessSurfaceEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_headless_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_headless_surface_ext: unsafe { - unsafe extern "system" fn create_headless_surface_ext( - _instance: crate::vk::Instance, - _p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_headless_surface_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateHeadlessSurfaceEXT\0"); - let val = _f(cname); - if val.is_null() { - create_headless_surface_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_headless_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_line_rasterization"] - pub mod line_rasterization { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_line_rasterization\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetLineStippleKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - line_stipple_factor: u32, - line_stipple_pattern: u16, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_line_rasterization device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_line_stipple_ext: unsafe { - unsafe extern "system" fn cmd_set_line_stipple_ext( - _command_buffer: CommandBuffer, - _line_stipple_factor: u32, - _line_stipple_pattern: u16, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_line_stipple_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_line_stipple_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_line_rasterization device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_shader_atomic_float"] - pub mod shader_atomic_float { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_host_query_reset"] - pub mod host_query_reset { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_query_reset\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkResetQueryPool = unsafe extern "system" fn( - device: crate::vk::Device, - query_pool: QueryPool, - first_query: u32, - query_count: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_host_query_reset device-level function pointers"] - pub struct DeviceFn { - pub reset_query_pool_ext: PFN_vkResetQueryPool, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - reset_query_pool_ext: unsafe { - unsafe extern "system" fn reset_query_pool_ext( - _device: crate::vk::Device, - _query_pool: QueryPool, - _first_query: u32, - _query_count: u32, - ) { - panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0"); - let val = _f(cname); - if val.is_null() { - reset_query_pool_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_host_query_reset device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_index_type_uint8"] - pub mod index_type_uint8 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_index_type_uint8\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_extended_dynamic_state"] - pub mod extended_dynamic_state { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCullMode = - unsafe extern "system" fn(command_buffer: CommandBuffer, cull_mode: CullModeFlags); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetFrontFace = - unsafe extern "system" fn(command_buffer: CommandBuffer, front_face: FrontFace); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPrimitiveTopology = unsafe extern "system" fn( - command_buffer: CommandBuffer, - primitive_topology: PrimitiveTopology, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetViewportWithCount = unsafe extern "system" fn( - command_buffer: CommandBuffer, - viewport_count: u32, - p_viewports: *const Viewport, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetScissorWithCount = unsafe extern "system" fn( - command_buffer: CommandBuffer, - scissor_count: u32, - p_scissors: *const Rect2D, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindVertexBuffers2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_binding: u32, - binding_count: u32, - p_buffers: *const Buffer, - p_offsets: *const DeviceSize, - p_sizes: *const DeviceSize, - p_strides: *const DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthTestEnable = - unsafe extern "system" fn(command_buffer: CommandBuffer, depth_test_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthWriteEnable = - unsafe extern "system" fn(command_buffer: CommandBuffer, depth_write_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthCompareOp = - unsafe extern "system" fn(command_buffer: CommandBuffer, depth_compare_op: CompareOp); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthBoundsTestEnable = unsafe extern "system" fn( - command_buffer: CommandBuffer, - depth_bounds_test_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetStencilTestEnable = - unsafe extern "system" fn(command_buffer: CommandBuffer, stencil_test_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetStencilOp = unsafe extern "system" fn( - command_buffer: CommandBuffer, - face_mask: StencilFaceFlags, - fail_op: StencilOp, - pass_op: StencilOp, - depth_fail_op: StencilOp, - compare_op: CompareOp, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_extended_dynamic_state device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullMode, - pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFace, - pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopology, - pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCount, - pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCount, - pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2, - pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnable, - pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnable, - pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOp, - pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnable, - pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnable, - pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOp, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_cull_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_cull_mode_ext( - _command_buffer: CommandBuffer, - _cull_mode: CullModeFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_cull_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_cull_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_front_face_ext: unsafe { - unsafe extern "system" fn cmd_set_front_face_ext( - _command_buffer: CommandBuffer, - _front_face: FrontFace, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_front_face_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_front_face_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_primitive_topology_ext: unsafe { - unsafe extern "system" fn cmd_set_primitive_topology_ext( - _command_buffer: CommandBuffer, - _primitive_topology: PrimitiveTopology, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_primitive_topology_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_primitive_topology_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_with_count_ext: unsafe { - unsafe extern "system" fn cmd_set_viewport_with_count_ext( - _command_buffer: CommandBuffer, - _viewport_count: u32, - _p_viewports: *const Viewport, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_with_count_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCountEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_with_count_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_scissor_with_count_ext: unsafe { - unsafe extern "system" fn cmd_set_scissor_with_count_ext( - _command_buffer: CommandBuffer, - _scissor_count: u32, - _p_scissors: *const Rect2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_scissor_with_count_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCountEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_scissor_with_count_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_vertex_buffers2_ext: unsafe { - unsafe extern "system" fn cmd_bind_vertex_buffers2_ext( - _command_buffer: CommandBuffer, - _first_binding: u32, - _binding_count: u32, - _p_buffers: *const Buffer, - _p_offsets: *const DeviceSize, - _p_sizes: *const DeviceSize, - _p_strides: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_vertex_buffers2_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2EXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_vertex_buffers2_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_test_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_test_enable_ext( - _command_buffer: CommandBuffer, - _depth_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_test_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_test_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_write_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_write_enable_ext( - _command_buffer: CommandBuffer, - _depth_write_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_write_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_write_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_compare_op_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_compare_op_ext( - _command_buffer: CommandBuffer, - _depth_compare_op: CompareOp, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_compare_op_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_compare_op_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bounds_test_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext( - _command_buffer: CommandBuffer, - _depth_bounds_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bounds_test_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDepthBoundsTestEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bounds_test_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_test_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_stencil_test_enable_ext( - _command_buffer: CommandBuffer, - _stencil_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_test_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_test_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_op_ext: unsafe { - unsafe extern "system" fn cmd_set_stencil_op_ext( - _command_buffer: CommandBuffer, - _face_mask: StencilFaceFlags, - _fail_op: StencilOp, - _pass_op: StencilOp, - _depth_fail_op: StencilOp, - _compare_op: CompareOp, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_op_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_op_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_extended_dynamic_state device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_host_image_copy"] - pub mod host_image_copy { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_image_copy\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyMemoryToImageEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyImageToMemoryEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyImageToImageEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkTransitionImageLayoutEXT = unsafe extern "system" fn( - device: crate::vk::Device, - transition_count: u32, - p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageSubresourceLayout2KHR = unsafe extern "system" fn( - device: crate::vk::Device, - image: Image, - p_subresource: *const ImageSubresource2KHR<'_>, - p_layout: *mut SubresourceLayout2KHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_host_image_copy device-level function pointers"] - pub struct DeviceFn { - pub copy_memory_to_image_ext: PFN_vkCopyMemoryToImageEXT, - pub copy_image_to_memory_ext: PFN_vkCopyImageToMemoryEXT, - pub copy_image_to_image_ext: PFN_vkCopyImageToImageEXT, - pub transition_image_layout_ext: PFN_vkTransitionImageLayoutEXT, - pub get_image_subresource_layout2_ext: PFN_vkGetImageSubresourceLayout2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - copy_memory_to_image_ext: unsafe { - unsafe extern "system" fn copy_memory_to_image_ext( - _device: crate::vk::Device, - _p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_memory_to_image_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToImageEXT\0"); - let val = _f(cname); - if val.is_null() { - copy_memory_to_image_ext - } else { - ::core::mem::transmute(val) - } - }, - copy_image_to_memory_ext: unsafe { - unsafe extern "system" fn copy_image_to_memory_ext( - _device: crate::vk::Device, - _p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_image_to_memory_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToMemoryEXT\0"); - let val = _f(cname); - if val.is_null() { - copy_image_to_memory_ext - } else { - ::core::mem::transmute(val) - } - }, - copy_image_to_image_ext: unsafe { - unsafe extern "system" fn copy_image_to_image_ext( - _device: crate::vk::Device, - _p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_image_to_image_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyImageToImageEXT\0"); - let val = _f(cname); - if val.is_null() { - copy_image_to_image_ext - } else { - ::core::mem::transmute(val) - } - }, - transition_image_layout_ext: unsafe { - unsafe extern "system" fn transition_image_layout_ext( - _device: crate::vk::Device, - _transition_count: u32, - _p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(transition_image_layout_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkTransitionImageLayoutEXT\0"); - let val = _f(cname); - if val.is_null() { - transition_image_layout_ext - } else { - ::core::mem::transmute(val) - } - }, - get_image_subresource_layout2_ext: unsafe { - unsafe extern "system" fn get_image_subresource_layout2_ext( - _device: crate::vk::Device, - _image: Image, - _p_subresource: *const ImageSubresource2KHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_subresource_layout2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageSubresourceLayout2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_subresource_layout2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_host_image_copy device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_map_memory_placed"] - pub mod map_memory_placed { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_map_memory_placed\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_shader_atomic_float2"] - pub mod shader_atomic_float2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_surface_maintenance1"] - pub mod surface_maintenance1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_surface_maintenance1\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_swapchain_maintenance1"] - pub mod swapchain_maintenance1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_maintenance1\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkReleaseSwapchainImagesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_swapchain_maintenance1 device-level function pointers"] - pub struct DeviceFn { - pub release_swapchain_images_ext: PFN_vkReleaseSwapchainImagesEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - release_swapchain_images_ext: unsafe { - unsafe extern "system" fn release_swapchain_images_ext( - _device: crate::vk::Device, - _p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(release_swapchain_images_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkReleaseSwapchainImagesEXT\0"); - let val = _f(cname); - if val.is_null() { - release_swapchain_images_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_swapchain_maintenance1 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_shader_demote_to_helper_invocation"] - pub mod shader_demote_to_helper_invocation { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_demote_to_helper_invocation\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_texel_buffer_alignment"] - pub mod texel_buffer_alignment { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_texel_buffer_alignment\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_depth_bias_control"] - pub mod depth_bias_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_bias_control\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthBias2EXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_depth_bias_info: *const DepthBiasInfoEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_depth_bias_control device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_depth_bias2_ext: PFN_vkCmdSetDepthBias2EXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_depth_bias2_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_bias2_ext( - _command_buffer: CommandBuffer, - _p_depth_bias_info: *const DepthBiasInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bias2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBias2EXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bias2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_depth_bias_control device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_device_memory_report"] - pub mod device_memory_report { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_memory_report\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_acquire_drm_display"] - pub mod acquire_drm_display { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_drm_display\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireDrmDisplayEXT = unsafe extern "system" fn( - physical_device: PhysicalDevice, - drm_fd: i32, - display: DisplayKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDrmDisplayEXT = unsafe extern "system" fn( - physical_device: PhysicalDevice, - drm_fd: i32, - connector_id: u32, - display: *mut DisplayKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_acquire_drm_display instance-level function pointers"] - pub struct InstanceFn { - pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT, - pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - acquire_drm_display_ext: unsafe { - unsafe extern "system" fn acquire_drm_display_ext( - _physical_device: PhysicalDevice, - _drm_fd: i32, - _display: DisplayKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_drm_display_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireDrmDisplayEXT\0"); - let val = _f(cname); - if val.is_null() { - acquire_drm_display_ext - } else { - ::core::mem::transmute(val) - } - }, - get_drm_display_ext: unsafe { - unsafe extern "system" fn get_drm_display_ext( - _physical_device: PhysicalDevice, - _drm_fd: i32, - _connector_id: u32, - _display: *mut DisplayKHR, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_drm_display_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDrmDisplayEXT\0"); - let val = _f(cname); - if val.is_null() { - get_drm_display_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_acquire_drm_display instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_robustness2"] - pub mod robustness2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_robustness2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_custom_border_color"] - pub mod custom_border_color { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_custom_border_color\0") }; - pub const SPEC_VERSION: u32 = 12u32; - } - #[doc = "VK_EXT_private_data"] - pub mod private_data { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_private_data\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreatePrivateDataSlot = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const PrivateDataSlotCreateInfo<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_private_data_slot: *mut PrivateDataSlot, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyPrivateDataSlot = unsafe extern "system" fn( - device: crate::vk::Device, - private_data_slot: PrivateDataSlot, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkSetPrivateData = unsafe extern "system" fn( - device: crate::vk::Device, - object_type: ObjectType, - object_handle: u64, - private_data_slot: PrivateDataSlot, - data: u64, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPrivateData = unsafe extern "system" fn( - device: crate::vk::Device, - object_type: ObjectType, - object_handle: u64, - private_data_slot: PrivateDataSlot, - p_data: *mut u64, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_private_data device-level function pointers"] - pub struct DeviceFn { - pub create_private_data_slot_ext: PFN_vkCreatePrivateDataSlot, - pub destroy_private_data_slot_ext: PFN_vkDestroyPrivateDataSlot, - pub set_private_data_ext: PFN_vkSetPrivateData, - pub get_private_data_ext: PFN_vkGetPrivateData, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_private_data_slot_ext: unsafe { - unsafe extern "system" fn create_private_data_slot_ext( - _device: crate::vk::Device, - _p_create_info: *const PrivateDataSlotCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_private_data_slot: *mut PrivateDataSlot, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_private_data_slot_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreatePrivateDataSlotEXT\0"); - let val = _f(cname); - if val.is_null() { - create_private_data_slot_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_private_data_slot_ext: unsafe { - unsafe extern "system" fn destroy_private_data_slot_ext( - _device: crate::vk::Device, - _private_data_slot: PrivateDataSlot, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_private_data_slot_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyPrivateDataSlotEXT\0"); - let val = _f(cname); - if val.is_null() { - destroy_private_data_slot_ext - } else { - ::core::mem::transmute(val) - } - }, - set_private_data_ext: unsafe { - unsafe extern "system" fn set_private_data_ext( - _device: crate::vk::Device, - _object_type: ObjectType, - _object_handle: u64, - _private_data_slot: PrivateDataSlot, - _data: u64, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(set_private_data_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateDataEXT\0"); - let val = _f(cname); - if val.is_null() { - set_private_data_ext - } else { - ::core::mem::transmute(val) - } - }, - get_private_data_ext: unsafe { - unsafe extern "system" fn get_private_data_ext( - _device: crate::vk::Device, - _object_type: ObjectType, - _object_handle: u64, - _private_data_slot: PrivateDataSlot, - _p_data: *mut u64, - ) { - panic!(concat!("Unable to load ", stringify!(get_private_data_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateDataEXT\0"); - let val = _f(cname); - if val.is_null() { - get_private_data_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_private_data device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_pipeline_creation_cache_control"] - pub mod pipeline_creation_cache_control { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_creation_cache_control\0") - }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_EXT_metal_objects"] - pub mod metal_objects { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_objects\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkExportMetalObjectsEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_metal_objects device-level function pointers"] - pub struct DeviceFn { - pub export_metal_objects_ext: PFN_vkExportMetalObjectsEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - export_metal_objects_ext: unsafe { - unsafe extern "system" fn export_metal_objects_ext( - _device: crate::vk::Device, - _p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(export_metal_objects_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkExportMetalObjectsEXT\0"); - let val = _f(cname); - if val.is_null() { - export_metal_objects_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_metal_objects device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_descriptor_buffer"] - pub mod descriptor_buffer { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_buffer\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDescriptorSetLayoutSizeEXT = unsafe extern "system" fn( - device: crate::vk::Device, - layout: DescriptorSetLayout, - p_layout_size_in_bytes: *mut DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = unsafe extern "system" fn( - device: crate::vk::Device, - layout: DescriptorSetLayout, - binding: u32, - p_offset: *mut DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDescriptorEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_descriptor_info: *const DescriptorGetInfoEXT<'_>, - data_size: usize, - p_descriptor: *mut c_void, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindDescriptorBuffersEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer_count: u32, - p_binding_infos: *const DescriptorBufferBindingInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDescriptorBufferOffsetsEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - pipeline_bind_point: PipelineBindPoint, - layout: PipelineLayout, - first_set: u32, - set_count: u32, - p_buffer_indices: *const u32, - p_offsets: *const DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - pipeline_bind_point: PipelineBindPoint, - layout: PipelineLayout, - set: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = - unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const BufferCaptureDescriptorDataInfoEXT<'_>, - p_data: *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>, - p_data: *mut c_void, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = - unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const ImageViewCaptureDescriptorDataInfoEXT<'_>, - p_data: *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = - unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const SamplerCaptureDescriptorDataInfoEXT<'_>, - p_data: *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = - unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT<'_>, - p_data: *mut c_void, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_descriptor_buffer device-level function pointers"] - pub struct DeviceFn { - pub get_descriptor_set_layout_size_ext: PFN_vkGetDescriptorSetLayoutSizeEXT, - pub get_descriptor_set_layout_binding_offset_ext: - PFN_vkGetDescriptorSetLayoutBindingOffsetEXT, - pub get_descriptor_ext: PFN_vkGetDescriptorEXT, - pub cmd_bind_descriptor_buffers_ext: PFN_vkCmdBindDescriptorBuffersEXT, - pub cmd_set_descriptor_buffer_offsets_ext: PFN_vkCmdSetDescriptorBufferOffsetsEXT, - pub cmd_bind_descriptor_buffer_embedded_samplers_ext: - PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT, - pub get_buffer_opaque_capture_descriptor_data_ext: - PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT, - pub get_image_opaque_capture_descriptor_data_ext: - PFN_vkGetImageOpaqueCaptureDescriptorDataEXT, - pub get_image_view_opaque_capture_descriptor_data_ext: - PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT, - pub get_sampler_opaque_capture_descriptor_data_ext: - PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT, - pub get_acceleration_structure_opaque_capture_descriptor_data_ext: - PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_descriptor_set_layout_size_ext: unsafe { - unsafe extern "system" fn get_descriptor_set_layout_size_ext( - _device: crate::vk::Device, - _layout: DescriptorSetLayout, - _p_layout_size_in_bytes: *mut DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_descriptor_set_layout_size_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDescriptorSetLayoutSizeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_descriptor_set_layout_size_ext - } else { - ::core::mem::transmute(val) - } - }, - get_descriptor_set_layout_binding_offset_ext: unsafe { - unsafe extern "system" fn get_descriptor_set_layout_binding_offset_ext( - _device: crate::vk::Device, - _layout: DescriptorSetLayout, - _binding: u32, - _p_offset: *mut DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_descriptor_set_layout_binding_offset_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDescriptorSetLayoutBindingOffsetEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_descriptor_set_layout_binding_offset_ext - } else { - ::core::mem::transmute(val) - } - }, - get_descriptor_ext: unsafe { - unsafe extern "system" fn get_descriptor_ext( - _device: crate::vk::Device, - _p_descriptor_info: *const DescriptorGetInfoEXT<'_>, - _data_size: usize, - _p_descriptor: *mut c_void, - ) { - panic!(concat!("Unable to load ", stringify!(get_descriptor_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDescriptorEXT\0"); - let val = _f(cname); - if val.is_null() { - get_descriptor_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_descriptor_buffers_ext: unsafe { - unsafe extern "system" fn cmd_bind_descriptor_buffers_ext( - _command_buffer: CommandBuffer, - _buffer_count: u32, - _p_binding_infos: *const DescriptorBufferBindingInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_descriptor_buffers_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorBuffersEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_descriptor_buffers_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_descriptor_buffer_offsets_ext: unsafe { - unsafe extern "system" fn cmd_set_descriptor_buffer_offsets_ext( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _layout: PipelineLayout, - _first_set: u32, - _set_count: u32, - _p_buffer_indices: *const u32, - _p_offsets: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_descriptor_buffer_offsets_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDescriptorBufferOffsetsEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_descriptor_buffer_offsets_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_descriptor_buffer_embedded_samplers_ext: unsafe { - unsafe extern "system" fn cmd_bind_descriptor_buffer_embedded_samplers_ext( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _layout: PipelineLayout, - _set: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_descriptor_buffer_embedded_samplers_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBindDescriptorBufferEmbeddedSamplersEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_bind_descriptor_buffer_embedded_samplers_ext - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_opaque_capture_descriptor_data_ext: unsafe { - unsafe extern "system" fn get_buffer_opaque_capture_descriptor_data_ext( - _device: crate::vk::Device, - _p_info: *const BufferCaptureDescriptorDataInfoEXT<'_>, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_opaque_capture_descriptor_data_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetBufferOpaqueCaptureDescriptorDataEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_buffer_opaque_capture_descriptor_data_ext - } else { - ::core::mem::transmute(val) - } - }, - get_image_opaque_capture_descriptor_data_ext: unsafe { - unsafe extern "system" fn get_image_opaque_capture_descriptor_data_ext( - _device: crate::vk::Device, - _p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_image_opaque_capture_descriptor_data_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageOpaqueCaptureDescriptorDataEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_opaque_capture_descriptor_data_ext - } else { - ::core::mem::transmute(val) - } - }, - get_image_view_opaque_capture_descriptor_data_ext: unsafe { - unsafe extern "system" fn get_image_view_opaque_capture_descriptor_data_ext( - _device: crate::vk::Device, - _p_info: *const ImageViewCaptureDescriptorDataInfoEXT<'_>, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_image_view_opaque_capture_descriptor_data_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageViewOpaqueCaptureDescriptorDataEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_view_opaque_capture_descriptor_data_ext - } else { - ::core::mem::transmute(val) - } - }, - get_sampler_opaque_capture_descriptor_data_ext: unsafe { - unsafe extern "system" fn get_sampler_opaque_capture_descriptor_data_ext( - _device: crate::vk::Device, - _p_info: *const SamplerCaptureDescriptorDataInfoEXT<'_>, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_sampler_opaque_capture_descriptor_data_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetSamplerOpaqueCaptureDescriptorDataEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_sampler_opaque_capture_descriptor_data_ext - } else { - ::core::mem::transmute(val) - } - }, - get_acceleration_structure_opaque_capture_descriptor_data_ext: unsafe { - unsafe extern "system" fn get_acceleration_structure_opaque_capture_descriptor_data_ext( - _device: crate::vk::Device, - _p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT<'_>, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!( - get_acceleration_structure_opaque_capture_descriptor_data_ext - ) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_opaque_capture_descriptor_data_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_descriptor_buffer device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_graphics_pipeline_library"] - pub mod graphics_pipeline_library { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_graphics_pipeline_library\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_mesh_shader"] - pub mod mesh_shader { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mesh_shader\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMeshTasksEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - group_count_x: u32, - group_count_y: u32, - group_count_z: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMeshTasksIndirectEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - draw_count: u32, - stride: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMeshTasksIndirectCountEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - count_buffer: Buffer, - count_buffer_offset: DeviceSize, - max_draw_count: u32, - stride: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_mesh_shader device-level function pointers"] - pub struct DeviceFn { - pub cmd_draw_mesh_tasks_ext: PFN_vkCmdDrawMeshTasksEXT, - pub cmd_draw_mesh_tasks_indirect_ext: PFN_vkCmdDrawMeshTasksIndirectEXT, - pub cmd_draw_mesh_tasks_indirect_count_ext: PFN_vkCmdDrawMeshTasksIndirectCountEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_mesh_tasks_ext: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_ext( - _command_buffer: CommandBuffer, - _group_count_x: u32, - _group_count_y: u32, - _group_count_z: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_mesh_tasks_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_mesh_tasks_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_mesh_tasks_indirect_ext: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_ext( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_mesh_tasks_indirect_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_mesh_tasks_indirect_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_mesh_tasks_indirect_count_ext: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_ext( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_mesh_tasks_indirect_count_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDrawMeshTasksIndirectCountEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_draw_mesh_tasks_indirect_count_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_mesh_shader device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_ycbcr_2plane_444_formats"] - pub mod ycbcr_2plane_444_formats { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_2plane_444_formats\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_fragment_density_map2"] - pub mod fragment_density_map2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_image_robustness"] - pub mod image_robustness { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_robustness\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_image_compression_control"] - pub mod image_compression_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_compression_control\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[derive(Clone)] - #[doc = "Raw VK_EXT_image_compression_control device-level function pointers"] - pub struct DeviceFn { - pub get_image_subresource_layout2_ext: - crate::vk::ext::host_image_copy::PFN_vkGetImageSubresourceLayout2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_image_subresource_layout2_ext: unsafe { - unsafe extern "system" fn get_image_subresource_layout2_ext( - _device: crate::vk::Device, - _image: Image, - _p_subresource: *const ImageSubresource2KHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_subresource_layout2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageSubresourceLayout2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_subresource_layout2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_image_compression_control device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_attachment_feedback_loop_layout"] - pub mod attachment_feedback_loop_layout { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_attachment_feedback_loop_layout\0") - }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_4444_formats"] - pub mod _4444_formats { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_4444_formats\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_device_fault"] - pub mod device_fault { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_fault\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceFaultInfoEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_fault_counts: *mut DeviceFaultCountsEXT<'_>, - p_fault_info: *mut DeviceFaultInfoEXT<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_device_fault device-level function pointers"] - pub struct DeviceFn { - pub get_device_fault_info_ext: PFN_vkGetDeviceFaultInfoEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_device_fault_info_ext: unsafe { - unsafe extern "system" fn get_device_fault_info_ext( - _device: crate::vk::Device, - _p_fault_counts: *mut DeviceFaultCountsEXT<'_>, - _p_fault_info: *mut DeviceFaultInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_fault_info_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceFaultInfoEXT\0"); - let val = _f(cname); - if val.is_null() { - get_device_fault_info_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_device_fault device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_rgba10x6_formats"] - pub mod rgba10x6_formats { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_rgba10x6_formats\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_directfb_surface"] - pub mod directfb_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_directfb_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDirectFBSurfaceEXT = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - dfb: *mut IDirectFB, - ) -> Bool32; - #[derive(Clone)] - #[doc = "Raw VK_EXT_directfb_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT, - pub get_physical_device_direct_fb_presentation_support_ext: - PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_direct_fb_surface_ext: unsafe { - unsafe extern "system" fn create_direct_fb_surface_ext( - _instance: crate::vk::Instance, - _p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_direct_fb_surface_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateDirectFBSurfaceEXT\0"); - let val = _f(cname); - if val.is_null() { - create_direct_fb_surface_ext - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_direct_fb_presentation_support_ext: unsafe { - unsafe extern "system" fn get_physical_device_direct_fb_presentation_support_ext( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _dfb: *mut IDirectFB, - ) -> Bool32 { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_direct_fb_presentation_support_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_direct_fb_presentation_support_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_directfb_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_EXT_vertex_input_dynamic_state"] - pub mod vertex_input_dynamic_state { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_input_dynamic_state\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetVertexInputEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - vertex_binding_description_count: u32, - p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT<'_>, - vertex_attribute_description_count: u32, - p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_vertex_input_dynamic_state device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_vertex_input_ext: unsafe { - unsafe extern "system" fn cmd_set_vertex_input_ext( - _command_buffer: CommandBuffer, - _vertex_binding_description_count: u32, - _p_vertex_binding_descriptions : * const VertexInputBindingDescription2EXT < '_ >, - _vertex_attribute_description_count: u32, - _p_vertex_attribute_descriptions : * const VertexInputAttributeDescription2EXT < '_ >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_vertex_input_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_vertex_input_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_vertex_input_dynamic_state device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_physical_device_drm"] - pub mod physical_device_drm { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_physical_device_drm\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_device_address_binding_report"] - pub mod device_address_binding_report { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_address_binding_report\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_depth_clip_control"] - pub mod depth_clip_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_control\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_primitive_topology_list_restart"] - pub mod primitive_topology_list_restart { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_primitive_topology_list_restart\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_pipeline_properties"] - pub mod pipeline_properties { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_properties\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - #[doc = "Implemented for all types that can be passed as argument to `pipeline_properties` in [`PFN_vkGetPipelinePropertiesEXT`]"] - pub unsafe trait GetPipelinePropertiesEXTParamPipelineProperties {} - unsafe impl GetPipelinePropertiesEXTParamPipelineProperties - for PipelinePropertiesIdentifierEXT<'_> - { - } - #[allow(non_camel_case_types)] - pub type PFN_vkGetPipelinePropertiesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_pipeline_info: *const PipelineInfoEXT<'_>, - p_pipeline_properties: *mut BaseOutStructure<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_EXT_pipeline_properties device-level function pointers"] - pub struct DeviceFn { - pub get_pipeline_properties_ext: PFN_vkGetPipelinePropertiesEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_pipeline_properties_ext: unsafe { - unsafe extern "system" fn get_pipeline_properties_ext( - _device: crate::vk::Device, - _p_pipeline_info: *const PipelineInfoEXT<'_>, - _p_pipeline_properties: *mut BaseOutStructure<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_properties_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPipelinePropertiesEXT\0"); - let val = _f(cname); - if val.is_null() { - get_pipeline_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_pipeline_properties device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_frame_boundary"] - pub mod frame_boundary { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_frame_boundary\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_multisampled_render_to_single_sampled"] - pub mod multisampled_render_to_single_sampled { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_multisampled_render_to_single_sampled\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_extended_dynamic_state2"] - pub mod extended_dynamic_state2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPatchControlPointsEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, patch_control_points: u32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRasterizerDiscardEnable = unsafe extern "system" fn( - command_buffer: CommandBuffer, - rasterizer_discard_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthBiasEnable = - unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bias_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetLogicOpEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op: LogicOp); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPrimitiveRestartEnable = unsafe extern "system" fn( - command_buffer: CommandBuffer, - primitive_restart_enable: Bool32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_extended_dynamic_state2 device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT, - pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnable, - pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnable, - pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT, - pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnable, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_patch_control_points_ext: unsafe { - unsafe extern "system" fn cmd_set_patch_control_points_ext( - _command_buffer: CommandBuffer, - _patch_control_points: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_patch_control_points_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPatchControlPointsEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_patch_control_points_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterizer_discard_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext( - _command_buffer: CommandBuffer, - _rasterizer_discard_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterizer_discard_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRasterizerDiscardEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterizer_discard_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bias_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_bias_enable_ext( - _command_buffer: CommandBuffer, - _depth_bias_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bias_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bias_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_logic_op_ext: unsafe { - unsafe extern "system" fn cmd_set_logic_op_ext( - _command_buffer: CommandBuffer, - _logic_op: LogicOp, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_logic_op_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_primitive_restart_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_primitive_restart_enable_ext( - _command_buffer: CommandBuffer, - _primitive_restart_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_primitive_restart_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetPrimitiveRestartEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_primitive_restart_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_extended_dynamic_state2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_color_write_enable"] - pub mod color_write_enable { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_color_write_enable\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetColorWriteEnableEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - attachment_count: u32, - p_color_write_enables: *const Bool32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_color_write_enable device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_color_write_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_color_write_enable_ext( - _command_buffer: CommandBuffer, - _attachment_count: u32, - _p_color_write_enables: *const Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_write_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_write_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_color_write_enable device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_primitives_generated_query"] - pub mod primitives_generated_query { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_primitives_generated_query\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_global_priority_query"] - pub mod global_priority_query { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority_query\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_image_view_min_lod"] - pub mod image_view_min_lod { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_view_min_lod\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_multi_draw"] - pub mod multi_draw { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_multi_draw\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMultiEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - draw_count: u32, - p_vertex_info: *const MultiDrawInfoEXT, - instance_count: u32, - first_instance: u32, - stride: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMultiIndexedEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - draw_count: u32, - p_index_info: *const MultiDrawIndexedInfoEXT, - instance_count: u32, - first_instance: u32, - stride: u32, - p_vertex_offset: *const i32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_multi_draw device-level function pointers"] - pub struct DeviceFn { - pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT, - pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_multi_ext: unsafe { - unsafe extern "system" fn cmd_draw_multi_ext( - _command_buffer: CommandBuffer, - _draw_count: u32, - _p_vertex_info: *const MultiDrawInfoEXT, - _instance_count: u32, - _first_instance: u32, - _stride: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_draw_multi_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_multi_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_multi_indexed_ext: unsafe { - unsafe extern "system" fn cmd_draw_multi_indexed_ext( - _command_buffer: CommandBuffer, - _draw_count: u32, - _p_index_info: *const MultiDrawIndexedInfoEXT, - _instance_count: u32, - _first_instance: u32, - _stride: u32, - _p_vertex_offset: *const i32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_multi_indexed_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiIndexedEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_multi_indexed_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_multi_draw device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_image_2d_view_of_3d"] - pub mod image_2d_view_of_3d { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_2d_view_of_3d\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_shader_tile_image"] - pub mod shader_tile_image { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_tile_image\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_opacity_micromap"] - pub mod opacity_micromap { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_opacity_micromap\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateMicromapEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const MicromapCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_micromap: *mut MicromapEXT, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyMicromapEXT = unsafe extern "system" fn( - device: crate::vk::Device, - micromap: MicromapEXT, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBuildMicromapsEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - info_count: u32, - p_infos: *const MicromapBuildInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkBuildMicromapsEXT = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - info_count: u32, - p_infos: *const MicromapBuildInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyMicromapEXT = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - p_info: *const CopyMicromapInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyMicromapToMemoryEXT = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - p_info: *const CopyMicromapToMemoryInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyMemoryToMicromapEXT = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - p_info: *const CopyMemoryToMicromapInfoEXT<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkWriteMicromapsPropertiesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - micromap_count: u32, - p_micromaps: *const MicromapEXT, - query_type: QueryType, - data_size: usize, - p_data: *mut c_void, - stride: usize, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyMicromapEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const CopyMicromapInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyMicromapToMemoryEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const CopyMicromapToMemoryInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyMemoryToMicromapEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const CopyMemoryToMicromapInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWriteMicromapsPropertiesEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - micromap_count: u32, - p_micromaps: *const MicromapEXT, - query_type: QueryType, - query_pool: QueryPool, - first_query: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceMicromapCompatibilityEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_version_info: *const MicromapVersionInfoEXT<'_>, - p_compatibility: *mut AccelerationStructureCompatibilityKHR, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetMicromapBuildSizesEXT = unsafe extern "system" fn( - device: crate::vk::Device, - build_type: AccelerationStructureBuildTypeKHR, - p_build_info: *const MicromapBuildInfoEXT<'_>, - p_size_info: *mut MicromapBuildSizesInfoEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_opacity_micromap device-level function pointers"] - pub struct DeviceFn { - pub create_micromap_ext: PFN_vkCreateMicromapEXT, - pub destroy_micromap_ext: PFN_vkDestroyMicromapEXT, - pub cmd_build_micromaps_ext: PFN_vkCmdBuildMicromapsEXT, - pub build_micromaps_ext: PFN_vkBuildMicromapsEXT, - pub copy_micromap_ext: PFN_vkCopyMicromapEXT, - pub copy_micromap_to_memory_ext: PFN_vkCopyMicromapToMemoryEXT, - pub copy_memory_to_micromap_ext: PFN_vkCopyMemoryToMicromapEXT, - pub write_micromaps_properties_ext: PFN_vkWriteMicromapsPropertiesEXT, - pub cmd_copy_micromap_ext: PFN_vkCmdCopyMicromapEXT, - pub cmd_copy_micromap_to_memory_ext: PFN_vkCmdCopyMicromapToMemoryEXT, - pub cmd_copy_memory_to_micromap_ext: PFN_vkCmdCopyMemoryToMicromapEXT, - pub cmd_write_micromaps_properties_ext: PFN_vkCmdWriteMicromapsPropertiesEXT, - pub get_device_micromap_compatibility_ext: PFN_vkGetDeviceMicromapCompatibilityEXT, - pub get_micromap_build_sizes_ext: PFN_vkGetMicromapBuildSizesEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_micromap_ext: unsafe { - unsafe extern "system" fn create_micromap_ext( - _device: crate::vk::Device, - _p_create_info: *const MicromapCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_micromap: *mut MicromapEXT, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_micromap_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateMicromapEXT\0"); - let val = _f(cname); - if val.is_null() { - create_micromap_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_micromap_ext: unsafe { - unsafe extern "system" fn destroy_micromap_ext( - _device: crate::vk::Device, - _micromap: MicromapEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_micromap_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyMicromapEXT\0"); - let val = _f(cname); - if val.is_null() { - destroy_micromap_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_build_micromaps_ext: unsafe { - unsafe extern "system" fn cmd_build_micromaps_ext( - _command_buffer: CommandBuffer, - _info_count: u32, - _p_infos: *const MicromapBuildInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_build_micromaps_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBuildMicromapsEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_build_micromaps_ext - } else { - ::core::mem::transmute(val) - } - }, - build_micromaps_ext: unsafe { - unsafe extern "system" fn build_micromaps_ext( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _info_count: u32, - _p_infos: *const MicromapBuildInfoEXT<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(build_micromaps_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBuildMicromapsEXT\0"); - let val = _f(cname); - if val.is_null() { - build_micromaps_ext - } else { - ::core::mem::transmute(val) - } - }, - copy_micromap_ext: unsafe { - unsafe extern "system" fn copy_micromap_ext( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _p_info: *const CopyMicromapInfoEXT<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(copy_micromap_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapEXT\0"); - let val = _f(cname); - if val.is_null() { - copy_micromap_ext - } else { - ::core::mem::transmute(val) - } - }, - copy_micromap_to_memory_ext: unsafe { - unsafe extern "system" fn copy_micromap_to_memory_ext( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _p_info: *const CopyMicromapToMemoryInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_micromap_to_memory_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapToMemoryEXT\0"); - let val = _f(cname); - if val.is_null() { - copy_micromap_to_memory_ext - } else { - ::core::mem::transmute(val) - } - }, - copy_memory_to_micromap_ext: unsafe { - unsafe extern "system" fn copy_memory_to_micromap_ext( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _p_info: *const CopyMemoryToMicromapInfoEXT<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_memory_to_micromap_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCopyMemoryToMicromapEXT\0"); - let val = _f(cname); - if val.is_null() { - copy_memory_to_micromap_ext - } else { - ::core::mem::transmute(val) - } - }, - write_micromaps_properties_ext: unsafe { - unsafe extern "system" fn write_micromaps_properties_ext( - _device: crate::vk::Device, - _micromap_count: u32, - _p_micromaps: *const MicromapEXT, - _query_type: QueryType, - _data_size: usize, - _p_data: *mut c_void, - _stride: usize, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(write_micromaps_properties_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkWriteMicromapsPropertiesEXT\0"); - let val = _f(cname); - if val.is_null() { - write_micromaps_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_micromap_ext: unsafe { - unsafe extern "system" fn cmd_copy_micromap_ext( - _command_buffer: CommandBuffer, - _p_info: *const CopyMicromapInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_micromap_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_micromap_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_micromap_to_memory_ext: unsafe { - unsafe extern "system" fn cmd_copy_micromap_to_memory_ext( - _command_buffer: CommandBuffer, - _p_info: *const CopyMicromapToMemoryInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_micromap_to_memory_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMicromapToMemoryEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_micromap_to_memory_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_memory_to_micromap_ext: unsafe { - unsafe extern "system" fn cmd_copy_memory_to_micromap_ext( - _command_buffer: CommandBuffer, - _p_info: *const CopyMemoryToMicromapInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_memory_to_micromap_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryToMicromapEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_memory_to_micromap_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_micromaps_properties_ext: unsafe { - unsafe extern "system" fn cmd_write_micromaps_properties_ext( - _command_buffer: CommandBuffer, - _micromap_count: u32, - _p_micromaps: *const MicromapEXT, - _query_type: QueryType, - _query_pool: QueryPool, - _first_query: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_micromaps_properties_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdWriteMicromapsPropertiesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_write_micromaps_properties_ext - } else { - ::core::mem::transmute(val) - } - }, - get_device_micromap_compatibility_ext: unsafe { - unsafe extern "system" fn get_device_micromap_compatibility_ext( - _device: crate::vk::Device, - _p_version_info: *const MicromapVersionInfoEXT<'_>, - _p_compatibility: *mut AccelerationStructureCompatibilityKHR, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_micromap_compatibility_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceMicromapCompatibilityEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_micromap_compatibility_ext - } else { - ::core::mem::transmute(val) - } - }, - get_micromap_build_sizes_ext: unsafe { - unsafe extern "system" fn get_micromap_build_sizes_ext( - _device: crate::vk::Device, - _build_type: AccelerationStructureBuildTypeKHR, - _p_build_info: *const MicromapBuildInfoEXT<'_>, - _p_size_info: *mut MicromapBuildSizesInfoEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_micromap_build_sizes_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetMicromapBuildSizesEXT\0"); - let val = _f(cname); - if val.is_null() { - get_micromap_build_sizes_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_opacity_micromap device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_load_store_op_none"] - pub mod load_store_op_none { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_load_store_op_none\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_border_color_swizzle"] - pub mod border_color_swizzle { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_border_color_swizzle\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_pageable_device_local_memory"] - pub mod pageable_device_local_memory { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pageable_device_local_memory\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkSetDeviceMemoryPriorityEXT = unsafe extern "system" fn( - device: crate::vk::Device, - memory: DeviceMemory, - priority: f32, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_pageable_device_local_memory device-level function pointers"] - pub struct DeviceFn { - pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - set_device_memory_priority_ext: unsafe { - unsafe extern "system" fn set_device_memory_priority_ext( - _device: crate::vk::Device, - _memory: DeviceMemory, - _priority: f32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(set_device_memory_priority_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetDeviceMemoryPriorityEXT\0"); - let val = _f(cname); - if val.is_null() { - set_device_memory_priority_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_pageable_device_local_memory device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_image_sliced_view_of_3d"] - pub mod image_sliced_view_of_3d { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_sliced_view_of_3d\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_depth_clamp_zero_one"] - pub mod depth_clamp_zero_one { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clamp_zero_one\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_non_seamless_cube_map"] - pub mod non_seamless_cube_map { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_non_seamless_cube_map\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_image_compression_control_swapchain"] - pub mod image_compression_control_swapchain { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_compression_control_swapchain\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_nested_command_buffer"] - pub mod nested_command_buffer { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_nested_command_buffer\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_external_memory_acquire_unmodified"] - pub mod external_memory_acquire_unmodified { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_acquire_unmodified\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_extended_dynamic_state3"] - pub mod extended_dynamic_state3 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state3\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthClampEnableEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clamp_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPolygonModeEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, polygon_mode: PolygonMode); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRasterizationSamplesEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - rasterization_samples: SampleCountFlags, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetSampleMaskEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - samples: SampleCountFlags, - p_sample_mask: *const SampleMask, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetAlphaToCoverageEnableEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - alpha_to_coverage_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetAlphaToOneEnableEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, alpha_to_one_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetLogicOpEnableEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetColorBlendEnableEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_attachment: u32, - attachment_count: u32, - p_color_blend_enables: *const Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetColorBlendEquationEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_attachment: u32, - attachment_count: u32, - p_color_blend_equations: *const ColorBlendEquationEXT, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetColorWriteMaskEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_attachment: u32, - attachment_count: u32, - p_color_write_masks: *const ColorComponentFlags, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetTessellationDomainOriginEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - domain_origin: TessellationDomainOrigin, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRasterizationStreamEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, rasterization_stream: u32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetConservativeRasterizationModeEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - conservative_rasterization_mode: ConservativeRasterizationModeEXT, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - extra_primitive_overestimation_size: f32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthClipEnableEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clip_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetSampleLocationsEnableEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - sample_locations_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetColorBlendAdvancedEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_attachment: u32, - attachment_count: u32, - p_color_blend_advanced: *const ColorBlendAdvancedEXT, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetProvokingVertexModeEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - provoking_vertex_mode: ProvokingVertexModeEXT, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetLineRasterizationModeEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - line_rasterization_mode: LineRasterizationModeEXT, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetLineStippleEnableEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, stippled_line_enable: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDepthClipNegativeOneToOneEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, negative_one_to_one: Bool32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetViewportWScalingEnableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - viewport_w_scaling_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetViewportSwizzleNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_viewport: u32, - viewport_count: u32, - p_viewport_swizzles: *const ViewportSwizzleNV, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoverageToColorEnableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - coverage_to_color_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoverageToColorLocationNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - coverage_to_color_location: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoverageModulationModeNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - coverage_modulation_mode: CoverageModulationModeNV, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoverageModulationTableEnableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - coverage_modulation_table_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoverageModulationTableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - coverage_modulation_table_count: u32, - p_coverage_modulation_table: *const f32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetShadingRateImageEnableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - shading_rate_image_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRepresentativeFragmentTestEnableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - representative_fragment_test_enable: Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoverageReductionModeNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - coverage_reduction_mode: CoverageReductionModeNV, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_extended_dynamic_state3 device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT, - pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT, - pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT, - pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT, - pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT, - pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT, - pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT, - pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT, - pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT, - pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT, - pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT, - pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT, - pub cmd_set_conservative_rasterization_mode_ext: - PFN_vkCmdSetConservativeRasterizationModeEXT, - pub cmd_set_extra_primitive_overestimation_size_ext: - PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT, - pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT, - pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT, - pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT, - pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT, - pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT, - pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT, - pub cmd_set_depth_clip_negative_one_to_one_ext: - PFN_vkCmdSetDepthClipNegativeOneToOneEXT, - pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV, - pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV, - pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV, - pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV, - pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV, - pub cmd_set_coverage_modulation_table_enable_nv: - PFN_vkCmdSetCoverageModulationTableEnableNV, - pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV, - pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV, - pub cmd_set_representative_fragment_test_enable_nv: - PFN_vkCmdSetRepresentativeFragmentTestEnableNV, - pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_depth_clamp_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clamp_enable_ext( - _command_buffer: CommandBuffer, - _depth_clamp_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clamp_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clamp_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_polygon_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_polygon_mode_ext( - _command_buffer: CommandBuffer, - _polygon_mode: PolygonMode, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_polygon_mode_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_polygon_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterization_samples_ext: unsafe { - unsafe extern "system" fn cmd_set_rasterization_samples_ext( - _command_buffer: CommandBuffer, - _rasterization_samples: SampleCountFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterization_samples_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRasterizationSamplesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterization_samples_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_sample_mask_ext: unsafe { - unsafe extern "system" fn cmd_set_sample_mask_ext( - _command_buffer: CommandBuffer, - _samples: SampleCountFlags, - _p_sample_mask: *const SampleMask, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_sample_mask_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_sample_mask_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_alpha_to_coverage_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext( - _command_buffer: CommandBuffer, - _alpha_to_coverage_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_alpha_to_coverage_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetAlphaToCoverageEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_alpha_to_coverage_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_alpha_to_one_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext( - _command_buffer: CommandBuffer, - _alpha_to_one_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_alpha_to_one_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetAlphaToOneEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_alpha_to_one_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_logic_op_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_logic_op_enable_ext( - _command_buffer: CommandBuffer, - _logic_op_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_logic_op_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_logic_op_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_blend_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_color_blend_enable_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_blend_enables: *const Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_blend_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_blend_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_blend_equation_ext: unsafe { - unsafe extern "system" fn cmd_set_color_blend_equation_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_blend_equations: *const ColorBlendEquationEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_blend_equation_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEquationEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_blend_equation_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_write_mask_ext: unsafe { - unsafe extern "system" fn cmd_set_color_write_mask_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_write_masks: *const ColorComponentFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_write_mask_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_write_mask_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_tessellation_domain_origin_ext: unsafe { - unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext( - _command_buffer: CommandBuffer, - _domain_origin: TessellationDomainOrigin, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_tessellation_domain_origin_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetTessellationDomainOriginEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_tessellation_domain_origin_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterization_stream_ext: unsafe { - unsafe extern "system" fn cmd_set_rasterization_stream_ext( - _command_buffer: CommandBuffer, - _rasterization_stream: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterization_stream_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRasterizationStreamEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterization_stream_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_conservative_rasterization_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext( - _command_buffer: CommandBuffer, - _conservative_rasterization_mode: ConservativeRasterizationModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_conservative_rasterization_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetConservativeRasterizationModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_conservative_rasterization_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_extra_primitive_overestimation_size_ext: unsafe { - unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext( - _command_buffer: CommandBuffer, - _extra_primitive_overestimation_size: f32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_extra_primitive_overestimation_size_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_extra_primitive_overestimation_size_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_clip_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clip_enable_ext( - _command_buffer: CommandBuffer, - _depth_clip_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clip_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClipEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clip_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_sample_locations_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_sample_locations_enable_ext( - _command_buffer: CommandBuffer, - _sample_locations_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_sample_locations_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetSampleLocationsEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_sample_locations_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_blend_advanced_ext: unsafe { - unsafe extern "system" fn cmd_set_color_blend_advanced_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_blend_advanced: *const ColorBlendAdvancedEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_blend_advanced_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendAdvancedEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_blend_advanced_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_provoking_vertex_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext( - _command_buffer: CommandBuffer, - _provoking_vertex_mode: ProvokingVertexModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_provoking_vertex_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetProvokingVertexModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_provoking_vertex_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_line_rasterization_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_line_rasterization_mode_ext( - _command_buffer: CommandBuffer, - _line_rasterization_mode: LineRasterizationModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_line_rasterization_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetLineRasterizationModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_line_rasterization_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_line_stipple_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_line_stipple_enable_ext( - _command_buffer: CommandBuffer, - _stippled_line_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_line_stipple_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_line_stipple_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_clip_negative_one_to_one_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext( - _command_buffer: CommandBuffer, - _negative_one_to_one: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clip_negative_one_to_one_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDepthClipNegativeOneToOneEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clip_negative_one_to_one_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_w_scaling_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv( - _command_buffer: CommandBuffer, - _viewport_w_scaling_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_w_scaling_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetViewportWScalingEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_w_scaling_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_swizzle_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_swizzle_nv( - _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_viewport_swizzles: *const ViewportSwizzleNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_swizzle_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_swizzle_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_to_color_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv( - _command_buffer: CommandBuffer, - _coverage_to_color_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_to_color_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageToColorEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_to_color_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_to_color_location_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_to_color_location_nv( - _command_buffer: CommandBuffer, - _coverage_to_color_location: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_to_color_location_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageToColorLocationNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_to_color_location_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_modulation_mode_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv( - _command_buffer: CommandBuffer, - _coverage_modulation_mode: CoverageModulationModeNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_modulation_mode_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageModulationModeNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_modulation_mode_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_modulation_table_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv( - _command_buffer: CommandBuffer, - _coverage_modulation_table_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_modulation_table_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageModulationTableEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_modulation_table_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_modulation_table_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_modulation_table_nv( - _command_buffer: CommandBuffer, - _coverage_modulation_table_count: u32, - _p_coverage_modulation_table: *const f32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_modulation_table_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageModulationTableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_modulation_table_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_shading_rate_image_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv( - _command_buffer: CommandBuffer, - _shading_rate_image_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_shading_rate_image_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetShadingRateImageEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_shading_rate_image_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_representative_fragment_test_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv( - _command_buffer: CommandBuffer, - _representative_fragment_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_representative_fragment_test_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRepresentativeFragmentTestEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_representative_fragment_test_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_reduction_mode_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv( - _command_buffer: CommandBuffer, - _coverage_reduction_mode: CoverageReductionModeNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_reduction_mode_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageReductionModeNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_reduction_mode_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_extended_dynamic_state3 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_subpass_merge_feedback"] - pub mod subpass_merge_feedback { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subpass_merge_feedback\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_shader_module_identifier"] - pub mod shader_module_identifier { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_module_identifier\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetShaderModuleIdentifierEXT = unsafe extern "system" fn( - device: crate::vk::Device, - shader_module: ShaderModule, - p_identifier: *mut ShaderModuleIdentifierEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetShaderModuleCreateInfoIdentifierEXT = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const ShaderModuleCreateInfo<'_>, - p_identifier: *mut ShaderModuleIdentifierEXT<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_shader_module_identifier device-level function pointers"] - pub struct DeviceFn { - pub get_shader_module_identifier_ext: PFN_vkGetShaderModuleIdentifierEXT, - pub get_shader_module_create_info_identifier_ext: - PFN_vkGetShaderModuleCreateInfoIdentifierEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_shader_module_identifier_ext: unsafe { - unsafe extern "system" fn get_shader_module_identifier_ext( - _device: crate::vk::Device, - _shader_module: ShaderModule, - _p_identifier: *mut ShaderModuleIdentifierEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_shader_module_identifier_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetShaderModuleIdentifierEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_shader_module_identifier_ext - } else { - ::core::mem::transmute(val) - } - }, - get_shader_module_create_info_identifier_ext: unsafe { - unsafe extern "system" fn get_shader_module_create_info_identifier_ext( - _device: crate::vk::Device, - _p_create_info: *const ShaderModuleCreateInfo<'_>, - _p_identifier: *mut ShaderModuleIdentifierEXT<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_shader_module_create_info_identifier_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetShaderModuleCreateInfoIdentifierEXT\0", - ); - let val = _f(cname); - if val.is_null() { - get_shader_module_create_info_identifier_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_shader_module_identifier device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_rasterization_order_attachment_access"] - pub mod rasterization_order_attachment_access { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_rasterization_order_attachment_access\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_legacy_dithering"] - pub mod legacy_dithering { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_dithering\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_pipeline_protected_access"] - pub mod pipeline_protected_access { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_protected_access\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_shader_object"] - pub mod shader_object { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_object\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateShadersEXT = unsafe extern "system" fn( - device: crate::vk::Device, - create_info_count: u32, - p_create_infos: *const ShaderCreateInfoEXT<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_shaders: *mut ShaderEXT, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyShaderEXT = unsafe extern "system" fn( - device: crate::vk::Device, - shader: ShaderEXT, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetShaderBinaryDataEXT = unsafe extern "system" fn( - device: crate::vk::Device, - shader: ShaderEXT, - p_data_size: *mut usize, - p_data: *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindShadersEXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - stage_count: u32, - p_stages: *const ShaderStageFlags, - p_shaders: *const ShaderEXT, - ); - #[derive(Clone)] - #[doc = "Raw VK_EXT_shader_object device-level function pointers"] - pub struct DeviceFn { pub create_shaders_ext : PFN_vkCreateShadersEXT , pub destroy_shader_ext : PFN_vkDestroyShaderEXT , pub get_shader_binary_data_ext : PFN_vkGetShaderBinaryDataEXT , pub cmd_bind_shaders_ext : PFN_vkCmdBindShadersEXT , pub cmd_set_cull_mode_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetCullMode , pub cmd_set_front_face_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetFrontFace , pub cmd_set_primitive_topology_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetPrimitiveTopology , pub cmd_set_viewport_with_count_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetViewportWithCount , pub cmd_set_scissor_with_count_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetScissorWithCount , pub cmd_bind_vertex_buffers2_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdBindVertexBuffers2 , pub cmd_set_depth_test_enable_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetDepthTestEnable , pub cmd_set_depth_write_enable_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetDepthWriteEnable , pub cmd_set_depth_compare_op_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetDepthCompareOp , pub cmd_set_depth_bounds_test_enable_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetDepthBoundsTestEnable , pub cmd_set_stencil_test_enable_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetStencilTestEnable , pub cmd_set_stencil_op_ext : crate :: vk :: ext :: extended_dynamic_state :: PFN_vkCmdSetStencilOp , pub cmd_set_vertex_input_ext : crate :: vk :: ext :: vertex_input_dynamic_state :: PFN_vkCmdSetVertexInputEXT , pub cmd_set_patch_control_points_ext : crate :: vk :: ext :: extended_dynamic_state2 :: PFN_vkCmdSetPatchControlPointsEXT , pub cmd_set_rasterizer_discard_enable_ext : crate :: vk :: ext :: extended_dynamic_state2 :: PFN_vkCmdSetRasterizerDiscardEnable , pub cmd_set_depth_bias_enable_ext : crate :: vk :: ext :: extended_dynamic_state2 :: PFN_vkCmdSetDepthBiasEnable , pub cmd_set_logic_op_ext : crate :: vk :: ext :: extended_dynamic_state2 :: PFN_vkCmdSetLogicOpEXT , pub cmd_set_primitive_restart_enable_ext : crate :: vk :: ext :: extended_dynamic_state2 :: PFN_vkCmdSetPrimitiveRestartEnable , pub cmd_set_tessellation_domain_origin_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetTessellationDomainOriginEXT , pub cmd_set_depth_clamp_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetDepthClampEnableEXT , pub cmd_set_polygon_mode_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetPolygonModeEXT , pub cmd_set_rasterization_samples_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetRasterizationSamplesEXT , pub cmd_set_sample_mask_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetSampleMaskEXT , pub cmd_set_alpha_to_coverage_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetAlphaToCoverageEnableEXT , pub cmd_set_alpha_to_one_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetAlphaToOneEnableEXT , pub cmd_set_logic_op_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetLogicOpEnableEXT , pub cmd_set_color_blend_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetColorBlendEnableEXT , pub cmd_set_color_blend_equation_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetColorBlendEquationEXT , pub cmd_set_color_write_mask_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetColorWriteMaskEXT , pub cmd_set_rasterization_stream_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetRasterizationStreamEXT , pub cmd_set_conservative_rasterization_mode_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetConservativeRasterizationModeEXT , pub cmd_set_extra_primitive_overestimation_size_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT , pub cmd_set_depth_clip_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetDepthClipEnableEXT , pub cmd_set_sample_locations_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetSampleLocationsEnableEXT , pub cmd_set_color_blend_advanced_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetColorBlendAdvancedEXT , pub cmd_set_provoking_vertex_mode_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetProvokingVertexModeEXT , pub cmd_set_line_rasterization_mode_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetLineRasterizationModeEXT , pub cmd_set_line_stipple_enable_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetLineStippleEnableEXT , pub cmd_set_depth_clip_negative_one_to_one_ext : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetDepthClipNegativeOneToOneEXT , pub cmd_set_viewport_w_scaling_enable_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetViewportWScalingEnableNV , pub cmd_set_viewport_swizzle_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetViewportSwizzleNV , pub cmd_set_coverage_to_color_enable_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetCoverageToColorEnableNV , pub cmd_set_coverage_to_color_location_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetCoverageToColorLocationNV , pub cmd_set_coverage_modulation_mode_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetCoverageModulationModeNV , pub cmd_set_coverage_modulation_table_enable_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetCoverageModulationTableEnableNV , pub cmd_set_coverage_modulation_table_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetCoverageModulationTableNV , pub cmd_set_shading_rate_image_enable_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetShadingRateImageEnableNV , pub cmd_set_representative_fragment_test_enable_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetRepresentativeFragmentTestEnableNV , pub cmd_set_coverage_reduction_mode_nv : crate :: vk :: ext :: extended_dynamic_state3 :: PFN_vkCmdSetCoverageReductionModeNV , } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_shaders_ext: unsafe { - unsafe extern "system" fn create_shaders_ext( - _device: crate::vk::Device, - _create_info_count: u32, - _p_create_infos: *const ShaderCreateInfoEXT<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_shaders: *mut ShaderEXT, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_shaders_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateShadersEXT\0"); - let val = _f(cname); - if val.is_null() { - create_shaders_ext - } else { - ::core::mem::transmute(val) - } - }, - destroy_shader_ext: unsafe { - unsafe extern "system" fn destroy_shader_ext( - _device: crate::vk::Device, - _shader: ShaderEXT, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_shader_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyShaderEXT\0"); - let val = _f(cname); - if val.is_null() { - destroy_shader_ext - } else { - ::core::mem::transmute(val) - } - }, - get_shader_binary_data_ext: unsafe { - unsafe extern "system" fn get_shader_binary_data_ext( - _device: crate::vk::Device, - _shader: ShaderEXT, - _p_data_size: *mut usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_shader_binary_data_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetShaderBinaryDataEXT\0"); - let val = _f(cname); - if val.is_null() { - get_shader_binary_data_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_shaders_ext: unsafe { - unsafe extern "system" fn cmd_bind_shaders_ext( - _command_buffer: CommandBuffer, - _stage_count: u32, - _p_stages: *const ShaderStageFlags, - _p_shaders: *const ShaderEXT, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_bind_shaders_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadersEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_shaders_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_cull_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_cull_mode_ext( - _command_buffer: CommandBuffer, - _cull_mode: CullModeFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_cull_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_cull_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_front_face_ext: unsafe { - unsafe extern "system" fn cmd_set_front_face_ext( - _command_buffer: CommandBuffer, - _front_face: FrontFace, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_front_face_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_front_face_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_primitive_topology_ext: unsafe { - unsafe extern "system" fn cmd_set_primitive_topology_ext( - _command_buffer: CommandBuffer, - _primitive_topology: PrimitiveTopology, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_primitive_topology_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopologyEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_primitive_topology_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_with_count_ext: unsafe { - unsafe extern "system" fn cmd_set_viewport_with_count_ext( - _command_buffer: CommandBuffer, - _viewport_count: u32, - _p_viewports: *const Viewport, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_with_count_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCountEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_with_count_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_scissor_with_count_ext: unsafe { - unsafe extern "system" fn cmd_set_scissor_with_count_ext( - _command_buffer: CommandBuffer, - _scissor_count: u32, - _p_scissors: *const Rect2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_scissor_with_count_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCountEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_scissor_with_count_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_vertex_buffers2_ext: unsafe { - unsafe extern "system" fn cmd_bind_vertex_buffers2_ext( - _command_buffer: CommandBuffer, - _first_binding: u32, - _binding_count: u32, - _p_buffers: *const Buffer, - _p_offsets: *const DeviceSize, - _p_sizes: *const DeviceSize, - _p_strides: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_vertex_buffers2_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2EXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_vertex_buffers2_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_test_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_test_enable_ext( - _command_buffer: CommandBuffer, - _depth_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_test_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_test_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_write_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_write_enable_ext( - _command_buffer: CommandBuffer, - _depth_write_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_write_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_write_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_compare_op_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_compare_op_ext( - _command_buffer: CommandBuffer, - _depth_compare_op: CompareOp, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_compare_op_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_compare_op_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bounds_test_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext( - _command_buffer: CommandBuffer, - _depth_bounds_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bounds_test_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDepthBoundsTestEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bounds_test_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_test_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_stencil_test_enable_ext( - _command_buffer: CommandBuffer, - _stencil_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_test_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_test_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_op_ext: unsafe { - unsafe extern "system" fn cmd_set_stencil_op_ext( - _command_buffer: CommandBuffer, - _face_mask: StencilFaceFlags, - _fail_op: StencilOp, - _pass_op: StencilOp, - _depth_fail_op: StencilOp, - _compare_op: CompareOp, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_op_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_op_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_vertex_input_ext: unsafe { - unsafe extern "system" fn cmd_set_vertex_input_ext( - _command_buffer: CommandBuffer, - _vertex_binding_description_count: u32, - _p_vertex_binding_descriptions : * const VertexInputBindingDescription2EXT < '_ >, - _vertex_attribute_description_count: u32, - _p_vertex_attribute_descriptions : * const VertexInputAttributeDescription2EXT < '_ >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_vertex_input_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_vertex_input_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_patch_control_points_ext: unsafe { - unsafe extern "system" fn cmd_set_patch_control_points_ext( - _command_buffer: CommandBuffer, - _patch_control_points: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_patch_control_points_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPatchControlPointsEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_patch_control_points_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterizer_discard_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext( - _command_buffer: CommandBuffer, - _rasterizer_discard_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterizer_discard_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRasterizerDiscardEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterizer_discard_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bias_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_bias_enable_ext( - _command_buffer: CommandBuffer, - _depth_bias_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bias_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bias_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_logic_op_ext: unsafe { - unsafe extern "system" fn cmd_set_logic_op_ext( - _command_buffer: CommandBuffer, - _logic_op: LogicOp, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_logic_op_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_primitive_restart_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_primitive_restart_enable_ext( - _command_buffer: CommandBuffer, - _primitive_restart_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_primitive_restart_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetPrimitiveRestartEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_primitive_restart_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_tessellation_domain_origin_ext: unsafe { - unsafe extern "system" fn cmd_set_tessellation_domain_origin_ext( - _command_buffer: CommandBuffer, - _domain_origin: TessellationDomainOrigin, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_tessellation_domain_origin_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetTessellationDomainOriginEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_tessellation_domain_origin_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_clamp_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clamp_enable_ext( - _command_buffer: CommandBuffer, - _depth_clamp_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clamp_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClampEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clamp_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_polygon_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_polygon_mode_ext( - _command_buffer: CommandBuffer, - _polygon_mode: PolygonMode, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_polygon_mode_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPolygonModeEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_polygon_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterization_samples_ext: unsafe { - unsafe extern "system" fn cmd_set_rasterization_samples_ext( - _command_buffer: CommandBuffer, - _rasterization_samples: SampleCountFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterization_samples_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRasterizationSamplesEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterization_samples_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_sample_mask_ext: unsafe { - unsafe extern "system" fn cmd_set_sample_mask_ext( - _command_buffer: CommandBuffer, - _samples: SampleCountFlags, - _p_sample_mask: *const SampleMask, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_sample_mask_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetSampleMaskEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_sample_mask_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_alpha_to_coverage_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_alpha_to_coverage_enable_ext( - _command_buffer: CommandBuffer, - _alpha_to_coverage_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_alpha_to_coverage_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetAlphaToCoverageEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_alpha_to_coverage_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_alpha_to_one_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_alpha_to_one_enable_ext( - _command_buffer: CommandBuffer, - _alpha_to_one_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_alpha_to_one_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetAlphaToOneEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_alpha_to_one_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_logic_op_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_logic_op_enable_ext( - _command_buffer: CommandBuffer, - _logic_op_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_logic_op_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_logic_op_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_blend_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_color_blend_enable_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_blend_enables: *const Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_blend_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_blend_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_blend_equation_ext: unsafe { - unsafe extern "system" fn cmd_set_color_blend_equation_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_blend_equations: *const ColorBlendEquationEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_blend_equation_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendEquationEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_blend_equation_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_write_mask_ext: unsafe { - unsafe extern "system" fn cmd_set_color_write_mask_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_write_masks: *const ColorComponentFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_write_mask_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorWriteMaskEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_write_mask_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterization_stream_ext: unsafe { - unsafe extern "system" fn cmd_set_rasterization_stream_ext( - _command_buffer: CommandBuffer, - _rasterization_stream: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterization_stream_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRasterizationStreamEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterization_stream_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_conservative_rasterization_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_conservative_rasterization_mode_ext( - _command_buffer: CommandBuffer, - _conservative_rasterization_mode: ConservativeRasterizationModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_conservative_rasterization_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetConservativeRasterizationModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_conservative_rasterization_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_extra_primitive_overestimation_size_ext: unsafe { - unsafe extern "system" fn cmd_set_extra_primitive_overestimation_size_ext( - _command_buffer: CommandBuffer, - _extra_primitive_overestimation_size: f32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_extra_primitive_overestimation_size_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_extra_primitive_overestimation_size_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_clip_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clip_enable_ext( - _command_buffer: CommandBuffer, - _depth_clip_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clip_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthClipEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clip_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_sample_locations_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_sample_locations_enable_ext( - _command_buffer: CommandBuffer, - _sample_locations_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_sample_locations_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetSampleLocationsEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_sample_locations_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_color_blend_advanced_ext: unsafe { - unsafe extern "system" fn cmd_set_color_blend_advanced_ext( - _command_buffer: CommandBuffer, - _first_attachment: u32, - _attachment_count: u32, - _p_color_blend_advanced: *const ColorBlendAdvancedEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_color_blend_advanced_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetColorBlendAdvancedEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_color_blend_advanced_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_provoking_vertex_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_provoking_vertex_mode_ext( - _command_buffer: CommandBuffer, - _provoking_vertex_mode: ProvokingVertexModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_provoking_vertex_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetProvokingVertexModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_provoking_vertex_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_line_rasterization_mode_ext: unsafe { - unsafe extern "system" fn cmd_set_line_rasterization_mode_ext( - _command_buffer: CommandBuffer, - _line_rasterization_mode: LineRasterizationModeEXT, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_line_rasterization_mode_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetLineRasterizationModeEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_line_rasterization_mode_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_line_stipple_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_line_stipple_enable_ext( - _command_buffer: CommandBuffer, - _stippled_line_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_line_stipple_enable_ext) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEnableEXT\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_line_stipple_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_clip_negative_one_to_one_ext: unsafe { - unsafe extern "system" fn cmd_set_depth_clip_negative_one_to_one_ext( - _command_buffer: CommandBuffer, - _negative_one_to_one: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_clip_negative_one_to_one_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDepthClipNegativeOneToOneEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_clip_negative_one_to_one_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_w_scaling_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_w_scaling_enable_nv( - _command_buffer: CommandBuffer, - _viewport_w_scaling_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_w_scaling_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetViewportWScalingEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_w_scaling_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_swizzle_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_swizzle_nv( - _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_viewport_swizzles: *const ViewportSwizzleNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_swizzle_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportSwizzleNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_swizzle_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_to_color_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_to_color_enable_nv( - _command_buffer: CommandBuffer, - _coverage_to_color_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_to_color_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageToColorEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_to_color_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_to_color_location_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_to_color_location_nv( - _command_buffer: CommandBuffer, - _coverage_to_color_location: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_to_color_location_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageToColorLocationNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_to_color_location_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_modulation_mode_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_modulation_mode_nv( - _command_buffer: CommandBuffer, - _coverage_modulation_mode: CoverageModulationModeNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_modulation_mode_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageModulationModeNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_modulation_mode_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_modulation_table_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_modulation_table_enable_nv( - _command_buffer: CommandBuffer, - _coverage_modulation_table_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_modulation_table_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageModulationTableEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_modulation_table_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_modulation_table_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_modulation_table_nv( - _command_buffer: CommandBuffer, - _coverage_modulation_table_count: u32, - _p_coverage_modulation_table: *const f32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_modulation_table_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageModulationTableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_modulation_table_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_shading_rate_image_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_shading_rate_image_enable_nv( - _command_buffer: CommandBuffer, - _shading_rate_image_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_shading_rate_image_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetShadingRateImageEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_shading_rate_image_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_representative_fragment_test_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_representative_fragment_test_enable_nv( - _command_buffer: CommandBuffer, - _representative_fragment_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_representative_fragment_test_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRepresentativeFragmentTestEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_representative_fragment_test_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coverage_reduction_mode_nv: unsafe { - unsafe extern "system" fn cmd_set_coverage_reduction_mode_nv( - _command_buffer: CommandBuffer, - _coverage_reduction_mode: CoverageReductionModeNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coverage_reduction_mode_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetCoverageReductionModeNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_coverage_reduction_mode_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_shader_object device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_EXT_mutable_descriptor_type"] - pub mod mutable_descriptor_type { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mutable_descriptor_type\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_layer_settings"] - pub mod layer_settings { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_layer_settings\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_EXT_pipeline_library_group_handles"] - pub mod pipeline_library_group_handles { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_library_group_handles\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_dynamic_rendering_unused_attachments"] - pub mod dynamic_rendering_unused_attachments { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_dynamic_rendering_unused_attachments\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_EXT_attachment_feedback_loop_dynamic_state"] - pub mod attachment_feedback_loop_dynamic_state { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_EXT_attachment_feedback_loop_dynamic_state\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT = - unsafe extern "system" fn(command_buffer: CommandBuffer, aspect_mask: ImageAspectFlags); - #[derive(Clone)] - #[doc = "Raw VK_EXT_attachment_feedback_loop_dynamic_state device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_attachment_feedback_loop_enable_ext: - PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_attachment_feedback_loop_enable_ext: unsafe { - unsafe extern "system" fn cmd_set_attachment_feedback_loop_enable_ext( - _command_buffer: CommandBuffer, - _aspect_mask: ImageAspectFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_attachment_feedback_loop_enable_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetAttachmentFeedbackLoopEnableEXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_attachment_feedback_loop_enable_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_EXT_attachment_feedback_loop_dynamic_state device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged FUCHSIA"] -pub mod fuchsia { - #[doc = "VK_FUCHSIA_imagepipe_surface"] - pub mod imagepipe_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_imagepipe_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_FUCHSIA_imagepipe_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_image_pipe_surface_fuchsia: unsafe { - unsafe extern "system" fn create_image_pipe_surface_fuchsia( - _instance: crate::vk::Instance, - _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_image_pipe_surface_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateImagePipeSurfaceFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - create_image_pipe_surface_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_FUCHSIA_imagepipe_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_FUCHSIA_external_memory"] - pub mod external_memory { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_memory\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA<'_>, - p_zircon_handle: *mut zx_handle_t, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - handle_type: ExternalMemoryHandleTypeFlags, - zircon_handle: zx_handle_t, - p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_FUCHSIA_external_memory device-level function pointers"] - pub struct DeviceFn { - pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA, - pub get_memory_zircon_handle_properties_fuchsia: - PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_memory_zircon_handle_fuchsia: unsafe { - unsafe extern "system" fn get_memory_zircon_handle_fuchsia( - _device: crate::vk::Device, - _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA<'_>, - _p_zircon_handle: *mut zx_handle_t, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_zircon_handle_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetMemoryZirconHandleFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - get_memory_zircon_handle_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - get_memory_zircon_handle_properties_fuchsia: unsafe { - unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia( - _device: crate::vk::Device, - _handle_type: ExternalMemoryHandleTypeFlags, - _zircon_handle: zx_handle_t, - _p_memory_zircon_handle_properties : * mut MemoryZirconHandlePropertiesFUCHSIA < '_ >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_zircon_handle_properties_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - get_memory_zircon_handle_properties_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_FUCHSIA_external_memory device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_FUCHSIA_external_semaphore"] - pub mod external_semaphore { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_semaphore\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA<'_>, - p_zircon_handle: *mut zx_handle_t, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_FUCHSIA_external_semaphore device-level function pointers"] - pub struct DeviceFn { - pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA, - pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - import_semaphore_zircon_handle_fuchsia: unsafe { - unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia( - _device: crate::vk::Device, - _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA < '_ >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(import_semaphore_zircon_handle_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkImportSemaphoreZirconHandleFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - import_semaphore_zircon_handle_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - get_semaphore_zircon_handle_fuchsia: unsafe { - unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia( - _device: crate::vk::Device, - _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA< - '_, - >, - _p_zircon_handle: *mut zx_handle_t, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_semaphore_zircon_handle_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetSemaphoreZirconHandleFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - get_semaphore_zircon_handle_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_FUCHSIA_external_semaphore device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_FUCHSIA_buffer_collection"] - pub mod buffer_collection { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_buffer_collection\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_collection: *mut BufferCollectionFUCHSIA, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = - unsafe extern "system" fn( - device: crate::vk::Device, - collection: BufferCollectionFUCHSIA, - p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = - unsafe extern "system" fn( - device: crate::vk::Device, - collection: BufferCollectionFUCHSIA, - p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyBufferCollectionFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - collection: BufferCollectionFUCHSIA, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn( - device: crate::vk::Device, - collection: BufferCollectionFUCHSIA, - p_properties: *mut BufferCollectionPropertiesFUCHSIA<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_FUCHSIA_buffer_collection device-level function pointers"] - pub struct DeviceFn { - pub create_buffer_collection_fuchsia: PFN_vkCreateBufferCollectionFUCHSIA, - pub set_buffer_collection_image_constraints_fuchsia: - PFN_vkSetBufferCollectionImageConstraintsFUCHSIA, - pub set_buffer_collection_buffer_constraints_fuchsia: - PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA, - pub destroy_buffer_collection_fuchsia: PFN_vkDestroyBufferCollectionFUCHSIA, - pub get_buffer_collection_properties_fuchsia: - PFN_vkGetBufferCollectionPropertiesFUCHSIA, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_buffer_collection_fuchsia: unsafe { - unsafe extern "system" fn create_buffer_collection_fuchsia( - _device: crate::vk::Device, - _p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_collection: *mut BufferCollectionFUCHSIA, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_buffer_collection_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateBufferCollectionFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - create_buffer_collection_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - set_buffer_collection_image_constraints_fuchsia: unsafe { - unsafe extern "system" fn set_buffer_collection_image_constraints_fuchsia( - _device: crate::vk::Device, - _collection: BufferCollectionFUCHSIA, - _p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(set_buffer_collection_image_constraints_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkSetBufferCollectionImageConstraintsFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - set_buffer_collection_image_constraints_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - set_buffer_collection_buffer_constraints_fuchsia: unsafe { - unsafe extern "system" fn set_buffer_collection_buffer_constraints_fuchsia( - _device: crate::vk::Device, - _collection: BufferCollectionFUCHSIA, - _p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(set_buffer_collection_buffer_constraints_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkSetBufferCollectionBufferConstraintsFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - set_buffer_collection_buffer_constraints_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - destroy_buffer_collection_fuchsia: unsafe { - unsafe extern "system" fn destroy_buffer_collection_fuchsia( - _device: crate::vk::Device, - _collection: BufferCollectionFUCHSIA, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_buffer_collection_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyBufferCollectionFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_buffer_collection_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_collection_properties_fuchsia: unsafe { - unsafe extern "system" fn get_buffer_collection_properties_fuchsia( - _device: crate::vk::Device, - _collection: BufferCollectionFUCHSIA, - _p_properties: *mut BufferCollectionPropertiesFUCHSIA<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_collection_properties_fuchsia) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetBufferCollectionPropertiesFUCHSIA\0", - ); - let val = _f(cname); - if val.is_null() { - get_buffer_collection_properties_fuchsia - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_FUCHSIA_buffer_collection device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged GGP"] -pub mod ggp { - #[doc = "VK_GGP_stream_descriptor_surface"] - pub mod stream_descriptor_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GGP_stream_descriptor_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateStreamDescriptorSurfaceGGP = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_GGP_stream_descriptor_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_stream_descriptor_surface_ggp: unsafe { - unsafe extern "system" fn create_stream_descriptor_surface_ggp( - _instance: crate::vk::Instance, - _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_stream_descriptor_surface_ggp) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateStreamDescriptorSurfaceGGP\0", - ); - let val = _f(cname); - if val.is_null() { - create_stream_descriptor_surface_ggp - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_GGP_stream_descriptor_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_GGP_frame_token"] - pub mod frame_token { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GGP_frame_token\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged GOOGLE"] -pub mod google { - #[doc = "VK_GOOGLE_display_timing"] - pub mod display_timing { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_display_timing\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetRefreshCycleDurationGOOGLE = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_display_timing_properties: *mut RefreshCycleDurationGOOGLE, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPastPresentationTimingGOOGLE = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_presentation_timing_count: *mut u32, - p_presentation_timings: *mut PastPresentationTimingGOOGLE, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_GOOGLE_display_timing device-level function pointers"] - pub struct DeviceFn { - pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE, - pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_refresh_cycle_duration_google: unsafe { - unsafe extern "system" fn get_refresh_cycle_duration_google( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_refresh_cycle_duration_google) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRefreshCycleDurationGOOGLE\0", - ); - let val = _f(cname); - if val.is_null() { - get_refresh_cycle_duration_google - } else { - ::core::mem::transmute(val) - } - }, - get_past_presentation_timing_google: unsafe { - unsafe extern "system" fn get_past_presentation_timing_google( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_presentation_timing_count: *mut u32, - _p_presentation_timings: *mut PastPresentationTimingGOOGLE, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_past_presentation_timing_google) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPastPresentationTimingGOOGLE\0", - ); - let val = _f(cname); - if val.is_null() { - get_past_presentation_timing_google - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_GOOGLE_display_timing device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_GOOGLE_hlsl_functionality1"] - pub mod hlsl_functionality1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_hlsl_functionality1\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_GOOGLE_decorate_string"] - pub mod decorate_string { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_decorate_string\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_GOOGLE_user_type"] - pub mod user_type { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_user_type\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_GOOGLE_surfaceless_query"] - pub mod surfaceless_query { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_surfaceless_query\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } -} -#[doc = "Extensions tagged HUAWEI"] -pub mod huawei { - #[doc = "VK_HUAWEI_subpass_shading"] - pub mod subpass_shading { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_subpass_shading\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = - unsafe extern "system" fn( - device: crate::vk::Device, - renderpass: RenderPass, - p_max_workgroup_size: *mut Extent2D, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSubpassShadingHUAWEI = - unsafe extern "system" fn(command_buffer: CommandBuffer); - #[derive(Clone)] - #[doc = "Raw VK_HUAWEI_subpass_shading device-level function pointers"] - pub struct DeviceFn { - pub get_device_subpass_shading_max_workgroup_size_huawei: - PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, - pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_device_subpass_shading_max_workgroup_size_huawei: unsafe { - unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei( - _device: crate::vk::Device, - _renderpass: RenderPass, - _p_max_workgroup_size: *mut Extent2D, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_subpass_shading_max_workgroup_size_huawei) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_subpass_shading_max_workgroup_size_huawei - } else { - ::core::mem::transmute(val) - } - }, - cmd_subpass_shading_huawei: unsafe { - unsafe extern "system" fn cmd_subpass_shading_huawei( - _command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_subpass_shading_huawei) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSubpassShadingHUAWEI\0"); - let val = _f(cname); - if val.is_null() { - cmd_subpass_shading_huawei - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_HUAWEI_subpass_shading device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_HUAWEI_invocation_mask"] - pub mod invocation_mask { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_invocation_mask\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindInvocationMaskHUAWEI = unsafe extern "system" fn( - command_buffer: CommandBuffer, - image_view: ImageView, - image_layout: ImageLayout, - ); - #[derive(Clone)] - #[doc = "Raw VK_HUAWEI_invocation_mask device-level function pointers"] - pub struct DeviceFn { - pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_bind_invocation_mask_huawei: unsafe { - unsafe extern "system" fn cmd_bind_invocation_mask_huawei( - _command_buffer: CommandBuffer, - _image_view: ImageView, - _image_layout: ImageLayout, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_invocation_mask_huawei) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindInvocationMaskHUAWEI\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_invocation_mask_huawei - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_HUAWEI_invocation_mask device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_HUAWEI_cluster_culling_shader"] - pub mod cluster_culling_shader { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_cluster_culling_shader\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawClusterHUAWEI = unsafe extern "system" fn( - command_buffer: CommandBuffer, - group_count_x: u32, - group_count_y: u32, - group_count_z: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawClusterIndirectHUAWEI = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - ); - #[derive(Clone)] - #[doc = "Raw VK_HUAWEI_cluster_culling_shader device-level function pointers"] - pub struct DeviceFn { - pub cmd_draw_cluster_huawei: PFN_vkCmdDrawClusterHUAWEI, - pub cmd_draw_cluster_indirect_huawei: PFN_vkCmdDrawClusterIndirectHUAWEI, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_cluster_huawei: unsafe { - unsafe extern "system" fn cmd_draw_cluster_huawei( - _command_buffer: CommandBuffer, - _group_count_x: u32, - _group_count_y: u32, - _group_count_z: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_cluster_huawei) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawClusterHUAWEI\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_cluster_huawei - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_cluster_indirect_huawei: unsafe { - unsafe extern "system" fn cmd_draw_cluster_indirect_huawei( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_cluster_indirect_huawei) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDrawClusterIndirectHUAWEI\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_draw_cluster_indirect_huawei - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_HUAWEI_cluster_culling_shader device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged IMG"] -pub mod img { - #[doc = "VK_IMG_filter_cubic"] - pub mod filter_cubic { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_IMG_filter_cubic\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_IMG_format_pvrtc"] - pub mod format_pvrtc { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_IMG_format_pvrtc\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_IMG_relaxed_line_rasterization"] - pub mod relaxed_line_rasterization { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_IMG_relaxed_line_rasterization\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged INTEL"] -pub mod intel { - #[doc = "VK_INTEL_shader_integer_functions2"] - pub mod shader_integer_functions2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_shader_integer_functions2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_INTEL_performance_query"] - pub mod performance_query { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_performance_query\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkInitializePerformanceApiINTEL = unsafe extern "system" fn( - device: crate::vk::Device, - p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkUninitializePerformanceApiINTEL = - unsafe extern "system" fn(device: crate::vk::Device); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPerformanceMarkerINTEL = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_marker_info: *const PerformanceMarkerInfoINTEL<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPerformanceStreamMarkerINTEL = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_marker_info: *const PerformanceStreamMarkerInfoINTEL<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetPerformanceOverrideINTEL = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_override_info: *const PerformanceOverrideInfoINTEL<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquirePerformanceConfigurationINTEL = unsafe extern "system" fn( - device: crate::vk::Device, - p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL<'_>, - p_configuration: *mut PerformanceConfigurationINTEL, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkReleasePerformanceConfigurationINTEL = unsafe extern "system" fn( - device: crate::vk::Device, - configuration: PerformanceConfigurationINTEL, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkQueueSetPerformanceConfigurationINTEL = unsafe extern "system" fn( - queue: Queue, - configuration: PerformanceConfigurationINTEL, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPerformanceParameterINTEL = unsafe extern "system" fn( - device: crate::vk::Device, - parameter: PerformanceParameterTypeINTEL, - p_value: *mut PerformanceValueINTEL, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_INTEL_performance_query device-level function pointers"] - pub struct DeviceFn { - pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL, - pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL, - pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL, - pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL, - pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL, - pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL, - pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL, - pub queue_set_performance_configuration_intel: - PFN_vkQueueSetPerformanceConfigurationINTEL, - pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - initialize_performance_api_intel: unsafe { - unsafe extern "system" fn initialize_performance_api_intel( - _device: crate::vk::Device, - _p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(initialize_performance_api_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkInitializePerformanceApiINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - initialize_performance_api_intel - } else { - ::core::mem::transmute(val) - } - }, - uninitialize_performance_api_intel: unsafe { - unsafe extern "system" fn uninitialize_performance_api_intel( - _device: crate::vk::Device, - ) { - panic!(concat!( - "Unable to load ", - stringify!(uninitialize_performance_api_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkUninitializePerformanceApiINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - uninitialize_performance_api_intel - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_performance_marker_intel: unsafe { - unsafe extern "system" fn cmd_set_performance_marker_intel( - _command_buffer: CommandBuffer, - _p_marker_info: *const PerformanceMarkerInfoINTEL<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_performance_marker_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetPerformanceMarkerINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_performance_marker_intel - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_performance_stream_marker_intel: unsafe { - unsafe extern "system" fn cmd_set_performance_stream_marker_intel( - _command_buffer: CommandBuffer, - _p_marker_info: *const PerformanceStreamMarkerInfoINTEL<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_performance_stream_marker_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetPerformanceStreamMarkerINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_performance_stream_marker_intel - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_performance_override_intel: unsafe { - unsafe extern "system" fn cmd_set_performance_override_intel( - _command_buffer: CommandBuffer, - _p_override_info: *const PerformanceOverrideInfoINTEL<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_performance_override_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetPerformanceOverrideINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_performance_override_intel - } else { - ::core::mem::transmute(val) - } - }, - acquire_performance_configuration_intel: unsafe { - unsafe extern "system" fn acquire_performance_configuration_intel( - _device: crate::vk::Device, - _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL<'_>, - _p_configuration: *mut PerformanceConfigurationINTEL, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_performance_configuration_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkAcquirePerformanceConfigurationINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - acquire_performance_configuration_intel - } else { - ::core::mem::transmute(val) - } - }, - release_performance_configuration_intel: unsafe { - unsafe extern "system" fn release_performance_configuration_intel( - _device: crate::vk::Device, - _configuration: PerformanceConfigurationINTEL, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(release_performance_configuration_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkReleasePerformanceConfigurationINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - release_performance_configuration_intel - } else { - ::core::mem::transmute(val) - } - }, - queue_set_performance_configuration_intel: unsafe { - unsafe extern "system" fn queue_set_performance_configuration_intel( - _queue: Queue, - _configuration: PerformanceConfigurationINTEL, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(queue_set_performance_configuration_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkQueueSetPerformanceConfigurationINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - queue_set_performance_configuration_intel - } else { - ::core::mem::transmute(val) - } - }, - get_performance_parameter_intel: unsafe { - unsafe extern "system" fn get_performance_parameter_intel( - _device: crate::vk::Device, - _parameter: PerformanceParameterTypeINTEL, - _p_value: *mut PerformanceValueINTEL, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_performance_parameter_intel) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPerformanceParameterINTEL\0", - ); - let val = _f(cname); - if val.is_null() { - get_performance_parameter_intel - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_INTEL_performance_query device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged KHR"] -pub mod khr { - #[doc = "VK_KHR_surface"] - pub mod surface { - use super::super::*; - pub const NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface\0") }; - pub const SPEC_VERSION: u32 = 25u32; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroySurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - surface: SurfaceKHR, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfaceSupportKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - surface: SurfaceKHR, - p_supported: *mut Bool32, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - surface: SurfaceKHR, - p_surface_capabilities: *mut SurfaceCapabilitiesKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - surface: SurfaceKHR, - p_surface_format_count: *mut u32, - p_surface_formats: *mut SurfaceFormatKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - surface: SurfaceKHR, - p_present_mode_count: *mut u32, - p_present_modes: *mut PresentModeKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_surface instance-level function pointers"] - pub struct InstanceFn { - pub destroy_surface_khr: PFN_vkDestroySurfaceKHR, - pub get_physical_device_surface_support_khr: PFN_vkGetPhysicalDeviceSurfaceSupportKHR, - pub get_physical_device_surface_capabilities_khr: - PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, - pub get_physical_device_surface_formats_khr: PFN_vkGetPhysicalDeviceSurfaceFormatsKHR, - pub get_physical_device_surface_present_modes_khr: - PFN_vkGetPhysicalDeviceSurfacePresentModesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - destroy_surface_khr: unsafe { - unsafe extern "system" fn destroy_surface_khr( - _instance: crate::vk::Instance, - _surface: SurfaceKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_surface_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySurfaceKHR\0"); - let val = _f(cname); - if val.is_null() { - destroy_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_surface_support_khr: unsafe { - unsafe extern "system" fn get_physical_device_surface_support_khr( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _surface: SurfaceKHR, - _p_supported: *mut Bool32, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_support_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceSupportKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_support_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_surface_capabilities_khr: unsafe { - unsafe extern "system" fn get_physical_device_surface_capabilities_khr( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_surface_capabilities: *mut SurfaceCapabilitiesKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_capabilities_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceCapabilitiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_capabilities_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_surface_formats_khr: unsafe { - unsafe extern "system" fn get_physical_device_surface_formats_khr( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_surface_format_count: *mut u32, - _p_surface_formats: *mut SurfaceFormatKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_formats_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceFormatsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_formats_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_surface_present_modes_khr: unsafe { - unsafe extern "system" fn get_physical_device_surface_present_modes_khr( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_present_mode_count: *mut u32, - _p_present_modes: *mut PresentModeKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_present_modes_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfacePresentModesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_present_modes_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_swapchain"] - pub mod swapchain { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain\0") }; - pub const SPEC_VERSION: u32 = 70u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDevicePresentRectanglesKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - surface: SurfaceKHR, - p_rect_count: *mut u32, - p_rects: *mut Rect2D, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_swapchain instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_present_rectangles_khr: - PFN_vkGetPhysicalDevicePresentRectanglesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_present_rectangles_khr: unsafe { - unsafe extern "system" fn get_physical_device_present_rectangles_khr( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_rect_count: *mut u32, - _p_rects: *mut Rect2D, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_present_rectangles_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDevicePresentRectanglesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_present_rectangles_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_swapchain instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkCreateSwapchainKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const SwapchainCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_swapchain: *mut SwapchainKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroySwapchainKHR = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetSwapchainImagesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_swapchain_image_count: *mut u32, - p_swapchain_images: *mut Image, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireNextImageKHR = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - timeout: u64, - semaphore: Semaphore, - fence: Fence, - p_image_index: *mut u32, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkQueuePresentKHR = unsafe extern "system" fn( - queue: Queue, - p_present_info: *const PresentInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceGroupSurfacePresentModesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - surface: SurfaceKHR, - p_modes: *mut DeviceGroupPresentModeFlagsKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireNextImage2KHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_acquire_info: *const AcquireNextImageInfoKHR<'_>, - p_image_index: *mut u32, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_swapchain device-level function pointers"] - pub struct DeviceFn { - pub create_swapchain_khr: PFN_vkCreateSwapchainKHR, - pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR, - pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR, - pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR, - pub queue_present_khr: PFN_vkQueuePresentKHR, - pub get_device_group_present_capabilities_khr: - PFN_vkGetDeviceGroupPresentCapabilitiesKHR, - pub get_device_group_surface_present_modes_khr: - PFN_vkGetDeviceGroupSurfacePresentModesKHR, - pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_swapchain_khr: unsafe { - unsafe extern "system" fn create_swapchain_khr( - _device: crate::vk::Device, - _p_create_info: *const SwapchainCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_swapchain: *mut SwapchainKHR, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_swapchain_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSwapchainKHR\0"); - let val = _f(cname); - if val.is_null() { - create_swapchain_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_swapchain_khr: unsafe { - unsafe extern "system" fn destroy_swapchain_khr( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_swapchain_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySwapchainKHR\0"); - let val = _f(cname); - if val.is_null() { - destroy_swapchain_khr - } else { - ::core::mem::transmute(val) - } - }, - get_swapchain_images_khr: unsafe { - unsafe extern "system" fn get_swapchain_images_khr( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_swapchain_image_count: *mut u32, - _p_swapchain_images: *mut Image, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_swapchain_images_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainImagesKHR\0"); - let val = _f(cname); - if val.is_null() { - get_swapchain_images_khr - } else { - ::core::mem::transmute(val) - } - }, - acquire_next_image_khr: unsafe { - unsafe extern "system" fn acquire_next_image_khr( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _timeout: u64, - _semaphore: Semaphore, - _fence: Fence, - _p_image_index: *mut u32, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_next_image_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImageKHR\0"); - let val = _f(cname); - if val.is_null() { - acquire_next_image_khr - } else { - ::core::mem::transmute(val) - } - }, - queue_present_khr: unsafe { - unsafe extern "system" fn queue_present_khr( - _queue: Queue, - _p_present_info: *const PresentInfoKHR<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_present_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0"); - let val = _f(cname); - if val.is_null() { - queue_present_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_present_capabilities_khr: unsafe { - unsafe extern "system" fn get_device_group_present_capabilities_khr( - _device: crate::vk::Device, - _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_present_capabilities_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupPresentCapabilitiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_group_present_capabilities_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_surface_present_modes_khr: unsafe { - unsafe extern "system" fn get_device_group_surface_present_modes_khr( - _device: crate::vk::Device, - _surface: SurfaceKHR, - _p_modes: *mut DeviceGroupPresentModeFlagsKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_surface_present_modes_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupSurfacePresentModesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_group_surface_present_modes_khr - } else { - ::core::mem::transmute(val) - } - }, - acquire_next_image2_khr: unsafe { - unsafe extern "system" fn acquire_next_image2_khr( - _device: crate::vk::Device, - _p_acquire_info: *const AcquireNextImageInfoKHR<'_>, - _p_image_index: *mut u32, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_next_image2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0"); - let val = _f(cname); - if val.is_null() { - acquire_next_image2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_swapchain device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_display"] - pub mod display { - use super::super::*; - pub const NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display\0") }; - pub const SPEC_VERSION: u32 = 23u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_property_count: *mut u32, - p_properties: *mut DisplayPropertiesKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_property_count: *mut u32, - p_properties: *mut DisplayPlanePropertiesKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDisplayPlaneSupportedDisplaysKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - plane_index: u32, - p_display_count: *mut u32, - p_displays: *mut DisplayKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDisplayModePropertiesKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - display: DisplayKHR, - p_property_count: *mut u32, - p_properties: *mut DisplayModePropertiesKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDisplayModeKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - display: DisplayKHR, - p_create_info: *const DisplayModeCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_mode: *mut DisplayModeKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - mode: DisplayModeKHR, - plane_index: u32, - p_capabilities: *mut DisplayPlaneCapabilitiesKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDisplayPlaneSurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const DisplaySurfaceCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_display instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_display_properties_khr: - PFN_vkGetPhysicalDeviceDisplayPropertiesKHR, - pub get_physical_device_display_plane_properties_khr: - PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, - pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR, - pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR, - pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR, - pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR, - pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_display_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_display_properties_khr( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut DisplayPropertiesKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_display_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceDisplayPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_display_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_display_plane_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_display_plane_properties_khr( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut DisplayPlanePropertiesKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_display_plane_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_display_plane_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - get_display_plane_supported_displays_khr: unsafe { - unsafe extern "system" fn get_display_plane_supported_displays_khr( - _physical_device: PhysicalDevice, - _plane_index: u32, - _p_display_count: *mut u32, - _p_displays: *mut DisplayKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_display_plane_supported_displays_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDisplayPlaneSupportedDisplaysKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_display_plane_supported_displays_khr - } else { - ::core::mem::transmute(val) - } - }, - get_display_mode_properties_khr: unsafe { - unsafe extern "system" fn get_display_mode_properties_khr( - _physical_device: PhysicalDevice, - _display: DisplayKHR, - _p_property_count: *mut u32, - _p_properties: *mut DisplayModePropertiesKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_display_mode_properties_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDisplayModePropertiesKHR\0"); - let val = _f(cname); - if val.is_null() { - get_display_mode_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - create_display_mode_khr: unsafe { - unsafe extern "system" fn create_display_mode_khr( - _physical_device: PhysicalDevice, - _display: DisplayKHR, - _p_create_info: *const DisplayModeCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_mode: *mut DisplayModeKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_display_mode_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateDisplayModeKHR\0"); - let val = _f(cname); - if val.is_null() { - create_display_mode_khr - } else { - ::core::mem::transmute(val) - } - }, - get_display_plane_capabilities_khr: unsafe { - unsafe extern "system" fn get_display_plane_capabilities_khr( - _physical_device: PhysicalDevice, - _mode: DisplayModeKHR, - _plane_index: u32, - _p_capabilities: *mut DisplayPlaneCapabilitiesKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_display_plane_capabilities_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDisplayPlaneCapabilitiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_display_plane_capabilities_khr - } else { - ::core::mem::transmute(val) - } - }, - create_display_plane_surface_khr: unsafe { - unsafe extern "system" fn create_display_plane_surface_khr( - _instance: crate::vk::Instance, - _p_create_info: *const DisplaySurfaceCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_display_plane_surface_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateDisplayPlaneSurfaceKHR\0", - ); - let val = _f(cname); - if val.is_null() { - create_display_plane_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_display instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_display_swapchain"] - pub mod display_swapchain { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display_swapchain\0") }; - pub const SPEC_VERSION: u32 = 10u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateSharedSwapchainsKHR = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain_count: u32, - p_create_infos: *const SwapchainCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_swapchains: *mut SwapchainKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_display_swapchain device-level function pointers"] - pub struct DeviceFn { - pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_shared_swapchains_khr: unsafe { - unsafe extern "system" fn create_shared_swapchains_khr( - _device: crate::vk::Device, - _swapchain_count: u32, - _p_create_infos: *const SwapchainCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_swapchains: *mut SwapchainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_shared_swapchains_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateSharedSwapchainsKHR\0"); - let val = _f(cname); - if val.is_null() { - create_shared_swapchains_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_display_swapchain device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_xlib_surface"] - pub mod xlib_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xlib_surface\0") }; - pub const SPEC_VERSION: u32 = 6u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const XlibSurfaceCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - dpy: *mut Display, - visual_id: VisualID, - ) -> Bool32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_xlib_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR, - pub get_physical_device_xlib_presentation_support_khr: - PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_xlib_surface_khr: unsafe { - unsafe extern "system" fn create_xlib_surface_khr( - _instance: crate::vk::Instance, - _p_create_info: *const XlibSurfaceCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_xlib_surface_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateXlibSurfaceKHR\0"); - let val = _f(cname); - if val.is_null() { - create_xlib_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_xlib_presentation_support_khr: unsafe { - unsafe extern "system" fn get_physical_device_xlib_presentation_support_khr( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _dpy: *mut Display, - _visual_id: VisualID, - ) -> Bool32 { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_xlib_presentation_support_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_xlib_presentation_support_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_xlib_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_xcb_surface"] - pub mod xcb_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xcb_surface\0") }; - pub const SPEC_VERSION: u32 = 6u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const XcbSurfaceCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - connection: *mut xcb_connection_t, - visual_id: xcb_visualid_t, - ) -> Bool32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_xcb_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR, - pub get_physical_device_xcb_presentation_support_khr: - PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_xcb_surface_khr: unsafe { - unsafe extern "system" fn create_xcb_surface_khr( - _instance: crate::vk::Instance, - _p_create_info: *const XcbSurfaceCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_xcb_surface_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateXcbSurfaceKHR\0"); - let val = _f(cname); - if val.is_null() { - create_xcb_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_xcb_presentation_support_khr: unsafe { - unsafe extern "system" fn get_physical_device_xcb_presentation_support_khr( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _connection: *mut xcb_connection_t, - _visual_id: xcb_visualid_t, - ) -> Bool32 { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_xcb_presentation_support_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_xcb_presentation_support_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_xcb_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_wayland_surface"] - pub mod wayland_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_wayland_surface\0") }; - pub const SPEC_VERSION: u32 = 6u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - display: *mut wl_display, - ) -> Bool32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_wayland_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR, - pub get_physical_device_wayland_presentation_support_khr: - PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_wayland_surface_khr: unsafe { - unsafe extern "system" fn create_wayland_surface_khr( - _instance: crate::vk::Instance, - _p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_wayland_surface_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateWaylandSurfaceKHR\0"); - let val = _f(cname); - if val.is_null() { - create_wayland_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_wayland_presentation_support_khr: unsafe { - unsafe extern "system" fn get_physical_device_wayland_presentation_support_khr( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _display: *mut wl_display, - ) -> Bool32 { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_wayland_presentation_support_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_wayland_presentation_support_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_wayland_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_android_surface"] - pub mod android_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_android_surface\0") }; - pub const SPEC_VERSION: u32 = 6u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const AndroidSurfaceCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_android_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_android_surface_khr: unsafe { - unsafe extern "system" fn create_android_surface_khr( - _instance: crate::vk::Instance, - _p_create_info: *const AndroidSurfaceCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_android_surface_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateAndroidSurfaceKHR\0"); - let val = _f(cname); - if val.is_null() { - create_android_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_android_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_win32_surface"] - pub mod win32_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_surface\0") }; - pub const SPEC_VERSION: u32 = 6u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateWin32SurfaceKHR = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const Win32SurfaceCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - ) -> Bool32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_win32_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR, - pub get_physical_device_win32_presentation_support_khr: - PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_win32_surface_khr: unsafe { - unsafe extern "system" fn create_win32_surface_khr( - _instance: crate::vk::Instance, - _p_create_info: *const Win32SurfaceCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_win32_surface_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateWin32SurfaceKHR\0"); - let val = _f(cname); - if val.is_null() { - create_win32_surface_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_win32_presentation_support_khr: unsafe { - unsafe extern "system" fn get_physical_device_win32_presentation_support_khr( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - ) -> Bool32 { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_win32_presentation_support_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_win32_presentation_support_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_win32_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_sampler_mirror_clamp_to_edge"] - pub mod sampler_mirror_clamp_to_edge { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_sampler_mirror_clamp_to_edge\0") - }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_KHR_video_queue"] - pub mod video_queue { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_queue\0") }; - pub const SPEC_VERSION: u32 = 8u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_video_profile: *const VideoProfileInfoKHR<'_>, - p_capabilities: *mut VideoCapabilitiesKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR<'_>, - p_video_format_property_count: *mut u32, - p_video_format_properties: *mut VideoFormatPropertiesKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_video_queue instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_video_capabilities_khr: - PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR, - pub get_physical_device_video_format_properties_khr: - PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_video_capabilities_khr: unsafe { - unsafe extern "system" fn get_physical_device_video_capabilities_khr( - _physical_device: PhysicalDevice, - _p_video_profile: *const VideoProfileInfoKHR<'_>, - _p_capabilities: *mut VideoCapabilitiesKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_video_capabilities_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_video_capabilities_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_video_format_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_video_format_properties_khr( - _physical_device: PhysicalDevice, - _p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR<'_>, - _p_video_format_property_count: *mut u32, - _p_video_format_properties: *mut VideoFormatPropertiesKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_video_format_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_video_format_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_video_queue instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkCreateVideoSessionKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const VideoSessionCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_video_session: *mut VideoSessionKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyVideoSessionKHR = unsafe extern "system" fn( - device: crate::vk::Device, - video_session: VideoSessionKHR, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetVideoSessionMemoryRequirementsKHR = unsafe extern "system" fn( - device: crate::vk::Device, - video_session: VideoSessionKHR, - p_memory_requirements_count: *mut u32, - p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkBindVideoSessionMemoryKHR = unsafe extern "system" fn( - device: crate::vk::Device, - video_session: VideoSessionKHR, - bind_session_memory_info_count: u32, - p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateVideoSessionParametersKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_video_session_parameters: *mut VideoSessionParametersKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkUpdateVideoSessionParametersKHR = unsafe extern "system" fn( - device: crate::vk::Device, - video_session_parameters: VideoSessionParametersKHR, - p_update_info: *const VideoSessionParametersUpdateInfoKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyVideoSessionParametersKHR = unsafe extern "system" fn( - device: crate::vk::Device, - video_session_parameters: VideoSessionParametersKHR, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginVideoCodingKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_begin_info: *const VideoBeginCodingInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndVideoCodingKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_end_coding_info: *const VideoEndCodingInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdControlVideoCodingKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_coding_control_info: *const VideoCodingControlInfoKHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_video_queue device-level function pointers"] - pub struct DeviceFn { - pub create_video_session_khr: PFN_vkCreateVideoSessionKHR, - pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR, - pub get_video_session_memory_requirements_khr: - PFN_vkGetVideoSessionMemoryRequirementsKHR, - pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR, - pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR, - pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR, - pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR, - pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR, - pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR, - pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_video_session_khr: unsafe { - unsafe extern "system" fn create_video_session_khr( - _device: crate::vk::Device, - _p_create_info: *const VideoSessionCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_video_session: *mut VideoSessionKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_video_session_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateVideoSessionKHR\0"); - let val = _f(cname); - if val.is_null() { - create_video_session_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_video_session_khr: unsafe { - unsafe extern "system" fn destroy_video_session_khr( - _device: crate::vk::Device, - _video_session: VideoSessionKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_video_session_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyVideoSessionKHR\0"); - let val = _f(cname); - if val.is_null() { - destroy_video_session_khr - } else { - ::core::mem::transmute(val) - } - }, - get_video_session_memory_requirements_khr: unsafe { - unsafe extern "system" fn get_video_session_memory_requirements_khr( - _device: crate::vk::Device, - _video_session: VideoSessionKHR, - _p_memory_requirements_count: *mut u32, - _p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_video_session_memory_requirements_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetVideoSessionMemoryRequirementsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_video_session_memory_requirements_khr - } else { - ::core::mem::transmute(val) - } - }, - bind_video_session_memory_khr: unsafe { - unsafe extern "system" fn bind_video_session_memory_khr( - _device: crate::vk::Device, - _video_session: VideoSessionKHR, - _bind_session_memory_info_count: u32, - _p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_video_session_memory_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkBindVideoSessionMemoryKHR\0"); - let val = _f(cname); - if val.is_null() { - bind_video_session_memory_khr - } else { - ::core::mem::transmute(val) - } - }, - create_video_session_parameters_khr: unsafe { - unsafe extern "system" fn create_video_session_parameters_khr( - _device: crate::vk::Device, - _p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_video_session_parameters: *mut VideoSessionParametersKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_video_session_parameters_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateVideoSessionParametersKHR\0", - ); - let val = _f(cname); - if val.is_null() { - create_video_session_parameters_khr - } else { - ::core::mem::transmute(val) - } - }, - update_video_session_parameters_khr: unsafe { - unsafe extern "system" fn update_video_session_parameters_khr( - _device: crate::vk::Device, - _video_session_parameters: VideoSessionParametersKHR, - _p_update_info: *const VideoSessionParametersUpdateInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(update_video_session_parameters_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkUpdateVideoSessionParametersKHR\0", - ); - let val = _f(cname); - if val.is_null() { - update_video_session_parameters_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_video_session_parameters_khr: unsafe { - unsafe extern "system" fn destroy_video_session_parameters_khr( - _device: crate::vk::Device, - _video_session_parameters: VideoSessionParametersKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_video_session_parameters_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyVideoSessionParametersKHR\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_video_session_parameters_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_video_coding_khr: unsafe { - unsafe extern "system" fn cmd_begin_video_coding_khr( - _command_buffer: CommandBuffer, - _p_begin_info: *const VideoBeginCodingInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_video_coding_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginVideoCodingKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_video_coding_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_video_coding_khr: unsafe { - unsafe extern "system" fn cmd_end_video_coding_khr( - _command_buffer: CommandBuffer, - _p_end_coding_info: *const VideoEndCodingInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_video_coding_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndVideoCodingKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_video_coding_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_control_video_coding_khr: unsafe { - unsafe extern "system" fn cmd_control_video_coding_khr( - _command_buffer: CommandBuffer, - _p_coding_control_info: *const VideoCodingControlInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_control_video_coding_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdControlVideoCodingKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_control_video_coding_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_video_queue device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_video_decode_queue"] - pub mod video_decode_queue { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_queue\0") }; - pub const SPEC_VERSION: u32 = 8u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDecodeVideoKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_decode_info: *const VideoDecodeInfoKHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_video_decode_queue device-level function pointers"] - pub struct DeviceFn { - pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_decode_video_khr: unsafe { - unsafe extern "system" fn cmd_decode_video_khr( - _command_buffer: CommandBuffer, - _p_decode_info: *const VideoDecodeInfoKHR<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_decode_video_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDecodeVideoKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_decode_video_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_video_decode_queue device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_video_encode_h264"] - pub mod video_encode_h264 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_h264\0") }; - pub const SPEC_VERSION: u32 = 14u32; - } - #[doc = "VK_KHR_video_encode_h265"] - pub mod video_encode_h265 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_h265\0") }; - pub const SPEC_VERSION: u32 = 14u32; - } - #[doc = "VK_KHR_video_decode_h264"] - pub mod video_decode_h264 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_h264\0") }; - pub const SPEC_VERSION: u32 = 9u32; - } - #[doc = "VK_KHR_dynamic_rendering"] - pub mod dynamic_rendering { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginRendering = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_rendering_info: *const RenderingInfo<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndRendering = unsafe extern "system" fn(command_buffer: CommandBuffer); - #[derive(Clone)] - #[doc = "Raw VK_KHR_dynamic_rendering device-level function pointers"] - pub struct DeviceFn { - pub cmd_begin_rendering_khr: PFN_vkCmdBeginRendering, - pub cmd_end_rendering_khr: PFN_vkCmdEndRendering, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_begin_rendering_khr: unsafe { - unsafe extern "system" fn cmd_begin_rendering_khr( - _command_buffer: CommandBuffer, - _p_rendering_info: *const RenderingInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_rendering_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderingKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_rendering_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_rendering_khr: unsafe { - unsafe extern "system" fn cmd_end_rendering_khr( - _command_buffer: CommandBuffer, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_rendering_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderingKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_rendering_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_dynamic_rendering device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_multiview"] - pub mod multiview { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_multiview\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_get_physical_device_properties2"] - pub mod get_physical_device_properties2 { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_physical_device_properties2\0") - }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceFeatures2 = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_features: *mut PhysicalDeviceFeatures2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceProperties2 = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_properties: *mut PhysicalDeviceProperties2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceFormatProperties2 = unsafe extern "system" fn( - physical_device: PhysicalDevice, - format: Format, - p_format_properties: *mut FormatProperties2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceImageFormatProperties2 = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>, - p_image_format_properties: *mut ImageFormatProperties2<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_queue_family_property_count: *mut u32, - p_queue_family_properties: *mut QueueFamilyProperties2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceMemoryProperties2 = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>, - p_property_count: *mut u32, - p_properties: *mut SparseImageFormatProperties2<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_get_physical_device_properties2 instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_features2_khr: PFN_vkGetPhysicalDeviceFeatures2, - pub get_physical_device_properties2_khr: PFN_vkGetPhysicalDeviceProperties2, - pub get_physical_device_format_properties2_khr: - PFN_vkGetPhysicalDeviceFormatProperties2, - pub get_physical_device_image_format_properties2_khr: - PFN_vkGetPhysicalDeviceImageFormatProperties2, - pub get_physical_device_queue_family_properties2_khr: - PFN_vkGetPhysicalDeviceQueueFamilyProperties2, - pub get_physical_device_memory_properties2_khr: - PFN_vkGetPhysicalDeviceMemoryProperties2, - pub get_physical_device_sparse_image_format_properties2_khr: - PFN_vkGetPhysicalDeviceSparseImageFormatProperties2, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_features2_khr: unsafe { - unsafe extern "system" fn get_physical_device_features2_khr( - _physical_device: PhysicalDevice, - _p_features: *mut PhysicalDeviceFeatures2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_features2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceFeatures2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_features2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_properties2_khr( - _physical_device: PhysicalDevice, - _p_properties: *mut PhysicalDeviceProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_format_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_format_properties2_khr( - _physical_device: PhysicalDevice, - _format: Format, - _p_format_properties: *mut FormatProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_format_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceFormatProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_format_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_image_format_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_image_format_properties2_khr( - _physical_device: PhysicalDevice, - _p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>, - _p_image_format_properties: *mut ImageFormatProperties2<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_image_format_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceImageFormatProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_image_format_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_queue_family_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_queue_family_properties2_khr( - _physical_device: PhysicalDevice, - _p_queue_family_property_count: *mut u32, - _p_queue_family_properties: *mut QueueFamilyProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_queue_family_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_queue_family_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_memory_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_memory_properties2_khr( - _physical_device: PhysicalDevice, - _p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_memory_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceMemoryProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_memory_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_sparse_image_format_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_sparse_image_format_properties2_khr( - _physical_device: PhysicalDevice, - _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>, - _p_property_count: *mut u32, - _p_properties: *mut SparseImageFormatProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_sparse_image_format_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_sparse_image_format_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_get_physical_device_properties2 instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_device_group"] - pub mod device_group { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group\0") }; - pub const SPEC_VERSION: u32 = 4u32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_device_group instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_present_rectangles_khr: - crate::vk::khr::swapchain::PFN_vkGetPhysicalDevicePresentRectanglesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_present_rectangles_khr: unsafe { - unsafe extern "system" fn get_physical_device_present_rectangles_khr( - _physical_device: PhysicalDevice, - _surface: SurfaceKHR, - _p_rect_count: *mut u32, - _p_rects: *mut Rect2D, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_present_rectangles_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDevicePresentRectanglesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_present_rectangles_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_device_group instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = unsafe extern "system" fn( - device: crate::vk::Device, - heap_index: u32, - local_device_index: u32, - remote_device_index: u32, - p_peer_memory_features: *mut PeerMemoryFeatureFlags, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDeviceMask = - unsafe extern "system" fn(command_buffer: CommandBuffer, device_mask: u32); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDispatchBase = unsafe extern "system" fn( - command_buffer: CommandBuffer, - base_group_x: u32, - base_group_y: u32, - base_group_z: u32, - group_count_x: u32, - group_count_y: u32, - group_count_z: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_device_group device-level function pointers"] - pub struct DeviceFn { - pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeatures, - pub cmd_set_device_mask_khr: PFN_vkCmdSetDeviceMask, - pub cmd_dispatch_base_khr: PFN_vkCmdDispatchBase, - pub get_device_group_present_capabilities_khr: - crate::vk::khr::swapchain::PFN_vkGetDeviceGroupPresentCapabilitiesKHR, - pub get_device_group_surface_present_modes_khr: - crate::vk::khr::swapchain::PFN_vkGetDeviceGroupSurfacePresentModesKHR, - pub acquire_next_image2_khr: crate::vk::khr::swapchain::PFN_vkAcquireNextImage2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_device_group_peer_memory_features_khr: unsafe { - unsafe extern "system" fn get_device_group_peer_memory_features_khr( - _device: crate::vk::Device, - _heap_index: u32, - _local_device_index: u32, - _remote_device_index: u32, - _p_peer_memory_features: *mut PeerMemoryFeatureFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_peer_memory_features_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_group_peer_memory_features_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_device_mask_khr: unsafe { - unsafe extern "system" fn cmd_set_device_mask_khr( - _command_buffer: CommandBuffer, - _device_mask: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_device_mask_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMaskKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_device_mask_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch_base_khr: unsafe { - unsafe extern "system" fn cmd_dispatch_base_khr( - _command_buffer: CommandBuffer, - _base_group_x: u32, - _base_group_y: u32, - _base_group_z: u32, - _group_count_x: u32, - _group_count_y: u32, - _group_count_z: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_dispatch_base_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBaseKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_dispatch_base_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_present_capabilities_khr: unsafe { - unsafe extern "system" fn get_device_group_present_capabilities_khr( - _device: crate::vk::Device, - _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_present_capabilities_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupPresentCapabilitiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_group_present_capabilities_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_surface_present_modes_khr: unsafe { - unsafe extern "system" fn get_device_group_surface_present_modes_khr( - _device: crate::vk::Device, - _surface: SurfaceKHR, - _p_modes: *mut DeviceGroupPresentModeFlagsKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_surface_present_modes_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceGroupSurfacePresentModesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_group_surface_present_modes_khr - } else { - ::core::mem::transmute(val) - } - }, - acquire_next_image2_khr: unsafe { - unsafe extern "system" fn acquire_next_image2_khr( - _device: crate::vk::Device, - _p_acquire_info: *const AcquireNextImageInfoKHR<'_>, - _p_image_index: *mut u32, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_next_image2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0"); - let val = _f(cname); - if val.is_null() { - acquire_next_image2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_device_group device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_draw_parameters"] - pub mod shader_draw_parameters { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_draw_parameters\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_maintenance1"] - pub mod maintenance1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance1\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkTrimCommandPool = unsafe extern "system" fn( - device: crate::vk::Device, - command_pool: CommandPool, - flags: CommandPoolTrimFlags, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_maintenance1 device-level function pointers"] - pub struct DeviceFn { - pub trim_command_pool_khr: PFN_vkTrimCommandPool, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - trim_command_pool_khr: unsafe { - unsafe extern "system" fn trim_command_pool_khr( - _device: crate::vk::Device, - _command_pool: CommandPool, - _flags: CommandPoolTrimFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(trim_command_pool_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPoolKHR\0"); - let val = _f(cname); - if val.is_null() { - trim_command_pool_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_maintenance1 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_device_group_creation"] - pub mod device_group_creation { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group_creation\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkEnumeratePhysicalDeviceGroups = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_physical_device_group_count: *mut u32, - p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_device_group_creation instance-level function pointers"] - pub struct InstanceFn { - pub enumerate_physical_device_groups_khr: PFN_vkEnumeratePhysicalDeviceGroups, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - enumerate_physical_device_groups_khr: unsafe { - unsafe extern "system" fn enumerate_physical_device_groups_khr( - _instance: crate::vk::Instance, - _p_physical_device_group_count: *mut u32, - _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_physical_device_groups_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkEnumeratePhysicalDeviceGroupsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - enumerate_physical_device_groups_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_device_group_creation instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_external_memory_capabilities"] - pub mod external_memory_capabilities { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_capabilities\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceExternalBufferProperties = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo<'_>, - p_external_buffer_properties: *mut ExternalBufferProperties<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_memory_capabilities instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_external_buffer_properties_khr: - PFN_vkGetPhysicalDeviceExternalBufferProperties, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_external_buffer_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_external_buffer_properties_khr( - _physical_device: PhysicalDevice, - _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo<'_>, - _p_external_buffer_properties: *mut ExternalBufferProperties<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_buffer_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalBufferPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_buffer_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_memory_capabilities instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_external_memory"] - pub mod external_memory { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_external_memory_win32"] - pub mod external_memory_win32 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_win32\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryWin32HandleKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR<'_>, - p_handle: *mut HANDLE, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryWin32HandlePropertiesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - handle_type: ExternalMemoryHandleTypeFlags, - handle: HANDLE, - p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_memory_win32 device-level function pointers"] - pub struct DeviceFn { - pub get_memory_win32_handle_khr: PFN_vkGetMemoryWin32HandleKHR, - pub get_memory_win32_handle_properties_khr: PFN_vkGetMemoryWin32HandlePropertiesKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_memory_win32_handle_khr: unsafe { - unsafe extern "system" fn get_memory_win32_handle_khr( - _device: crate::vk::Device, - _p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR<'_>, - _p_handle: *mut HANDLE, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_win32_handle_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleKHR\0"); - let val = _f(cname); - if val.is_null() { - get_memory_win32_handle_khr - } else { - ::core::mem::transmute(val) - } - }, - get_memory_win32_handle_properties_khr: unsafe { - unsafe extern "system" fn get_memory_win32_handle_properties_khr( - _device: crate::vk::Device, - _handle_type: ExternalMemoryHandleTypeFlags, - _handle: HANDLE, - _p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_win32_handle_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetMemoryWin32HandlePropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_memory_win32_handle_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_memory_win32 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_external_memory_fd"] - pub mod external_memory_fd { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_fd\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryFdKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_fd_info: *const MemoryGetFdInfoKHR<'_>, - p_fd: *mut c_int, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryFdPropertiesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - handle_type: ExternalMemoryHandleTypeFlags, - fd: c_int, - p_memory_fd_properties: *mut MemoryFdPropertiesKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_memory_fd device-level function pointers"] - pub struct DeviceFn { - pub get_memory_fd_khr: PFN_vkGetMemoryFdKHR, - pub get_memory_fd_properties_khr: PFN_vkGetMemoryFdPropertiesKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_memory_fd_khr: unsafe { - unsafe extern "system" fn get_memory_fd_khr( - _device: crate::vk::Device, - _p_get_fd_info: *const MemoryGetFdInfoKHR<'_>, - _p_fd: *mut c_int, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_memory_fd_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdKHR\0"); - let val = _f(cname); - if val.is_null() { - get_memory_fd_khr - } else { - ::core::mem::transmute(val) - } - }, - get_memory_fd_properties_khr: unsafe { - unsafe extern "system" fn get_memory_fd_properties_khr( - _device: crate::vk::Device, - _handle_type: ExternalMemoryHandleTypeFlags, - _fd: c_int, - _p_memory_fd_properties: *mut MemoryFdPropertiesKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_fd_properties_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdPropertiesKHR\0"); - let val = _f(cname); - if val.is_null() { - get_memory_fd_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_memory_fd device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_win32_keyed_mutex"] - pub mod win32_keyed_mutex { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_keyed_mutex\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_external_semaphore_capabilities"] - pub mod external_semaphore_capabilities { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_capabilities\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo<'_>, - p_external_semaphore_properties: *mut ExternalSemaphoreProperties<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_semaphore_capabilities instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_external_semaphore_properties_khr: - PFN_vkGetPhysicalDeviceExternalSemaphoreProperties, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_external_semaphore_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_external_semaphore_properties_khr( - _physical_device: PhysicalDevice, - _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo< - '_, - >, - _p_external_semaphore_properties: *mut ExternalSemaphoreProperties<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_semaphore_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_semaphore_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_semaphore_capabilities instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_external_semaphore"] - pub mod external_semaphore { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_external_semaphore_win32"] - pub mod external_semaphore_win32 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_win32\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkImportSemaphoreWin32HandleKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSemaphoreWin32HandleKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR<'_>, - p_handle: *mut HANDLE, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_semaphore_win32 device-level function pointers"] - pub struct DeviceFn { - pub import_semaphore_win32_handle_khr: PFN_vkImportSemaphoreWin32HandleKHR, - pub get_semaphore_win32_handle_khr: PFN_vkGetSemaphoreWin32HandleKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - import_semaphore_win32_handle_khr: unsafe { - unsafe extern "system" fn import_semaphore_win32_handle_khr( - _device: crate::vk::Device, - _p_import_semaphore_win32_handle_info : * const ImportSemaphoreWin32HandleInfoKHR < '_ >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(import_semaphore_win32_handle_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkImportSemaphoreWin32HandleKHR\0", - ); - let val = _f(cname); - if val.is_null() { - import_semaphore_win32_handle_khr - } else { - ::core::mem::transmute(val) - } - }, - get_semaphore_win32_handle_khr: unsafe { - unsafe extern "system" fn get_semaphore_win32_handle_khr( - _device: crate::vk::Device, - _p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR<'_>, - _p_handle: *mut HANDLE, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_semaphore_win32_handle_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreWin32HandleKHR\0"); - let val = _f(cname); - if val.is_null() { - get_semaphore_win32_handle_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_semaphore_win32 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_external_semaphore_fd"] - pub mod external_semaphore_fd { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_fd\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkImportSemaphoreFdKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSemaphoreFdKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_fd_info: *const SemaphoreGetFdInfoKHR<'_>, - p_fd: *mut c_int, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_semaphore_fd device-level function pointers"] - pub struct DeviceFn { - pub import_semaphore_fd_khr: PFN_vkImportSemaphoreFdKHR, - pub get_semaphore_fd_khr: PFN_vkGetSemaphoreFdKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - import_semaphore_fd_khr: unsafe { - unsafe extern "system" fn import_semaphore_fd_khr( - _device: crate::vk::Device, - _p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(import_semaphore_fd_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkImportSemaphoreFdKHR\0"); - let val = _f(cname); - if val.is_null() { - import_semaphore_fd_khr - } else { - ::core::mem::transmute(val) - } - }, - get_semaphore_fd_khr: unsafe { - unsafe extern "system" fn get_semaphore_fd_khr( - _device: crate::vk::Device, - _p_get_fd_info: *const SemaphoreGetFdInfoKHR<'_>, - _p_fd: *mut c_int, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_semaphore_fd_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreFdKHR\0"); - let val = _f(cname); - if val.is_null() { - get_semaphore_fd_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_semaphore_fd device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_push_descriptor"] - pub mod push_descriptor { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_push_descriptor\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - pipeline_bind_point: PipelineBindPoint, - layout: PipelineLayout, - set: u32, - descriptor_write_count: u32, - p_descriptor_writes: *const WriteDescriptorSet<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - descriptor_update_template: DescriptorUpdateTemplate, - layout: PipelineLayout, - set: u32, - p_data: *const c_void, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_push_descriptor device-level function pointers"] - pub struct DeviceFn { - pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSetKHR, - pub cmd_push_descriptor_set_with_template_khr: - PFN_vkCmdPushDescriptorSetWithTemplateKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_push_descriptor_set_khr: unsafe { - unsafe extern "system" fn cmd_push_descriptor_set_khr( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _layout: PipelineLayout, - _set: u32, - _descriptor_write_count: u32, - _p_descriptor_writes: *const WriteDescriptorSet<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_push_descriptor_set_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_push_descriptor_set_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_push_descriptor_set_with_template_khr: unsafe { - unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr( - _command_buffer: CommandBuffer, - _descriptor_update_template: DescriptorUpdateTemplate, - _layout: PipelineLayout, - _set: u32, - _p_data: *const c_void, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_push_descriptor_set_with_template_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdPushDescriptorSetWithTemplateKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_push_descriptor_set_with_template_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_push_descriptor device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_float16_int8"] - pub mod shader_float16_int8 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float16_int8\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_16bit_storage"] - pub mod _16bit_storage { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_16bit_storage\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_incremental_present"] - pub mod incremental_present { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_incremental_present\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_KHR_descriptor_update_template"] - pub mod descriptor_update_template { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_descriptor_update_template\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDescriptorUpdateTemplate = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_descriptor_update_template: *mut DescriptorUpdateTemplate, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyDescriptorUpdateTemplate = unsafe extern "system" fn( - device: crate::vk::Device, - descriptor_update_template: DescriptorUpdateTemplate, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkUpdateDescriptorSetWithTemplate = unsafe extern "system" fn( - device: crate::vk::Device, - descriptor_set: DescriptorSet, - descriptor_update_template: DescriptorUpdateTemplate, - p_data: *const c_void, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_descriptor_update_template device-level function pointers"] - pub struct DeviceFn { - pub create_descriptor_update_template_khr: PFN_vkCreateDescriptorUpdateTemplate, - pub destroy_descriptor_update_template_khr: PFN_vkDestroyDescriptorUpdateTemplate, - pub update_descriptor_set_with_template_khr: PFN_vkUpdateDescriptorSetWithTemplate, - pub cmd_push_descriptor_set_with_template_khr: - crate::vk::khr::push_descriptor::PFN_vkCmdPushDescriptorSetWithTemplateKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_descriptor_update_template_khr: unsafe { - unsafe extern "system" fn create_descriptor_update_template_khr( - _device: crate::vk::Device, - _p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_descriptor_update_template: *mut DescriptorUpdateTemplate, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_descriptor_update_template_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateDescriptorUpdateTemplateKHR\0", - ); - let val = _f(cname); - if val.is_null() { - create_descriptor_update_template_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_descriptor_update_template_khr: unsafe { - unsafe extern "system" fn destroy_descriptor_update_template_khr( - _device: crate::vk::Device, - _descriptor_update_template: DescriptorUpdateTemplate, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_descriptor_update_template_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyDescriptorUpdateTemplateKHR\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_descriptor_update_template_khr - } else { - ::core::mem::transmute(val) - } - }, - update_descriptor_set_with_template_khr: unsafe { - unsafe extern "system" fn update_descriptor_set_with_template_khr( - _device: crate::vk::Device, - _descriptor_set: DescriptorSet, - _descriptor_update_template: DescriptorUpdateTemplate, - _p_data: *const c_void, - ) { - panic!(concat!( - "Unable to load ", - stringify!(update_descriptor_set_with_template_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkUpdateDescriptorSetWithTemplateKHR\0", - ); - let val = _f(cname); - if val.is_null() { - update_descriptor_set_with_template_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_push_descriptor_set_with_template_khr: unsafe { - unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr( - _command_buffer: CommandBuffer, - _descriptor_update_template: DescriptorUpdateTemplate, - _layout: PipelineLayout, - _set: u32, - _p_data: *const c_void, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_push_descriptor_set_with_template_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdPushDescriptorSetWithTemplateKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_push_descriptor_set_with_template_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_descriptor_update_template device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_imageless_framebuffer"] - pub mod imageless_framebuffer { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_imageless_framebuffer\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_create_renderpass2"] - pub mod create_renderpass2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_create_renderpass2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const RenderPassCreateInfo2<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_render_pass: *mut RenderPass, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBeginRenderPass2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_render_pass_begin: *const RenderPassBeginInfo<'_>, - p_subpass_begin_info: *const SubpassBeginInfo<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdNextSubpass2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_subpass_begin_info: *const SubpassBeginInfo<'_>, - p_subpass_end_info: *const SubpassEndInfo<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEndRenderPass2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_subpass_end_info: *const SubpassEndInfo<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_create_renderpass2 device-level function pointers"] - pub struct DeviceFn { - pub create_render_pass2_khr: PFN_vkCreateRenderPass2, - pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2, - pub cmd_next_subpass2_khr: PFN_vkCmdNextSubpass2, - pub cmd_end_render_pass2_khr: PFN_vkCmdEndRenderPass2, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_render_pass2_khr: unsafe { - unsafe extern "system" fn create_render_pass2_khr( - _device: crate::vk::Device, - _p_create_info: *const RenderPassCreateInfo2<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_render_pass: *mut RenderPass, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_render_pass2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2KHR\0"); - let val = _f(cname); - if val.is_null() { - create_render_pass2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_render_pass2_khr: unsafe { - unsafe extern "system" fn cmd_begin_render_pass2_khr( - _command_buffer: CommandBuffer, - _p_render_pass_begin: *const RenderPassBeginInfo<'_>, - _p_subpass_begin_info: *const SubpassBeginInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_render_pass2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_render_pass2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_next_subpass2_khr: unsafe { - unsafe extern "system" fn cmd_next_subpass2_khr( - _command_buffer: CommandBuffer, - _p_subpass_begin_info: *const SubpassBeginInfo<'_>, - _p_subpass_end_info: *const SubpassEndInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_next_subpass2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_next_subpass2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_render_pass2_khr: unsafe { - unsafe extern "system" fn cmd_end_render_pass2_khr( - _command_buffer: CommandBuffer, - _p_subpass_end_info: *const SubpassEndInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_end_render_pass2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_render_pass2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_create_renderpass2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shared_presentable_image"] - pub mod shared_presentable_image { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shared_presentable_image\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSwapchainStatusKHR = - unsafe extern "system" fn(device: crate::vk::Device, swapchain: SwapchainKHR) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_shared_presentable_image device-level function pointers"] - pub struct DeviceFn { - pub get_swapchain_status_khr: PFN_vkGetSwapchainStatusKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_swapchain_status_khr: unsafe { - unsafe extern "system" fn get_swapchain_status_khr( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_swapchain_status_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainStatusKHR\0"); - let val = _f(cname); - if val.is_null() { - get_swapchain_status_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_shared_presentable_image device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_external_fence_capabilities"] - pub mod external_fence_capabilities { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_capabilities\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceExternalFenceProperties = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_external_fence_info: *const PhysicalDeviceExternalFenceInfo<'_>, - p_external_fence_properties: *mut ExternalFenceProperties<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_fence_capabilities instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_external_fence_properties_khr: - PFN_vkGetPhysicalDeviceExternalFenceProperties, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_external_fence_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_external_fence_properties_khr( - _physical_device: PhysicalDevice, - _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo<'_>, - _p_external_fence_properties: *mut ExternalFenceProperties<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_fence_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalFencePropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_fence_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_fence_capabilities instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_external_fence"] - pub mod external_fence { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_external_fence_win32"] - pub mod external_fence_win32 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_win32\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkImportFenceWin32HandleKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetFenceWin32HandleKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR<'_>, - p_handle: *mut HANDLE, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_fence_win32 device-level function pointers"] - pub struct DeviceFn { - pub import_fence_win32_handle_khr: PFN_vkImportFenceWin32HandleKHR, - pub get_fence_win32_handle_khr: PFN_vkGetFenceWin32HandleKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - import_fence_win32_handle_khr: unsafe { - unsafe extern "system" fn import_fence_win32_handle_khr( - _device: crate::vk::Device, - _p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(import_fence_win32_handle_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkImportFenceWin32HandleKHR\0"); - let val = _f(cname); - if val.is_null() { - import_fence_win32_handle_khr - } else { - ::core::mem::transmute(val) - } - }, - get_fence_win32_handle_khr: unsafe { - unsafe extern "system" fn get_fence_win32_handle_khr( - _device: crate::vk::Device, - _p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR<'_>, - _p_handle: *mut HANDLE, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_fence_win32_handle_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetFenceWin32HandleKHR\0"); - let val = _f(cname); - if val.is_null() { - get_fence_win32_handle_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_fence_win32 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_external_fence_fd"] - pub mod external_fence_fd { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_fd\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkImportFenceFdKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_import_fence_fd_info: *const ImportFenceFdInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetFenceFdKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_get_fd_info: *const FenceGetFdInfoKHR<'_>, - p_fd: *mut c_int, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_external_fence_fd device-level function pointers"] - pub struct DeviceFn { - pub import_fence_fd_khr: PFN_vkImportFenceFdKHR, - pub get_fence_fd_khr: PFN_vkGetFenceFdKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - import_fence_fd_khr: unsafe { - unsafe extern "system" fn import_fence_fd_khr( - _device: crate::vk::Device, - _p_import_fence_fd_info: *const ImportFenceFdInfoKHR<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(import_fence_fd_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkImportFenceFdKHR\0"); - let val = _f(cname); - if val.is_null() { - import_fence_fd_khr - } else { - ::core::mem::transmute(val) - } - }, - get_fence_fd_khr: unsafe { - unsafe extern "system" fn get_fence_fd_khr( - _device: crate::vk::Device, - _p_get_fd_info: *const FenceGetFdInfoKHR<'_>, - _p_fd: *mut c_int, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_fence_fd_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetFenceFdKHR\0"); - let val = _f(cname); - if val.is_null() { - get_fence_fd_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_external_fence_fd device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_performance_query"] - pub mod performance_query { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_performance_query\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - p_counter_count: *mut u32, - p_counters: *mut PerformanceCounterKHR<'_>, - p_counter_descriptions: *mut PerformanceCounterDescriptionKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR<'_>, - p_num_passes: *mut u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_performance_query instance-level function pointers"] - pub struct InstanceFn { - pub enumerate_physical_device_queue_family_performance_query_counters_khr: - PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, - pub get_physical_device_queue_family_performance_query_passes_khr: - PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - enumerate_physical_device_queue_family_performance_query_counters_khr: unsafe { - unsafe extern "system" fn enumerate_physical_device_queue_family_performance_query_counters_khr( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _p_counter_count: *mut u32, - _p_counters: *mut PerformanceCounterKHR<'_>, - _p_counter_descriptions: *mut PerformanceCounterDescriptionKHR<'_>, - ) -> Result { - panic ! (concat ! ("Unable to load " , stringify ! (enumerate_physical_device_queue_family_performance_query_counters_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\0", - ); - let val = _f(cname); - if val.is_null() { - enumerate_physical_device_queue_family_performance_query_counters_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_queue_family_performance_query_passes_khr: unsafe { - unsafe extern "system" fn get_physical_device_queue_family_performance_query_passes_khr( - _physical_device: PhysicalDevice, - _p_performance_query_create_info : * const QueryPoolPerformanceCreateInfoKHR < '_ >, - _p_num_passes: *mut u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!( - get_physical_device_queue_family_performance_query_passes_khr - ) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_queue_family_performance_query_passes_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_performance_query instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireProfilingLockKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const AcquireProfilingLockInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkReleaseProfilingLockKHR = - unsafe extern "system" fn(device: crate::vk::Device); - #[derive(Clone)] - #[doc = "Raw VK_KHR_performance_query device-level function pointers"] - pub struct DeviceFn { - pub acquire_profiling_lock_khr: PFN_vkAcquireProfilingLockKHR, - pub release_profiling_lock_khr: PFN_vkReleaseProfilingLockKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - acquire_profiling_lock_khr: unsafe { - unsafe extern "system" fn acquire_profiling_lock_khr( - _device: crate::vk::Device, - _p_info: *const AcquireProfilingLockInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_profiling_lock_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireProfilingLockKHR\0"); - let val = _f(cname); - if val.is_null() { - acquire_profiling_lock_khr - } else { - ::core::mem::transmute(val) - } - }, - release_profiling_lock_khr: unsafe { - unsafe extern "system" fn release_profiling_lock_khr( - _device: crate::vk::Device, - ) { - panic!(concat!( - "Unable to load ", - stringify!(release_profiling_lock_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkReleaseProfilingLockKHR\0"); - let val = _f(cname); - if val.is_null() { - release_profiling_lock_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_performance_query device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_maintenance2"] - pub mod maintenance2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_get_surface_capabilities2"] - pub mod get_surface_capabilities2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_surface_capabilities2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - p_surface_capabilities: *mut SurfaceCapabilities2KHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - p_surface_format_count: *mut u32, - p_surface_formats: *mut SurfaceFormat2KHR<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_get_surface_capabilities2 instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_surface_capabilities2_khr: - PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR, - pub get_physical_device_surface_formats2_khr: PFN_vkGetPhysicalDeviceSurfaceFormats2KHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_surface_capabilities2_khr: unsafe { - unsafe extern "system" fn get_physical_device_surface_capabilities2_khr( - _physical_device: PhysicalDevice, - _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - _p_surface_capabilities: *mut SurfaceCapabilities2KHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_capabilities2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceCapabilities2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_capabilities2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_surface_formats2_khr: unsafe { - unsafe extern "system" fn get_physical_device_surface_formats2_khr( - _physical_device: PhysicalDevice, - _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, - _p_surface_format_count: *mut u32, - _p_surface_formats: *mut SurfaceFormat2KHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_surface_formats2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSurfaceFormats2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_surface_formats2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_get_surface_capabilities2 instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_variable_pointers"] - pub mod variable_pointers { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_variable_pointers\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_get_display_properties2"] - pub mod get_display_properties2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_display_properties2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_property_count: *mut u32, - p_properties: *mut DisplayProperties2KHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_property_count: *mut u32, - p_properties: *mut DisplayPlaneProperties2KHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDisplayModeProperties2KHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - display: DisplayKHR, - p_property_count: *mut u32, - p_properties: *mut DisplayModeProperties2KHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDisplayPlaneCapabilities2KHR = unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_display_plane_info: *const DisplayPlaneInfo2KHR<'_>, - p_capabilities: *mut DisplayPlaneCapabilities2KHR<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_get_display_properties2 instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_display_properties2_khr: - PFN_vkGetPhysicalDeviceDisplayProperties2KHR, - pub get_physical_device_display_plane_properties2_khr: - PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, - pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR, - pub get_display_plane_capabilities2_khr: PFN_vkGetDisplayPlaneCapabilities2KHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_display_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_display_properties2_khr( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut DisplayProperties2KHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_display_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceDisplayProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_display_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_display_plane_properties2_khr: unsafe { - unsafe extern "system" fn get_physical_device_display_plane_properties2_khr( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut DisplayPlaneProperties2KHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_display_plane_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceDisplayPlaneProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_display_plane_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_display_mode_properties2_khr: unsafe { - unsafe extern "system" fn get_display_mode_properties2_khr( - _physical_device: PhysicalDevice, - _display: DisplayKHR, - _p_property_count: *mut u32, - _p_properties: *mut DisplayModeProperties2KHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_display_mode_properties2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDisplayModeProperties2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_display_mode_properties2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_display_plane_capabilities2_khr: unsafe { - unsafe extern "system" fn get_display_plane_capabilities2_khr( - _physical_device: PhysicalDevice, - _p_display_plane_info: *const DisplayPlaneInfo2KHR<'_>, - _p_capabilities: *mut DisplayPlaneCapabilities2KHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_display_plane_capabilities2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDisplayPlaneCapabilities2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_display_plane_capabilities2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_get_display_properties2 instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_dedicated_allocation"] - pub mod dedicated_allocation { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dedicated_allocation\0") }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_KHR_storage_buffer_storage_class"] - pub mod storage_buffer_storage_class { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_storage_buffer_storage_class\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_relaxed_block_layout"] - pub mod relaxed_block_layout { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_relaxed_block_layout\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_get_memory_requirements2"] - pub mod get_memory_requirements2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_memory_requirements2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageMemoryRequirements2 = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const ImageMemoryRequirementsInfo2<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetBufferMemoryRequirements2 = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const BufferMemoryRequirementsInfo2<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageSparseMemoryRequirements2 = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, - p_sparse_memory_requirement_count: *mut u32, - p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_get_memory_requirements2 device-level function pointers"] - pub struct DeviceFn { - pub get_image_memory_requirements2_khr: PFN_vkGetImageMemoryRequirements2, - pub get_buffer_memory_requirements2_khr: PFN_vkGetBufferMemoryRequirements2, - pub get_image_sparse_memory_requirements2_khr: PFN_vkGetImageSparseMemoryRequirements2, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_image_memory_requirements2_khr: unsafe { - unsafe extern "system" fn get_image_memory_requirements2_khr( - _device: crate::vk::Device, - _p_info: *const ImageMemoryRequirementsInfo2<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_memory_requirements2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageMemoryRequirements2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_memory_requirements2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_memory_requirements2_khr: unsafe { - unsafe extern "system" fn get_buffer_memory_requirements2_khr( - _device: crate::vk::Device, - _p_info: *const BufferMemoryRequirementsInfo2<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_memory_requirements2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetBufferMemoryRequirements2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_buffer_memory_requirements2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_image_sparse_memory_requirements2_khr: unsafe { - unsafe extern "system" fn get_image_sparse_memory_requirements2_khr( - _device: crate::vk::Device, - _p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, - _p_sparse_memory_requirement_count: *mut u32, - _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_sparse_memory_requirements2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageSparseMemoryRequirements2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_sparse_memory_requirements2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_get_memory_requirements2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_image_format_list"] - pub mod image_format_list { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_image_format_list\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_acceleration_structure"] - pub mod acceleration_structure { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_acceleration_structure\0") }; - pub const SPEC_VERSION: u32 = 13u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const AccelerationStructureCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_acceleration_structure: *mut AccelerationStructureKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyAccelerationStructureKHR = unsafe extern "system" fn( - device: crate::vk::Device, - acceleration_structure: AccelerationStructureKHR, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBuildAccelerationStructuresKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - info_count: u32, - p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBuildAccelerationStructuresIndirectKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - info_count: u32, - p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - p_indirect_device_addresses: *const DeviceAddress, - p_indirect_strides: *const u32, - pp_max_primitive_counts: *const *const u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkBuildAccelerationStructuresKHR = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - info_count: u32, - p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyAccelerationStructureKHR = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - p_info: *const CopyAccelerationStructureInfoKHR<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = - unsafe extern "system" fn( - device: crate::vk::Device, - acceleration_structure_count: u32, - p_acceleration_structures: *const AccelerationStructureKHR, - query_type: QueryType, - data_size: usize, - p_data: *mut c_void, - stride: usize, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyAccelerationStructureKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const CopyAccelerationStructureInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetAccelerationStructureDeviceAddressKHR = - unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const AccelerationStructureDeviceAddressInfoKHR<'_>, - ) -> DeviceAddress; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - acceleration_structure_count: u32, - p_acceleration_structures: *const AccelerationStructureKHR, - query_type: QueryType, - query_pool: QueryPool, - first_query: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = - unsafe extern "system" fn( - device: crate::vk::Device, - p_version_info: *const AccelerationStructureVersionInfoKHR<'_>, - p_compatibility: *mut AccelerationStructureCompatibilityKHR, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetAccelerationStructureBuildSizesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - build_type: AccelerationStructureBuildTypeKHR, - p_build_info: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - p_max_primitive_counts: *const u32, - p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_acceleration_structure device-level function pointers"] - pub struct DeviceFn { - pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR, - pub destroy_acceleration_structure_khr: PFN_vkDestroyAccelerationStructureKHR, - pub cmd_build_acceleration_structures_khr: PFN_vkCmdBuildAccelerationStructuresKHR, - pub cmd_build_acceleration_structures_indirect_khr: - PFN_vkCmdBuildAccelerationStructuresIndirectKHR, - pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR, - pub copy_acceleration_structure_khr: PFN_vkCopyAccelerationStructureKHR, - pub copy_acceleration_structure_to_memory_khr: - PFN_vkCopyAccelerationStructureToMemoryKHR, - pub copy_memory_to_acceleration_structure_khr: - PFN_vkCopyMemoryToAccelerationStructureKHR, - pub write_acceleration_structures_properties_khr: - PFN_vkWriteAccelerationStructuresPropertiesKHR, - pub cmd_copy_acceleration_structure_khr: PFN_vkCmdCopyAccelerationStructureKHR, - pub cmd_copy_acceleration_structure_to_memory_khr: - PFN_vkCmdCopyAccelerationStructureToMemoryKHR, - pub cmd_copy_memory_to_acceleration_structure_khr: - PFN_vkCmdCopyMemoryToAccelerationStructureKHR, - pub get_acceleration_structure_device_address_khr: - PFN_vkGetAccelerationStructureDeviceAddressKHR, - pub cmd_write_acceleration_structures_properties_khr: - PFN_vkCmdWriteAccelerationStructuresPropertiesKHR, - pub get_device_acceleration_structure_compatibility_khr: - PFN_vkGetDeviceAccelerationStructureCompatibilityKHR, - pub get_acceleration_structure_build_sizes_khr: - PFN_vkGetAccelerationStructureBuildSizesKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_acceleration_structure_khr: unsafe { - unsafe extern "system" fn create_acceleration_structure_khr( - _device: crate::vk::Device, - _p_create_info: *const AccelerationStructureCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_acceleration_structure: *mut AccelerationStructureKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_acceleration_structure_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateAccelerationStructureKHR\0", - ); - let val = _f(cname); - if val.is_null() { - create_acceleration_structure_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_acceleration_structure_khr: unsafe { - unsafe extern "system" fn destroy_acceleration_structure_khr( - _device: crate::vk::Device, - _acceleration_structure: AccelerationStructureKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_acceleration_structure_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyAccelerationStructureKHR\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_acceleration_structure_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_build_acceleration_structures_khr: unsafe { - unsafe extern "system" fn cmd_build_acceleration_structures_khr( - _command_buffer: CommandBuffer, - _info_count: u32, - _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - _pp_build_range_infos : * const * const AccelerationStructureBuildRangeInfoKHR, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_build_acceleration_structures_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBuildAccelerationStructuresKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_build_acceleration_structures_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_build_acceleration_structures_indirect_khr: unsafe { - unsafe extern "system" fn cmd_build_acceleration_structures_indirect_khr( - _command_buffer: CommandBuffer, - _info_count: u32, - _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - _p_indirect_device_addresses: *const DeviceAddress, - _p_indirect_strides: *const u32, - _pp_max_primitive_counts: *const *const u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_build_acceleration_structures_indirect_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBuildAccelerationStructuresIndirectKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_build_acceleration_structures_indirect_khr - } else { - ::core::mem::transmute(val) - } - }, - build_acceleration_structures_khr: unsafe { - unsafe extern "system" fn build_acceleration_structures_khr( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _info_count: u32, - _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - _pp_build_range_infos : * const * const AccelerationStructureBuildRangeInfoKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(build_acceleration_structures_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkBuildAccelerationStructuresKHR\0", - ); - let val = _f(cname); - if val.is_null() { - build_acceleration_structures_khr - } else { - ::core::mem::transmute(val) - } - }, - copy_acceleration_structure_khr: unsafe { - unsafe extern "system" fn copy_acceleration_structure_khr( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _p_info: *const CopyAccelerationStructureInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_acceleration_structure_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCopyAccelerationStructureKHR\0", - ); - let val = _f(cname); - if val.is_null() { - copy_acceleration_structure_khr - } else { - ::core::mem::transmute(val) - } - }, - copy_acceleration_structure_to_memory_khr: unsafe { - unsafe extern "system" fn copy_acceleration_structure_to_memory_khr( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_acceleration_structure_to_memory_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCopyAccelerationStructureToMemoryKHR\0", - ); - let val = _f(cname); - if val.is_null() { - copy_acceleration_structure_to_memory_khr - } else { - ::core::mem::transmute(val) - } - }, - copy_memory_to_acceleration_structure_khr: unsafe { - unsafe extern "system" fn copy_memory_to_acceleration_structure_khr( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(copy_memory_to_acceleration_structure_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCopyMemoryToAccelerationStructureKHR\0", - ); - let val = _f(cname); - if val.is_null() { - copy_memory_to_acceleration_structure_khr - } else { - ::core::mem::transmute(val) - } - }, - write_acceleration_structures_properties_khr: unsafe { - unsafe extern "system" fn write_acceleration_structures_properties_khr( - _device: crate::vk::Device, - _acceleration_structure_count: u32, - _p_acceleration_structures: *const AccelerationStructureKHR, - _query_type: QueryType, - _data_size: usize, - _p_data: *mut c_void, - _stride: usize, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(write_acceleration_structures_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkWriteAccelerationStructuresPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - write_acceleration_structures_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_acceleration_structure_khr: unsafe { - unsafe extern "system" fn cmd_copy_acceleration_structure_khr( - _command_buffer: CommandBuffer, - _p_info: *const CopyAccelerationStructureInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_acceleration_structure_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyAccelerationStructureKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_copy_acceleration_structure_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_acceleration_structure_to_memory_khr: unsafe { - unsafe extern "system" fn cmd_copy_acceleration_structure_to_memory_khr( - _command_buffer: CommandBuffer, - _p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_acceleration_structure_to_memory_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyAccelerationStructureToMemoryKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_copy_acceleration_structure_to_memory_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_memory_to_acceleration_structure_khr: unsafe { - unsafe extern "system" fn cmd_copy_memory_to_acceleration_structure_khr( - _command_buffer: CommandBuffer, - _p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_memory_to_acceleration_structure_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyMemoryToAccelerationStructureKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_copy_memory_to_acceleration_structure_khr - } else { - ::core::mem::transmute(val) - } - }, - get_acceleration_structure_device_address_khr: unsafe { - unsafe extern "system" fn get_acceleration_structure_device_address_khr( - _device: crate::vk::Device, - _p_info: *const AccelerationStructureDeviceAddressInfoKHR<'_>, - ) -> DeviceAddress { - panic!(concat!( - "Unable to load ", - stringify!(get_acceleration_structure_device_address_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureDeviceAddressKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_device_address_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_acceleration_structures_properties_khr: unsafe { - unsafe extern "system" fn cmd_write_acceleration_structures_properties_khr( - _command_buffer: CommandBuffer, - _acceleration_structure_count: u32, - _p_acceleration_structures: *const AccelerationStructureKHR, - _query_type: QueryType, - _query_pool: QueryPool, - _first_query: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_acceleration_structures_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdWriteAccelerationStructuresPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_write_acceleration_structures_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_acceleration_structure_compatibility_khr: unsafe { - unsafe extern "system" fn get_device_acceleration_structure_compatibility_khr( - _device: crate::vk::Device, - _p_version_info: *const AccelerationStructureVersionInfoKHR<'_>, - _p_compatibility: *mut AccelerationStructureCompatibilityKHR, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_acceleration_structure_compatibility_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceAccelerationStructureCompatibilityKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_acceleration_structure_compatibility_khr - } else { - ::core::mem::transmute(val) - } - }, - get_acceleration_structure_build_sizes_khr: unsafe { - unsafe extern "system" fn get_acceleration_structure_build_sizes_khr( - _device: crate::vk::Device, - _build_type: AccelerationStructureBuildTypeKHR, - _p_build_info: *const AccelerationStructureBuildGeometryInfoKHR<'_>, - _p_max_primitive_counts: *const u32, - _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_acceleration_structure_build_sizes_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureBuildSizesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_build_sizes_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_acceleration_structure device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_ray_tracing_pipeline"] - pub mod ray_tracing_pipeline { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_pipeline\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdTraceRaysKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, - p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, - p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, - p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, - width: u32, - height: u32, - depth: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCreateRayTracingPipelinesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - deferred_operation: DeferredOperationKHR, - pipeline_cache: PipelineCache, - create_info_count: u32, - p_create_infos: *const RayTracingPipelineCreateInfoKHR<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_pipelines: *mut Pipeline, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - pipeline: Pipeline, - first_group: u32, - group_count: u32, - data_size: usize, - p_data: *mut c_void, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = - unsafe extern "system" fn( - device: crate::vk::Device, - pipeline: Pipeline, - first_group: u32, - group_count: u32, - data_size: usize, - p_data: *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdTraceRaysIndirectKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, - p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, - p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, - p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, - indirect_device_address: DeviceAddress, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = - unsafe extern "system" fn( - device: crate::vk::Device, - pipeline: Pipeline, - group: u32, - group_shader: ShaderGroupShaderKHR, - ) -> DeviceSize; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRayTracingPipelineStackSizeKHR = - unsafe extern "system" fn(command_buffer: CommandBuffer, pipeline_stack_size: u32); - #[derive(Clone)] - #[doc = "Raw VK_KHR_ray_tracing_pipeline device-level function pointers"] - pub struct DeviceFn { - pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR, - pub create_ray_tracing_pipelines_khr: PFN_vkCreateRayTracingPipelinesKHR, - pub get_ray_tracing_shader_group_handles_khr: PFN_vkGetRayTracingShaderGroupHandlesKHR, - pub get_ray_tracing_capture_replay_shader_group_handles_khr: - PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, - pub cmd_trace_rays_indirect_khr: PFN_vkCmdTraceRaysIndirectKHR, - pub get_ray_tracing_shader_group_stack_size_khr: - PFN_vkGetRayTracingShaderGroupStackSizeKHR, - pub cmd_set_ray_tracing_pipeline_stack_size_khr: - PFN_vkCmdSetRayTracingPipelineStackSizeKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_trace_rays_khr: unsafe { - unsafe extern "system" fn cmd_trace_rays_khr( - _command_buffer: CommandBuffer, - _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _width: u32, - _height: u32, - _depth: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_trace_rays_khr - } else { - ::core::mem::transmute(val) - } - }, - create_ray_tracing_pipelines_khr: unsafe { - unsafe extern "system" fn create_ray_tracing_pipelines_khr( - _device: crate::vk::Device, - _deferred_operation: DeferredOperationKHR, - _pipeline_cache: PipelineCache, - _create_info_count: u32, - _p_create_infos: *const RayTracingPipelineCreateInfoKHR<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipelines: *mut Pipeline, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_ray_tracing_pipelines_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateRayTracingPipelinesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - create_ray_tracing_pipelines_khr - } else { - ::core::mem::transmute(val) - } - }, - get_ray_tracing_shader_group_handles_khr: unsafe { - unsafe extern "system" fn get_ray_tracing_shader_group_handles_khr( - _device: crate::vk::Device, - _pipeline: Pipeline, - _first_group: u32, - _group_count: u32, - _data_size: usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_ray_tracing_shader_group_handles_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRayTracingShaderGroupHandlesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_ray_tracing_shader_group_handles_khr - } else { - ::core::mem::transmute(val) - } - }, - get_ray_tracing_capture_replay_shader_group_handles_khr: unsafe { - unsafe extern "system" fn get_ray_tracing_capture_replay_shader_group_handles_khr( - _device: crate::vk::Device, - _pipeline: Pipeline, - _first_group: u32, - _group_count: u32, - _data_size: usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_ray_tracing_capture_replay_shader_group_handles_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_ray_tracing_capture_replay_shader_group_handles_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_trace_rays_indirect_khr: unsafe { - unsafe extern "system" fn cmd_trace_rays_indirect_khr( - _command_buffer: CommandBuffer, - _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, - _indirect_device_address: DeviceAddress, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_trace_rays_indirect_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirectKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_trace_rays_indirect_khr - } else { - ::core::mem::transmute(val) - } - }, - get_ray_tracing_shader_group_stack_size_khr: unsafe { - unsafe extern "system" fn get_ray_tracing_shader_group_stack_size_khr( - _device: crate::vk::Device, - _pipeline: Pipeline, - _group: u32, - _group_shader: ShaderGroupShaderKHR, - ) -> DeviceSize { - panic!(concat!( - "Unable to load ", - stringify!(get_ray_tracing_shader_group_stack_size_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRayTracingShaderGroupStackSizeKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_ray_tracing_shader_group_stack_size_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_ray_tracing_pipeline_stack_size_khr: unsafe { - unsafe extern "system" fn cmd_set_ray_tracing_pipeline_stack_size_khr( - _command_buffer: CommandBuffer, - _pipeline_stack_size: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_ray_tracing_pipeline_stack_size_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRayTracingPipelineStackSizeKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_ray_tracing_pipeline_stack_size_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_ray_tracing_pipeline device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_ray_query"] - pub mod ray_query { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_query\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_sampler_ycbcr_conversion"] - pub mod sampler_ycbcr_conversion { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_sampler_ycbcr_conversion\0") }; - pub const SPEC_VERSION: u32 = 14u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateSamplerYcbcrConversion = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_ycbcr_conversion: *mut SamplerYcbcrConversion, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroySamplerYcbcrConversion = unsafe extern "system" fn( - device: crate::vk::Device, - ycbcr_conversion: SamplerYcbcrConversion, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_sampler_ycbcr_conversion device-level function pointers"] - pub struct DeviceFn { - pub create_sampler_ycbcr_conversion_khr: PFN_vkCreateSamplerYcbcrConversion, - pub destroy_sampler_ycbcr_conversion_khr: PFN_vkDestroySamplerYcbcrConversion, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_sampler_ycbcr_conversion_khr: unsafe { - unsafe extern "system" fn create_sampler_ycbcr_conversion_khr( - _device: crate::vk::Device, - _p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_ycbcr_conversion: *mut SamplerYcbcrConversion, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_sampler_ycbcr_conversion_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateSamplerYcbcrConversionKHR\0", - ); - let val = _f(cname); - if val.is_null() { - create_sampler_ycbcr_conversion_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_sampler_ycbcr_conversion_khr: unsafe { - unsafe extern "system" fn destroy_sampler_ycbcr_conversion_khr( - _device: crate::vk::Device, - _ycbcr_conversion: SamplerYcbcrConversion, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_sampler_ycbcr_conversion_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroySamplerYcbcrConversionKHR\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_sampler_ycbcr_conversion_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_sampler_ycbcr_conversion device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_bind_memory2"] - pub mod bind_memory2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_bind_memory2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkBindBufferMemory2 = unsafe extern "system" fn( - device: crate::vk::Device, - bind_info_count: u32, - p_bind_infos: *const BindBufferMemoryInfo<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkBindImageMemory2 = unsafe extern "system" fn( - device: crate::vk::Device, - bind_info_count: u32, - p_bind_infos: *const BindImageMemoryInfo<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_bind_memory2 device-level function pointers"] - pub struct DeviceFn { - pub bind_buffer_memory2_khr: PFN_vkBindBufferMemory2, - pub bind_image_memory2_khr: PFN_vkBindImageMemory2, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - bind_buffer_memory2_khr: unsafe { - unsafe extern "system" fn bind_buffer_memory2_khr( - _device: crate::vk::Device, - _bind_info_count: u32, - _p_bind_infos: *const BindBufferMemoryInfo<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_buffer_memory2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2KHR\0"); - let val = _f(cname); - if val.is_null() { - bind_buffer_memory2_khr - } else { - ::core::mem::transmute(val) - } - }, - bind_image_memory2_khr: unsafe { - unsafe extern "system" fn bind_image_memory2_khr( - _device: crate::vk::Device, - _bind_info_count: u32, - _p_bind_infos: *const BindImageMemoryInfo<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_image_memory2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2KHR\0"); - let val = _f(cname); - if val.is_null() { - bind_image_memory2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_bind_memory2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_portability_subset"] - pub mod portability_subset { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_subset\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_maintenance3"] - pub mod maintenance3 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance3\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDescriptorSetLayoutSupport = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, - p_support: *mut DescriptorSetLayoutSupport<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_maintenance3 device-level function pointers"] - pub struct DeviceFn { - pub get_descriptor_set_layout_support_khr: PFN_vkGetDescriptorSetLayoutSupport, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_descriptor_set_layout_support_khr: unsafe { - unsafe extern "system" fn get_descriptor_set_layout_support_khr( - _device: crate::vk::Device, - _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, - _p_support: *mut DescriptorSetLayoutSupport<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_descriptor_set_layout_support_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDescriptorSetLayoutSupportKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_descriptor_set_layout_support_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_maintenance3 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_draw_indirect_count"] - pub mod draw_indirect_count { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_draw_indirect_count\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_draw_indirect_count device-level function pointers"] - pub struct DeviceFn { - pub cmd_draw_indirect_count_khr: - crate::vk::amd::draw_indirect_count::PFN_vkCmdDrawIndirectCount, - pub cmd_draw_indexed_indirect_count_khr: - crate::vk::amd::draw_indirect_count::PFN_vkCmdDrawIndexedIndirectCount, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_indirect_count_khr: unsafe { - unsafe extern "system" fn cmd_draw_indirect_count_khr( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indirect_count_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indirect_count_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indexed_indirect_count_khr: unsafe { - unsafe extern "system" fn cmd_draw_indexed_indirect_count_khr( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indexed_indirect_count_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDrawIndexedIndirectCountKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_draw_indexed_indirect_count_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_draw_indirect_count device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_subgroup_extended_types"] - pub mod shader_subgroup_extended_types { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_subgroup_extended_types\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_8bit_storage"] - pub mod _8bit_storage { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_8bit_storage\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_shader_atomic_int64"] - pub mod shader_atomic_int64 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_atomic_int64\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_shader_clock"] - pub mod shader_clock { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_clock\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_video_decode_h265"] - pub mod video_decode_h265 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_h265\0") }; - pub const SPEC_VERSION: u32 = 8u32; - } - #[doc = "VK_KHR_global_priority"] - pub mod global_priority { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_global_priority\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_driver_properties"] - pub mod driver_properties { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_driver_properties\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_shader_float_controls"] - pub mod shader_float_controls { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls\0") }; - pub const SPEC_VERSION: u32 = 4u32; - } - #[doc = "VK_KHR_depth_stencil_resolve"] - pub mod depth_stencil_resolve { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_depth_stencil_resolve\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_swapchain_mutable_format"] - pub mod swapchain_mutable_format { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain_mutable_format\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_timeline_semaphore"] - pub mod timeline_semaphore { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_timeline_semaphore\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetSemaphoreCounterValue = unsafe extern "system" fn( - device: crate::vk::Device, - semaphore: Semaphore, - p_value: *mut u64, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkWaitSemaphores = unsafe extern "system" fn( - device: crate::vk::Device, - p_wait_info: *const SemaphoreWaitInfo<'_>, - timeout: u64, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkSignalSemaphore = unsafe extern "system" fn( - device: crate::vk::Device, - p_signal_info: *const SemaphoreSignalInfo<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_timeline_semaphore device-level function pointers"] - pub struct DeviceFn { - pub get_semaphore_counter_value_khr: PFN_vkGetSemaphoreCounterValue, - pub wait_semaphores_khr: PFN_vkWaitSemaphores, - pub signal_semaphore_khr: PFN_vkSignalSemaphore, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_semaphore_counter_value_khr: unsafe { - unsafe extern "system" fn get_semaphore_counter_value_khr( - _device: crate::vk::Device, - _semaphore: Semaphore, - _p_value: *mut u64, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_semaphore_counter_value_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreCounterValueKHR\0"); - let val = _f(cname); - if val.is_null() { - get_semaphore_counter_value_khr - } else { - ::core::mem::transmute(val) - } - }, - wait_semaphores_khr: unsafe { - unsafe extern "system" fn wait_semaphores_khr( - _device: crate::vk::Device, - _p_wait_info: *const SemaphoreWaitInfo<'_>, - _timeout: u64, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(wait_semaphores_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphoresKHR\0"); - let val = _f(cname); - if val.is_null() { - wait_semaphores_khr - } else { - ::core::mem::transmute(val) - } - }, - signal_semaphore_khr: unsafe { - unsafe extern "system" fn signal_semaphore_khr( - _device: crate::vk::Device, - _p_signal_info: *const SemaphoreSignalInfo<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(signal_semaphore_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphoreKHR\0"); - let val = _f(cname); - if val.is_null() { - signal_semaphore_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_timeline_semaphore device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_vulkan_memory_model"] - pub mod vulkan_memory_model { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_vulkan_memory_model\0") }; - pub const SPEC_VERSION: u32 = 3u32; - } - #[doc = "VK_KHR_shader_terminate_invocation"] - pub mod shader_terminate_invocation { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_terminate_invocation\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_fragment_shading_rate"] - pub mod fragment_shading_rate { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shading_rate\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_fragment_shading_rate_count: *mut u32, - p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_fragment_shading_rate instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_fragment_shading_rates_khr: - PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_fragment_shading_rates_khr: unsafe { - unsafe extern "system" fn get_physical_device_fragment_shading_rates_khr( - _physical_device: PhysicalDevice, - _p_fragment_shading_rate_count: *mut u32, - _p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_fragment_shading_rates_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceFragmentShadingRatesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_fragment_shading_rates_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_fragment_shading_rate instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetFragmentShadingRateKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_fragment_size: *const Extent2D, - combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_fragment_shading_rate device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_fragment_shading_rate_khr: PFN_vkCmdSetFragmentShadingRateKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_fragment_shading_rate_khr: unsafe { - unsafe extern "system" fn cmd_set_fragment_shading_rate_khr( - _command_buffer: CommandBuffer, - _p_fragment_size: *const Extent2D, - _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_fragment_shading_rate_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetFragmentShadingRateKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_fragment_shading_rate_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_fragment_shading_rate device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_dynamic_rendering_local_read"] - pub mod dynamic_rendering_local_read { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering_local_read\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRenderingAttachmentLocationsKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_location_info: *const RenderingAttachmentLocationInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_dynamic_rendering_local_read device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_rendering_attachment_locations_khr: - PFN_vkCmdSetRenderingAttachmentLocationsKHR, - pub cmd_set_rendering_input_attachment_indices_khr: - PFN_vkCmdSetRenderingInputAttachmentIndicesKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_rendering_attachment_locations_khr: unsafe { - unsafe extern "system" fn cmd_set_rendering_attachment_locations_khr( - _command_buffer: CommandBuffer, - _p_location_info: *const RenderingAttachmentLocationInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rendering_attachment_locations_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRenderingAttachmentLocationsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rendering_attachment_locations_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rendering_input_attachment_indices_khr: unsafe { - unsafe extern "system" fn cmd_set_rendering_input_attachment_indices_khr( - _command_buffer: CommandBuffer, - _p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rendering_input_attachment_indices_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetRenderingInputAttachmentIndicesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_rendering_input_attachment_indices_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_dynamic_rendering_local_read device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_quad_control"] - pub mod shader_quad_control { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_quad_control\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_spirv_1_4"] - pub mod spirv_1_4 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_spirv_1_4\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_surface_protected_capabilities"] - pub mod surface_protected_capabilities { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface_protected_capabilities\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_separate_depth_stencil_layouts"] - pub mod separate_depth_stencil_layouts { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_separate_depth_stencil_layouts\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_present_wait"] - pub mod present_wait { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_wait\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkWaitForPresentKHR = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - present_id: u64, - timeout: u64, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_present_wait device-level function pointers"] - pub struct DeviceFn { - pub wait_for_present_khr: PFN_vkWaitForPresentKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - wait_for_present_khr: unsafe { - unsafe extern "system" fn wait_for_present_khr( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _present_id: u64, - _timeout: u64, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(wait_for_present_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitForPresentKHR\0"); - let val = _f(cname); - if val.is_null() { - wait_for_present_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_present_wait device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_uniform_buffer_standard_layout"] - pub mod uniform_buffer_standard_layout { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_uniform_buffer_standard_layout\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_buffer_device_address"] - pub mod buffer_device_address { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_buffer_device_address\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetBufferOpaqueCaptureAddress = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const BufferDeviceAddressInfo<'_>, - ) -> u64; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, - ) - -> u64; - #[derive(Clone)] - #[doc = "Raw VK_KHR_buffer_device_address device-level function pointers"] - pub struct DeviceFn { - pub get_buffer_device_address_khr: - crate::vk::ext::buffer_device_address::PFN_vkGetBufferDeviceAddress, - pub get_buffer_opaque_capture_address_khr: PFN_vkGetBufferOpaqueCaptureAddress, - pub get_device_memory_opaque_capture_address_khr: - PFN_vkGetDeviceMemoryOpaqueCaptureAddress, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_buffer_device_address_khr: unsafe { - unsafe extern "system" fn get_buffer_device_address_khr( - _device: crate::vk::Device, - _p_info: *const BufferDeviceAddressInfo<'_>, - ) -> DeviceAddress { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_device_address_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddressKHR\0"); - let val = _f(cname); - if val.is_null() { - get_buffer_device_address_khr - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_opaque_capture_address_khr: unsafe { - unsafe extern "system" fn get_buffer_opaque_capture_address_khr( - _device: crate::vk::Device, - _p_info: *const BufferDeviceAddressInfo<'_>, - ) -> u64 { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_opaque_capture_address_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetBufferOpaqueCaptureAddressKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_buffer_opaque_capture_address_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_memory_opaque_capture_address_khr: unsafe { - unsafe extern "system" fn get_device_memory_opaque_capture_address_khr( - _device: crate::vk::Device, - _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, - ) -> u64 { - panic!(concat!( - "Unable to load ", - stringify!(get_device_memory_opaque_capture_address_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceMemoryOpaqueCaptureAddressKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_memory_opaque_capture_address_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_buffer_device_address device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_deferred_host_operations"] - pub mod deferred_host_operations { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_deferred_host_operations\0") }; - pub const SPEC_VERSION: u32 = 4u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateDeferredOperationKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_allocator: *const AllocationCallbacks<'_>, - p_deferred_operation: *mut DeferredOperationKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyDeferredOperationKHR = unsafe extern "system" fn( - device: crate::vk::Device, - operation: DeferredOperationKHR, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR = unsafe extern "system" fn( - device: crate::vk::Device, - operation: DeferredOperationKHR, - ) - -> u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeferredOperationResultKHR = unsafe extern "system" fn( - device: crate::vk::Device, - operation: DeferredOperationKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDeferredOperationJoinKHR = unsafe extern "system" fn( - device: crate::vk::Device, - operation: DeferredOperationKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_deferred_host_operations device-level function pointers"] - pub struct DeviceFn { - pub create_deferred_operation_khr: PFN_vkCreateDeferredOperationKHR, - pub destroy_deferred_operation_khr: PFN_vkDestroyDeferredOperationKHR, - pub get_deferred_operation_max_concurrency_khr: - PFN_vkGetDeferredOperationMaxConcurrencyKHR, - pub get_deferred_operation_result_khr: PFN_vkGetDeferredOperationResultKHR, - pub deferred_operation_join_khr: PFN_vkDeferredOperationJoinKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_deferred_operation_khr: unsafe { - unsafe extern "system" fn create_deferred_operation_khr( - _device: crate::vk::Device, - _p_allocator: *const AllocationCallbacks<'_>, - _p_deferred_operation: *mut DeferredOperationKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_deferred_operation_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateDeferredOperationKHR\0"); - let val = _f(cname); - if val.is_null() { - create_deferred_operation_khr - } else { - ::core::mem::transmute(val) - } - }, - destroy_deferred_operation_khr: unsafe { - unsafe extern "system" fn destroy_deferred_operation_khr( - _device: crate::vk::Device, - _operation: DeferredOperationKHR, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_deferred_operation_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyDeferredOperationKHR\0"); - let val = _f(cname); - if val.is_null() { - destroy_deferred_operation_khr - } else { - ::core::mem::transmute(val) - } - }, - get_deferred_operation_max_concurrency_khr: unsafe { - unsafe extern "system" fn get_deferred_operation_max_concurrency_khr( - _device: crate::vk::Device, - _operation: DeferredOperationKHR, - ) -> u32 { - panic!(concat!( - "Unable to load ", - stringify!(get_deferred_operation_max_concurrency_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeferredOperationMaxConcurrencyKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_deferred_operation_max_concurrency_khr - } else { - ::core::mem::transmute(val) - } - }, - get_deferred_operation_result_khr: unsafe { - unsafe extern "system" fn get_deferred_operation_result_khr( - _device: crate::vk::Device, - _operation: DeferredOperationKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_deferred_operation_result_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeferredOperationResultKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_deferred_operation_result_khr - } else { - ::core::mem::transmute(val) - } - }, - deferred_operation_join_khr: unsafe { - unsafe extern "system" fn deferred_operation_join_khr( - _device: crate::vk::Device, - _operation: DeferredOperationKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(deferred_operation_join_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDeferredOperationJoinKHR\0"); - let val = _f(cname); - if val.is_null() { - deferred_operation_join_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_deferred_host_operations device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_pipeline_executable_properties"] - pub mod pipeline_executable_properties { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_executable_properties\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPipelineExecutablePropertiesKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_pipeline_info: *const PipelineInfoKHR<'_>, - p_executable_count: *mut u32, - p_properties: *mut PipelineExecutablePropertiesKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPipelineExecutableStatisticsKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_executable_info: *const PipelineExecutableInfoKHR<'_>, - p_statistic_count: *mut u32, - p_statistics: *mut PipelineExecutableStatisticKHR<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR = - unsafe extern "system" fn( - device: crate::vk::Device, - p_executable_info: *const PipelineExecutableInfoKHR<'_>, - p_internal_representation_count: *mut u32, - p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_pipeline_executable_properties device-level function pointers"] - pub struct DeviceFn { - pub get_pipeline_executable_properties_khr: PFN_vkGetPipelineExecutablePropertiesKHR, - pub get_pipeline_executable_statistics_khr: PFN_vkGetPipelineExecutableStatisticsKHR, - pub get_pipeline_executable_internal_representations_khr: - PFN_vkGetPipelineExecutableInternalRepresentationsKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_pipeline_executable_properties_khr: unsafe { - unsafe extern "system" fn get_pipeline_executable_properties_khr( - _device: crate::vk::Device, - _p_pipeline_info: *const PipelineInfoKHR<'_>, - _p_executable_count: *mut u32, - _p_properties: *mut PipelineExecutablePropertiesKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_executable_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineExecutablePropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_pipeline_executable_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - get_pipeline_executable_statistics_khr: unsafe { - unsafe extern "system" fn get_pipeline_executable_statistics_khr( - _device: crate::vk::Device, - _p_executable_info: *const PipelineExecutableInfoKHR<'_>, - _p_statistic_count: *mut u32, - _p_statistics: *mut PipelineExecutableStatisticKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_executable_statistics_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineExecutableStatisticsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_pipeline_executable_statistics_khr - } else { - ::core::mem::transmute(val) - } - }, - get_pipeline_executable_internal_representations_khr: unsafe { - unsafe extern "system" fn get_pipeline_executable_internal_representations_khr( - _device: crate::vk::Device, - _p_executable_info: *const PipelineExecutableInfoKHR<'_>, - _p_internal_representation_count: *mut u32, - _p_internal_representations : * mut PipelineExecutableInternalRepresentationKHR < '_ >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_executable_internal_representations_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineExecutableInternalRepresentationsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_pipeline_executable_internal_representations_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_pipeline_executable_properties device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_map_memory2"] - pub mod map_memory2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_map_memory2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkMapMemory2KHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_memory_map_info: *const MemoryMapInfoKHR<'_>, - pp_data: *mut *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkUnmapMemory2KHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_map_memory2 device-level function pointers"] - pub struct DeviceFn { - pub map_memory2_khr: PFN_vkMapMemory2KHR, - pub unmap_memory2_khr: PFN_vkUnmapMemory2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - map_memory2_khr: unsafe { - unsafe extern "system" fn map_memory2_khr( - _device: crate::vk::Device, - _p_memory_map_info: *const MemoryMapInfoKHR<'_>, - _pp_data: *mut *mut c_void, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(map_memory2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkMapMemory2KHR\0"); - let val = _f(cname); - if val.is_null() { - map_memory2_khr - } else { - ::core::mem::transmute(val) - } - }, - unmap_memory2_khr: unsafe { - unsafe extern "system" fn unmap_memory2_khr( - _device: crate::vk::Device, - _p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(unmap_memory2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory2KHR\0"); - let val = _f(cname); - if val.is_null() { - unmap_memory2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_map_memory2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_integer_dot_product"] - pub mod shader_integer_dot_product { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_integer_dot_product\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_pipeline_library"] - pub mod pipeline_library { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_library\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_shader_non_semantic_info"] - pub mod shader_non_semantic_info { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_non_semantic_info\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_present_id"] - pub mod present_id { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_id\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_video_encode_queue"] - pub mod video_encode_queue { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_queue\0") }; - pub const SPEC_VERSION: u32 = 12u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_quality_level_info: *const PhysicalDeviceVideoEncodeQualityLevelInfoKHR<'_>, - p_quality_level_properties: *mut VideoEncodeQualityLevelPropertiesKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_video_encode_queue instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_video_encode_quality_level_properties_khr: - PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_video_encode_quality_level_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_video_encode_quality_level_properties_khr( - _physical_device: PhysicalDevice, - _p_quality_level_info : * const PhysicalDeviceVideoEncodeQualityLevelInfoKHR < '_ >, - _p_quality_level_properties: *mut VideoEncodeQualityLevelPropertiesKHR< - '_, - >, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!( - get_physical_device_video_encode_quality_level_properties_khr - ) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_video_encode_quality_level_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_video_encode_queue instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkGetEncodedVideoSessionParametersKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_video_session_parameters_info: *const VideoEncodeSessionParametersGetInfoKHR<'_>, - p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR<'_>, - p_data_size: *mut usize, - p_data: *mut c_void, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdEncodeVideoKHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_encode_info: *const VideoEncodeInfoKHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_video_encode_queue device-level function pointers"] - pub struct DeviceFn { - pub get_encoded_video_session_parameters_khr: PFN_vkGetEncodedVideoSessionParametersKHR, - pub cmd_encode_video_khr: PFN_vkCmdEncodeVideoKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_encoded_video_session_parameters_khr: unsafe { - unsafe extern "system" fn get_encoded_video_session_parameters_khr( - _device: crate::vk::Device, - _p_video_session_parameters_info : * const VideoEncodeSessionParametersGetInfoKHR < '_ >, - _p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR<'_>, - _p_data_size: *mut usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_encoded_video_session_parameters_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetEncodedVideoSessionParametersKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_encoded_video_session_parameters_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_encode_video_khr: unsafe { - unsafe extern "system" fn cmd_encode_video_khr( - _command_buffer: CommandBuffer, - _p_encode_info: *const VideoEncodeInfoKHR<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_encode_video_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEncodeVideoKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_encode_video_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_video_encode_queue device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_synchronization2"] - pub mod synchronization2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_synchronization2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetEvent2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - event: Event, - p_dependency_info: *const DependencyInfo<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdResetEvent2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - event: Event, - stage_mask: PipelineStageFlags2, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWaitEvents2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - event_count: u32, - p_events: *const Event, - p_dependency_infos: *const DependencyInfo<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPipelineBarrier2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_dependency_info: *const DependencyInfo<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWriteTimestamp2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - stage: PipelineStageFlags2, - query_pool: QueryPool, - query: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkQueueSubmit2 = unsafe extern "system" fn( - queue: Queue, - submit_count: u32, - p_submits: *const SubmitInfo2<'_>, - fence: Fence, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn( - command_buffer: CommandBuffer, - stage: PipelineStageFlags2, - dst_buffer: Buffer, - dst_offset: DeviceSize, - marker: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn( - queue: Queue, - p_checkpoint_data_count: *mut u32, - p_checkpoint_data: *mut CheckpointData2NV<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_synchronization2 device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_event2_khr: PFN_vkCmdSetEvent2, - pub cmd_reset_event2_khr: PFN_vkCmdResetEvent2, - pub cmd_wait_events2_khr: PFN_vkCmdWaitEvents2, - pub cmd_pipeline_barrier2_khr: PFN_vkCmdPipelineBarrier2, - pub cmd_write_timestamp2_khr: PFN_vkCmdWriteTimestamp2, - pub queue_submit2_khr: PFN_vkQueueSubmit2, - pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD, - pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_event2_khr: unsafe { - unsafe extern "system" fn cmd_set_event2_khr( - _command_buffer: CommandBuffer, - _event: Event, - _p_dependency_info: *const DependencyInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_event2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_event2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_reset_event2_khr: unsafe { - unsafe extern "system" fn cmd_reset_event2_khr( - _command_buffer: CommandBuffer, - _event: Event, - _stage_mask: PipelineStageFlags2, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_reset_event2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_reset_event2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_wait_events2_khr: unsafe { - unsafe extern "system" fn cmd_wait_events2_khr( - _command_buffer: CommandBuffer, - _event_count: u32, - _p_events: *const Event, - _p_dependency_infos: *const DependencyInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_wait_events2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_wait_events2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_pipeline_barrier2_khr: unsafe { - unsafe extern "system" fn cmd_pipeline_barrier2_khr( - _command_buffer: CommandBuffer, - _p_dependency_info: *const DependencyInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_pipeline_barrier2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_pipeline_barrier2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_timestamp2_khr: unsafe { - unsafe extern "system" fn cmd_write_timestamp2_khr( - _command_buffer: CommandBuffer, - _stage: PipelineStageFlags2, - _query_pool: QueryPool, - _query: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_timestamp2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_write_timestamp2_khr - } else { - ::core::mem::transmute(val) - } - }, - queue_submit2_khr: unsafe { - unsafe extern "system" fn queue_submit2_khr( - _queue: Queue, - _submit_count: u32, - _p_submits: *const SubmitInfo2<'_>, - _fence: Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_submit2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0"); - let val = _f(cname); - if val.is_null() { - queue_submit2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_buffer_marker2_amd: unsafe { - unsafe extern "system" fn cmd_write_buffer_marker2_amd( - _command_buffer: CommandBuffer, - _stage: PipelineStageFlags2, - _dst_buffer: Buffer, - _dst_offset: DeviceSize, - _marker: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_buffer_marker2_amd) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarker2AMD\0"); - let val = _f(cname); - if val.is_null() { - cmd_write_buffer_marker2_amd - } else { - ::core::mem::transmute(val) - } - }, - get_queue_checkpoint_data2_nv: unsafe { - unsafe extern "system" fn get_queue_checkpoint_data2_nv( - _queue: Queue, - _p_checkpoint_data_count: *mut u32, - _p_checkpoint_data: *mut CheckpointData2NV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_queue_checkpoint_data2_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointData2NV\0"); - let val = _f(cname); - if val.is_null() { - get_queue_checkpoint_data2_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_synchronization2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_fragment_shader_barycentric"] - pub mod fragment_shader_barycentric { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shader_barycentric\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_shader_subgroup_uniform_control_flow"] - pub mod shader_subgroup_uniform_control_flow { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_subgroup_uniform_control_flow\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_zero_initialize_workgroup_memory"] - pub mod zero_initialize_workgroup_memory { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_zero_initialize_workgroup_memory\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_workgroup_memory_explicit_layout"] - pub mod workgroup_memory_explicit_layout { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_workgroup_memory_explicit_layout\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_copy_commands2"] - pub mod copy_commands2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_copy_commands2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyBuffer2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_copy_buffer_info: *const CopyBufferInfo2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyImage2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_copy_image_info: *const CopyImageInfo2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyBufferToImage2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyImageToBuffer2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBlitImage2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_blit_image_info: *const BlitImageInfo2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdResolveImage2 = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_resolve_image_info: *const ResolveImageInfo2<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_copy_commands2 device-level function pointers"] - pub struct DeviceFn { - pub cmd_copy_buffer2_khr: PFN_vkCmdCopyBuffer2, - pub cmd_copy_image2_khr: PFN_vkCmdCopyImage2, - pub cmd_copy_buffer_to_image2_khr: PFN_vkCmdCopyBufferToImage2, - pub cmd_copy_image_to_buffer2_khr: PFN_vkCmdCopyImageToBuffer2, - pub cmd_blit_image2_khr: PFN_vkCmdBlitImage2, - pub cmd_resolve_image2_khr: PFN_vkCmdResolveImage2, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_copy_buffer2_khr: unsafe { - unsafe extern "system" fn cmd_copy_buffer2_khr( - _command_buffer: CommandBuffer, - _p_copy_buffer_info: *const CopyBufferInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_buffer2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_image2_khr: unsafe { - unsafe extern "system" fn cmd_copy_image2_khr( - _command_buffer: CommandBuffer, - _p_copy_image_info: *const CopyImageInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_copy_image2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_image2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_buffer_to_image2_khr: unsafe { - unsafe extern "system" fn cmd_copy_buffer_to_image2_khr( - _command_buffer: CommandBuffer, - _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_buffer_to_image2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBufferToImage2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_buffer_to_image2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_image_to_buffer2_khr: unsafe { - unsafe extern "system" fn cmd_copy_image_to_buffer2_khr( - _command_buffer: CommandBuffer, - _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_image_to_buffer2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImageToBuffer2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_image_to_buffer2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_blit_image2_khr: unsafe { - unsafe extern "system" fn cmd_blit_image2_khr( - _command_buffer: CommandBuffer, - _p_blit_image_info: *const BlitImageInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_blit_image2_khr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_blit_image2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_resolve_image2_khr: unsafe { - unsafe extern "system" fn cmd_resolve_image2_khr( - _command_buffer: CommandBuffer, - _p_resolve_image_info: *const ResolveImageInfo2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_resolve_image2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_resolve_image2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_copy_commands2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_format_feature_flags2"] - pub mod format_feature_flags2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_format_feature_flags2\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_KHR_ray_tracing_maintenance1"] - pub mod ray_tracing_maintenance1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_maintenance1\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdTraceRaysIndirect2KHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - indirect_device_address: DeviceAddress, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_ray_tracing_maintenance1 device-level function pointers"] - pub struct DeviceFn { - pub cmd_trace_rays_indirect2_khr: PFN_vkCmdTraceRaysIndirect2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_trace_rays_indirect2_khr: unsafe { - unsafe extern "system" fn cmd_trace_rays_indirect2_khr( - _command_buffer: CommandBuffer, - _indirect_device_address: DeviceAddress, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_trace_rays_indirect2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirect2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_trace_rays_indirect2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_ray_tracing_maintenance1 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_portability_enumeration"] - pub mod portability_enumeration { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_enumeration\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_maintenance4"] - pub mod maintenance4 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance4\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceBufferMemoryRequirements = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const DeviceBufferMemoryRequirements<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceImageMemoryRequirements = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const DeviceImageMemoryRequirements<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceImageSparseMemoryRequirements = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const DeviceImageMemoryRequirements<'_>, - p_sparse_memory_requirement_count: *mut u32, - p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_maintenance4 device-level function pointers"] - pub struct DeviceFn { - pub get_device_buffer_memory_requirements_khr: PFN_vkGetDeviceBufferMemoryRequirements, - pub get_device_image_memory_requirements_khr: PFN_vkGetDeviceImageMemoryRequirements, - pub get_device_image_sparse_memory_requirements_khr: - PFN_vkGetDeviceImageSparseMemoryRequirements, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_device_buffer_memory_requirements_khr: unsafe { - unsafe extern "system" fn get_device_buffer_memory_requirements_khr( - _device: crate::vk::Device, - _p_info: *const DeviceBufferMemoryRequirements<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_buffer_memory_requirements_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceBufferMemoryRequirementsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_buffer_memory_requirements_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_image_memory_requirements_khr: unsafe { - unsafe extern "system" fn get_device_image_memory_requirements_khr( - _device: crate::vk::Device, - _p_info: *const DeviceImageMemoryRequirements<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_image_memory_requirements_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceImageMemoryRequirementsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_image_memory_requirements_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_image_sparse_memory_requirements_khr: unsafe { - unsafe extern "system" fn get_device_image_sparse_memory_requirements_khr( - _device: crate::vk::Device, - _p_info: *const DeviceImageMemoryRequirements<'_>, - _p_sparse_memory_requirement_count: *mut u32, - _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_image_sparse_memory_requirements_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceImageSparseMemoryRequirementsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_image_sparse_memory_requirements_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_maintenance4 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_subgroup_rotate"] - pub mod shader_subgroup_rotate { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_subgroup_rotate\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_KHR_shader_maximal_reconvergence"] - pub mod shader_maximal_reconvergence { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_maximal_reconvergence\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_maintenance5"] - pub mod maintenance5 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance5\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindIndexBuffer2KHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - size: DeviceSize, - index_type: IndexType, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetRenderingAreaGranularityKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, - p_granularity: *mut Extent2D, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDeviceImageSubresourceLayoutKHR = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const DeviceImageSubresourceInfoKHR<'_>, - p_layout: *mut SubresourceLayout2KHR<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_KHR_maintenance5 device-level function pointers"] - pub struct DeviceFn { - pub cmd_bind_index_buffer2_khr: PFN_vkCmdBindIndexBuffer2KHR, - pub get_rendering_area_granularity_khr: PFN_vkGetRenderingAreaGranularityKHR, - pub get_device_image_subresource_layout_khr: PFN_vkGetDeviceImageSubresourceLayoutKHR, - pub get_image_subresource_layout2_khr: - crate::vk::ext::host_image_copy::PFN_vkGetImageSubresourceLayout2KHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_bind_index_buffer2_khr: unsafe { - unsafe extern "system" fn cmd_bind_index_buffer2_khr( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _size: DeviceSize, - _index_type: IndexType, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_index_buffer2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindIndexBuffer2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_index_buffer2_khr - } else { - ::core::mem::transmute(val) - } - }, - get_rendering_area_granularity_khr: unsafe { - unsafe extern "system" fn get_rendering_area_granularity_khr( - _device: crate::vk::Device, - _p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, - _p_granularity: *mut Extent2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_rendering_area_granularity_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRenderingAreaGranularityKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_rendering_area_granularity_khr - } else { - ::core::mem::transmute(val) - } - }, - get_device_image_subresource_layout_khr: unsafe { - unsafe extern "system" fn get_device_image_subresource_layout_khr( - _device: crate::vk::Device, - _p_info: *const DeviceImageSubresourceInfoKHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_image_subresource_layout_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceImageSubresourceLayoutKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_image_subresource_layout_khr - } else { - ::core::mem::transmute(val) - } - }, - get_image_subresource_layout2_khr: unsafe { - unsafe extern "system" fn get_image_subresource_layout2_khr( - _device: crate::vk::Device, - _image: Image, - _p_subresource: *const ImageSubresource2KHR<'_>, - _p_layout: *mut SubresourceLayout2KHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_subresource_layout2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetImageSubresourceLayout2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_image_subresource_layout2_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_maintenance5 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_ray_tracing_position_fetch"] - pub mod ray_tracing_position_fetch { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_position_fetch\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_cooperative_matrix"] - pub mod cooperative_matrix { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_cooperative_matrix\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_property_count: *mut u32, - p_properties: *mut CooperativeMatrixPropertiesKHR<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_KHR_cooperative_matrix instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_cooperative_matrix_properties_khr: - PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_cooperative_matrix_properties_khr: unsafe { - unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_khr( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut CooperativeMatrixPropertiesKHR<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_cooperative_matrix_properties_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_cooperative_matrix_properties_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_cooperative_matrix instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_KHR_video_decode_av1"] - pub mod video_decode_av1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_av1\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_video_maintenance1"] - pub mod video_maintenance1 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_maintenance1\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_vertex_attribute_divisor"] - pub mod vertex_attribute_divisor { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_vertex_attribute_divisor\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_load_store_op_none"] - pub mod load_store_op_none { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_load_store_op_none\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_shader_float_controls2"] - pub mod shader_float_controls2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_index_type_uint8"] - pub mod index_type_uint8 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_index_type_uint8\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_line_rasterization"] - pub mod line_rasterization { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_line_rasterization\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_line_rasterization device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_line_stipple_khr: - crate::vk::ext::line_rasterization::PFN_vkCmdSetLineStippleKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_line_stipple_khr: unsafe { - unsafe extern "system" fn cmd_set_line_stipple_khr( - _command_buffer: CommandBuffer, - _line_stipple_factor: u32, - _line_stipple_pattern: u16, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_line_stipple_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleKHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_line_stipple_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_line_rasterization device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_calibrated_timestamps"] - pub mod calibrated_timestamps { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_calibrated_timestamps\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[derive(Clone)] - #[doc = "Raw VK_KHR_calibrated_timestamps instance-level function pointers"] - pub struct InstanceFn { pub get_physical_device_calibrateable_time_domains_khr : crate :: vk :: ext :: calibrated_timestamps :: PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR , } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_calibrateable_time_domains_khr: unsafe { - unsafe extern "system" fn get_physical_device_calibrateable_time_domains_khr( - _physical_device: PhysicalDevice, - _p_time_domain_count: *mut u32, - _p_time_domains: *mut TimeDomainKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_calibrateable_time_domains_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_calibrateable_time_domains_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_calibrated_timestamps instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[derive(Clone)] - #[doc = "Raw VK_KHR_calibrated_timestamps device-level function pointers"] - pub struct DeviceFn { - pub get_calibrated_timestamps_khr: - crate::vk::ext::calibrated_timestamps::PFN_vkGetCalibratedTimestampsKHR, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_calibrated_timestamps_khr: unsafe { - unsafe extern "system" fn get_calibrated_timestamps_khr( - _device: crate::vk::Device, - _timestamp_count: u32, - _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, - _p_timestamps: *mut u64, - _p_max_deviation: *mut u64, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_calibrated_timestamps_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetCalibratedTimestampsKHR\0"); - let val = _f(cname); - if val.is_null() { - get_calibrated_timestamps_khr - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_calibrated_timestamps device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_KHR_shader_expect_assume"] - pub mod shader_expect_assume { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_expect_assume\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_KHR_maintenance6"] - pub mod maintenance6 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance6\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindDescriptorSets2KHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_bind_descriptor_sets_info: *const BindDescriptorSetsInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPushConstants2KHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_push_constants_info: *const PushConstantsInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPushDescriptorSet2KHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_push_descriptor_set_info: *const PushDescriptorSetInfoKHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPushDescriptorSetWithTemplate2KHR = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_push_descriptor_set_with_template_info: *const PushDescriptorSetWithTemplateInfoKHR< - '_, - >, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetDescriptorBufferOffsets2EXT = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_set_descriptor_buffer_offsets_info: *const SetDescriptorBufferOffsetsInfoEXT<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = unsafe extern "system" fn (command_buffer : CommandBuffer , p_bind_descriptor_buffer_embedded_samplers_info : * const BindDescriptorBufferEmbeddedSamplersInfoEXT < '_ > ,) ; - #[derive(Clone)] - #[doc = "Raw VK_KHR_maintenance6 device-level function pointers"] - pub struct DeviceFn { - pub cmd_bind_descriptor_sets2_khr: PFN_vkCmdBindDescriptorSets2KHR, - pub cmd_push_constants2_khr: PFN_vkCmdPushConstants2KHR, - pub cmd_push_descriptor_set2_khr: PFN_vkCmdPushDescriptorSet2KHR, - pub cmd_push_descriptor_set_with_template2_khr: - PFN_vkCmdPushDescriptorSetWithTemplate2KHR, - pub cmd_set_descriptor_buffer_offsets2_ext: PFN_vkCmdSetDescriptorBufferOffsets2EXT, - pub cmd_bind_descriptor_buffer_embedded_samplers2_ext: - PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_bind_descriptor_sets2_khr: unsafe { - unsafe extern "system" fn cmd_bind_descriptor_sets2_khr( - _command_buffer: CommandBuffer, - _p_bind_descriptor_sets_info: *const BindDescriptorSetsInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_descriptor_sets2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorSets2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_descriptor_sets2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_push_constants2_khr: unsafe { - unsafe extern "system" fn cmd_push_constants2_khr( - _command_buffer: CommandBuffer, - _p_push_constants_info: *const PushConstantsInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_push_constants2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdPushConstants2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_push_constants2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_push_descriptor_set2_khr: unsafe { - unsafe extern "system" fn cmd_push_descriptor_set2_khr( - _command_buffer: CommandBuffer, - _p_push_descriptor_set_info: *const PushDescriptorSetInfoKHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_push_descriptor_set2_khr) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSet2KHR\0"); - let val = _f(cname); - if val.is_null() { - cmd_push_descriptor_set2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_push_descriptor_set_with_template2_khr: unsafe { - unsafe extern "system" fn cmd_push_descriptor_set_with_template2_khr( - _command_buffer: CommandBuffer, - _p_push_descriptor_set_with_template_info : * const PushDescriptorSetWithTemplateInfoKHR < '_ >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_push_descriptor_set_with_template2_khr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdPushDescriptorSetWithTemplate2KHR\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_push_descriptor_set_with_template2_khr - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_descriptor_buffer_offsets2_ext: unsafe { - unsafe extern "system" fn cmd_set_descriptor_buffer_offsets2_ext( - _command_buffer: CommandBuffer, - _p_set_descriptor_buffer_offsets_info : * const SetDescriptorBufferOffsetsInfoEXT < '_ >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_descriptor_buffer_offsets2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetDescriptorBufferOffsets2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_descriptor_buffer_offsets2_ext - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_descriptor_buffer_embedded_samplers2_ext: unsafe { - unsafe extern "system" fn cmd_bind_descriptor_buffer_embedded_samplers2_ext( - _command_buffer: CommandBuffer, - _p_bind_descriptor_buffer_embedded_samplers_info : * const BindDescriptorBufferEmbeddedSamplersInfoEXT < '_ >, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_descriptor_buffer_embedded_samplers2_ext) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBindDescriptorBufferEmbeddedSamplers2EXT\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_bind_descriptor_buffer_embedded_samplers2_ext - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_KHR_maintenance6 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged LUNARG"] -pub mod lunarg { - #[doc = "VK_LUNARG_direct_driver_loading"] - pub mod direct_driver_loading { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_LUNARG_direct_driver_loading\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged MSFT"] -pub mod msft { - #[doc = "VK_MSFT_layered_driver"] - pub mod layered_driver { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MSFT_layered_driver\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged MVK"] -pub mod mvk { - #[doc = "VK_MVK_ios_surface"] - pub mod ios_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MVK_ios_surface\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateIOSSurfaceMVK = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const IOSSurfaceCreateInfoMVK<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_MVK_ios_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_ios_surface_mvk: PFN_vkCreateIOSSurfaceMVK, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_ios_surface_mvk: unsafe { - unsafe extern "system" fn create_ios_surface_mvk( - _instance: crate::vk::Instance, - _p_create_info: *const IOSSurfaceCreateInfoMVK<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_ios_surface_mvk) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateIOSSurfaceMVK\0"); - let val = _f(cname); - if val.is_null() { - create_ios_surface_mvk - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_MVK_ios_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_MVK_macos_surface"] - pub mod macos_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MVK_macos_surface\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateMacOSSurfaceMVK = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const MacOSSurfaceCreateInfoMVK<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_MVK_macos_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_mac_os_surface_mvk: PFN_vkCreateMacOSSurfaceMVK, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_mac_os_surface_mvk: unsafe { - unsafe extern "system" fn create_mac_os_surface_mvk( - _instance: crate::vk::Instance, - _p_create_info: *const MacOSSurfaceCreateInfoMVK<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_mac_os_surface_mvk) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateMacOSSurfaceMVK\0"); - let val = _f(cname); - if val.is_null() { - create_mac_os_surface_mvk - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_MVK_macos_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } -} -#[doc = "Extensions tagged NN"] -pub mod nn { - #[doc = "VK_NN_vi_surface"] - pub mod vi_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NN_vi_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateViSurfaceNN = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const ViSurfaceCreateInfoNN<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NN_vi_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_vi_surface_nn: PFN_vkCreateViSurfaceNN, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_vi_surface_nn: unsafe { - unsafe extern "system" fn create_vi_surface_nn( - _instance: crate::vk::Instance, - _p_create_info: *const ViSurfaceCreateInfoNN<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_vi_surface_nn))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateViSurfaceNN\0"); - let val = _f(cname); - if val.is_null() { - create_vi_surface_nn - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NN_vi_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } -} -#[doc = "Extensions tagged NV"] -pub mod nv { - #[doc = "VK_NV_glsl_shader"] - pub mod glsl_shader { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_glsl_shader\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_dedicated_allocation"] - pub mod dedicated_allocation { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_dedicated_allocation\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_corner_sampled_image"] - pub mod corner_sampled_image { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_corner_sampled_image\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_NV_external_memory_capabilities"] - pub mod external_memory_capabilities { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_capabilities\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - format: Format, - ty: ImageType, - tiling: ImageTiling, - usage: ImageUsageFlags, - flags: ImageCreateFlags, - external_handle_type: ExternalMemoryHandleTypeFlagsNV, - p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_external_memory_capabilities instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_external_image_format_properties_nv: - PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_external_image_format_properties_nv: unsafe { - unsafe extern "system" fn get_physical_device_external_image_format_properties_nv( - _physical_device: PhysicalDevice, - _format: Format, - _ty: ImageType, - _tiling: ImageTiling, - _usage: ImageUsageFlags, - _flags: ImageCreateFlags, - _external_handle_type: ExternalMemoryHandleTypeFlagsNV, - _p_external_image_format_properties : * mut ExternalImageFormatPropertiesNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_image_format_properties_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalImageFormatPropertiesNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_image_format_properties_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_external_memory_capabilities instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_NV_external_memory"] - pub mod external_memory { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_external_memory_win32"] - pub mod external_memory_win32 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_win32\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryWin32HandleNV = unsafe extern "system" fn( - device: crate::vk::Device, - memory: DeviceMemory, - handle_type: ExternalMemoryHandleTypeFlagsNV, - p_handle: *mut HANDLE, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_external_memory_win32 device-level function pointers"] - pub struct DeviceFn { - pub get_memory_win32_handle_nv: PFN_vkGetMemoryWin32HandleNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_memory_win32_handle_nv: unsafe { - unsafe extern "system" fn get_memory_win32_handle_nv( - _device: crate::vk::Device, - _memory: DeviceMemory, - _handle_type: ExternalMemoryHandleTypeFlagsNV, - _p_handle: *mut HANDLE, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_win32_handle_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleNV\0"); - let val = _f(cname); - if val.is_null() { - get_memory_win32_handle_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_external_memory_win32 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_win32_keyed_mutex"] - pub mod win32_keyed_mutex { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_win32_keyed_mutex\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_NV_clip_space_w_scaling"] - pub mod clip_space_w_scaling { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_clip_space_w_scaling\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetViewportWScalingNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_viewport: u32, - viewport_count: u32, - p_viewport_w_scalings: *const ViewportWScalingNV, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_clip_space_w_scaling device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_viewport_w_scaling_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_w_scaling_nv( - _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_viewport_w_scalings: *const ViewportWScalingNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_w_scaling_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWScalingNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_w_scaling_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_clip_space_w_scaling device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_sample_mask_override_coverage"] - pub mod sample_mask_override_coverage { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_sample_mask_override_coverage\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_geometry_shader_passthrough"] - pub mod geometry_shader_passthrough { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_geometry_shader_passthrough\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_viewport_array2"] - pub mod viewport_array2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_array2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_viewport_swizzle"] - pub mod viewport_swizzle { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_swizzle\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_fragment_coverage_to_color"] - pub mod fragment_coverage_to_color { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_coverage_to_color\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_framebuffer_mixed_samples"] - pub mod framebuffer_mixed_samples { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_framebuffer_mixed_samples\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_fill_rectangle"] - pub mod fill_rectangle { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fill_rectangle\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_shader_sm_builtins"] - pub mod shader_sm_builtins { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_sm_builtins\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_shading_rate_image"] - pub mod shading_rate_image { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shading_rate_image\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindShadingRateImageNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - image_view: ImageView, - image_layout: ImageLayout, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetViewportShadingRatePaletteNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_viewport: u32, - viewport_count: u32, - p_shading_rate_palettes: *const ShadingRatePaletteNV<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCoarseSampleOrderNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - sample_order_type: CoarseSampleOrderTypeNV, - custom_sample_order_count: u32, - p_custom_sample_orders: *const CoarseSampleOrderCustomNV<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_shading_rate_image device-level function pointers"] - pub struct DeviceFn { - pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV, - pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV, - pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_bind_shading_rate_image_nv: unsafe { - unsafe extern "system" fn cmd_bind_shading_rate_image_nv( - _command_buffer: CommandBuffer, - _image_view: ImageView, - _image_layout: ImageLayout, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_shading_rate_image_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdBindShadingRateImageNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_shading_rate_image_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_shading_rate_palette_nv: unsafe { - unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv( - _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_shading_rate_palettes: *const ShadingRatePaletteNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_shading_rate_palette_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetViewportShadingRatePaletteNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_shading_rate_palette_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_coarse_sample_order_nv: unsafe { - unsafe extern "system" fn cmd_set_coarse_sample_order_nv( - _command_buffer: CommandBuffer, - _sample_order_type: CoarseSampleOrderTypeNV, - _custom_sample_order_count: u32, - _p_custom_sample_orders: *const CoarseSampleOrderCustomNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_coarse_sample_order_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCoarseSampleOrderNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_coarse_sample_order_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_shading_rate_image device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_ray_tracing"] - pub mod ray_tracing { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateAccelerationStructureNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const AccelerationStructureCreateInfoNV<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_acceleration_structure: *mut AccelerationStructureNV, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyAccelerationStructureNV = unsafe extern "system" fn( - device: crate::vk::Device, - acceleration_structure: AccelerationStructureNV, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetAccelerationStructureMemoryRequirementsNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, - p_memory_requirements: *mut MemoryRequirements2KHR<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkBindAccelerationStructureMemoryNV = unsafe extern "system" fn( - device: crate::vk::Device, - bind_info_count: u32, - p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBuildAccelerationStructureNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_info: *const AccelerationStructureInfoNV<'_>, - instance_data: Buffer, - instance_offset: DeviceSize, - update: Bool32, - dst: AccelerationStructureNV, - src: AccelerationStructureNV, - scratch: Buffer, - scratch_offset: DeviceSize, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyAccelerationStructureNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - dst: AccelerationStructureNV, - src: AccelerationStructureNV, - mode: CopyAccelerationStructureModeKHR, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdTraceRaysNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - raygen_shader_binding_table_buffer: Buffer, - raygen_shader_binding_offset: DeviceSize, - miss_shader_binding_table_buffer: Buffer, - miss_shader_binding_offset: DeviceSize, - miss_shader_binding_stride: DeviceSize, - hit_shader_binding_table_buffer: Buffer, - hit_shader_binding_offset: DeviceSize, - hit_shader_binding_stride: DeviceSize, - callable_shader_binding_table_buffer: Buffer, - callable_shader_binding_offset: DeviceSize, - callable_shader_binding_stride: DeviceSize, - width: u32, - height: u32, - depth: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCreateRayTracingPipelinesNV = unsafe extern "system" fn( - device: crate::vk::Device, - pipeline_cache: PipelineCache, - create_info_count: u32, - p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_pipelines: *mut Pipeline, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetAccelerationStructureHandleNV = unsafe extern "system" fn( - device: crate::vk::Device, - acceleration_structure: AccelerationStructureNV, - data_size: usize, - p_data: *mut c_void, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdWriteAccelerationStructuresPropertiesNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - acceleration_structure_count: u32, - p_acceleration_structures: *const AccelerationStructureNV, - query_type: QueryType, - query_pool: QueryPool, - first_query: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCompileDeferredNV = unsafe extern "system" fn( - device: crate::vk::Device, - pipeline: Pipeline, - shader: u32, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_ray_tracing device-level function pointers"] - pub struct DeviceFn { - pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV, - pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV, - pub get_acceleration_structure_memory_requirements_nv: - PFN_vkGetAccelerationStructureMemoryRequirementsNV, - pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV, - pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV, - pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV, - pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV, - pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV, - pub get_ray_tracing_shader_group_handles_nv: - crate::vk::khr::ray_tracing_pipeline::PFN_vkGetRayTracingShaderGroupHandlesKHR, - pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV, - pub cmd_write_acceleration_structures_properties_nv: - PFN_vkCmdWriteAccelerationStructuresPropertiesNV, - pub compile_deferred_nv: PFN_vkCompileDeferredNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_acceleration_structure_nv: unsafe { - unsafe extern "system" fn create_acceleration_structure_nv( - _device: crate::vk::Device, - _p_create_info: *const AccelerationStructureCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_acceleration_structure: *mut AccelerationStructureNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_acceleration_structure_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateAccelerationStructureNV\0", - ); - let val = _f(cname); - if val.is_null() { - create_acceleration_structure_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_acceleration_structure_nv: unsafe { - unsafe extern "system" fn destroy_acceleration_structure_nv( - _device: crate::vk::Device, - _acceleration_structure: AccelerationStructureNV, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_acceleration_structure_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyAccelerationStructureNV\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_acceleration_structure_nv - } else { - ::core::mem::transmute(val) - } - }, - get_acceleration_structure_memory_requirements_nv: unsafe { - unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv( - _device: crate::vk::Device, - _p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, - _p_memory_requirements: *mut MemoryRequirements2KHR<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_acceleration_structure_memory_requirements_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureMemoryRequirementsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_memory_requirements_nv - } else { - ::core::mem::transmute(val) - } - }, - bind_acceleration_structure_memory_nv: unsafe { - unsafe extern "system" fn bind_acceleration_structure_memory_nv( - _device: crate::vk::Device, - _bind_info_count: u32, - _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_acceleration_structure_memory_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkBindAccelerationStructureMemoryNV\0", - ); - let val = _f(cname); - if val.is_null() { - bind_acceleration_structure_memory_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_build_acceleration_structure_nv: unsafe { - unsafe extern "system" fn cmd_build_acceleration_structure_nv( - _command_buffer: CommandBuffer, - _p_info: *const AccelerationStructureInfoNV<'_>, - _instance_data: Buffer, - _instance_offset: DeviceSize, - _update: Bool32, - _dst: AccelerationStructureNV, - _src: AccelerationStructureNV, - _scratch: Buffer, - _scratch_offset: DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_build_acceleration_structure_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBuildAccelerationStructureNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_build_acceleration_structure_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_acceleration_structure_nv: unsafe { - unsafe extern "system" fn cmd_copy_acceleration_structure_nv( - _command_buffer: CommandBuffer, - _dst: AccelerationStructureNV, - _src: AccelerationStructureNV, - _mode: CopyAccelerationStructureModeKHR, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_acceleration_structure_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyAccelerationStructureNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_copy_acceleration_structure_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_trace_rays_nv: unsafe { - unsafe extern "system" fn cmd_trace_rays_nv( - _command_buffer: CommandBuffer, - _raygen_shader_binding_table_buffer: Buffer, - _raygen_shader_binding_offset: DeviceSize, - _miss_shader_binding_table_buffer: Buffer, - _miss_shader_binding_offset: DeviceSize, - _miss_shader_binding_stride: DeviceSize, - _hit_shader_binding_table_buffer: Buffer, - _hit_shader_binding_offset: DeviceSize, - _hit_shader_binding_stride: DeviceSize, - _callable_shader_binding_table_buffer: Buffer, - _callable_shader_binding_offset: DeviceSize, - _callable_shader_binding_stride: DeviceSize, - _width: u32, - _height: u32, - _depth: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_trace_rays_nv - } else { - ::core::mem::transmute(val) - } - }, - create_ray_tracing_pipelines_nv: unsafe { - unsafe extern "system" fn create_ray_tracing_pipelines_nv( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _create_info_count: u32, - _p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipelines: *mut Pipeline, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_ray_tracing_pipelines_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateRayTracingPipelinesNV\0"); - let val = _f(cname); - if val.is_null() { - create_ray_tracing_pipelines_nv - } else { - ::core::mem::transmute(val) - } - }, - get_ray_tracing_shader_group_handles_nv: unsafe { - unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv( - _device: crate::vk::Device, - _pipeline: Pipeline, - _first_group: u32, - _group_count: u32, - _data_size: usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_ray_tracing_shader_group_handles_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetRayTracingShaderGroupHandlesNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_ray_tracing_shader_group_handles_nv - } else { - ::core::mem::transmute(val) - } - }, - get_acceleration_structure_handle_nv: unsafe { - unsafe extern "system" fn get_acceleration_structure_handle_nv( - _device: crate::vk::Device, - _acceleration_structure: AccelerationStructureNV, - _data_size: usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_acceleration_structure_handle_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetAccelerationStructureHandleNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_acceleration_structure_handle_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_acceleration_structures_properties_nv: unsafe { - unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv( - _command_buffer: CommandBuffer, - _acceleration_structure_count: u32, - _p_acceleration_structures: *const AccelerationStructureNV, - _query_type: QueryType, - _query_pool: QueryPool, - _first_query: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_write_acceleration_structures_properties_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdWriteAccelerationStructuresPropertiesNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_write_acceleration_structures_properties_nv - } else { - ::core::mem::transmute(val) - } - }, - compile_deferred_nv: unsafe { - unsafe extern "system" fn compile_deferred_nv( - _device: crate::vk::Device, - _pipeline: Pipeline, - _shader: u32, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(compile_deferred_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0"); - let val = _f(cname); - if val.is_null() { - compile_deferred_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_ray_tracing device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_representative_fragment_test"] - pub mod representative_fragment_test { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_representative_fragment_test\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_NV_shader_subgroup_partitioned"] - pub mod shader_subgroup_partitioned { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_subgroup_partitioned\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_compute_shader_derivatives"] - pub mod compute_shader_derivatives { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_compute_shader_derivatives\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_mesh_shader"] - pub mod mesh_shader { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_mesh_shader\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMeshTasksNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - task_count: u32, - first_task: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMeshTasksIndirectNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - draw_count: u32, - stride: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDrawMeshTasksIndirectCountNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - buffer: Buffer, - offset: DeviceSize, - count_buffer: Buffer, - count_buffer_offset: DeviceSize, - max_draw_count: u32, - stride: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_mesh_shader device-level function pointers"] - pub struct DeviceFn { - pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV, - pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV, - pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_mesh_tasks_nv: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_nv( - _command_buffer: CommandBuffer, - _task_count: u32, - _first_task: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_mesh_tasks_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_mesh_tasks_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_mesh_tasks_indirect_nv: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_mesh_tasks_indirect_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksIndirectNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_mesh_tasks_indirect_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_mesh_tasks_indirect_count_nv: unsafe { - unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_mesh_tasks_indirect_count_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDrawMeshTasksIndirectCountNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_draw_mesh_tasks_indirect_count_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_mesh_shader device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_fragment_shader_barycentric"] - pub mod fragment_shader_barycentric { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shader_barycentric\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_shader_image_footprint"] - pub mod shader_image_footprint { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_image_footprint\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_NV_scissor_exclusive"] - pub mod scissor_exclusive { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_scissor_exclusive\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetExclusiveScissorEnableNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_exclusive_scissor: u32, - exclusive_scissor_count: u32, - p_exclusive_scissor_enables: *const Bool32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetExclusiveScissorNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - first_exclusive_scissor: u32, - exclusive_scissor_count: u32, - p_exclusive_scissors: *const Rect2D, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_scissor_exclusive device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_exclusive_scissor_enable_nv: PFN_vkCmdSetExclusiveScissorEnableNV, - pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_exclusive_scissor_enable_nv: unsafe { - unsafe extern "system" fn cmd_set_exclusive_scissor_enable_nv( - _command_buffer: CommandBuffer, - _first_exclusive_scissor: u32, - _exclusive_scissor_count: u32, - _p_exclusive_scissor_enables: *const Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_exclusive_scissor_enable_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetExclusiveScissorEnableNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_exclusive_scissor_enable_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_exclusive_scissor_nv: unsafe { - unsafe extern "system" fn cmd_set_exclusive_scissor_nv( - _command_buffer: CommandBuffer, - _first_exclusive_scissor: u32, - _exclusive_scissor_count: u32, - _p_exclusive_scissors: *const Rect2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_exclusive_scissor_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetExclusiveScissorNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_exclusive_scissor_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_scissor_exclusive device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_device_diagnostic_checkpoints"] - pub mod device_diagnostic_checkpoints { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_diagnostic_checkpoints\0") - }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetCheckpointNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_checkpoint_marker: *const c_void, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetQueueCheckpointDataNV = unsafe extern "system" fn( - queue: Queue, - p_checkpoint_data_count: *mut u32, - p_checkpoint_data: *mut CheckpointDataNV<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_device_diagnostic_checkpoints device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV, - pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_checkpoint_nv: unsafe { - unsafe extern "system" fn cmd_set_checkpoint_nv( - _command_buffer: CommandBuffer, - _p_checkpoint_marker: *const c_void, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_checkpoint_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_checkpoint_nv - } else { - ::core::mem::transmute(val) - } - }, - get_queue_checkpoint_data_nv: unsafe { - unsafe extern "system" fn get_queue_checkpoint_data_nv( - _queue: Queue, - _p_checkpoint_data_count: *mut u32, - _p_checkpoint_data: *mut CheckpointDataNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_queue_checkpoint_data_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetQueueCheckpointDataNV\0"); - let val = _f(cname); - if val.is_null() { - get_queue_checkpoint_data_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_device_diagnostic_checkpoints device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_dedicated_allocation_image_aliasing"] - pub mod dedicated_allocation_image_aliasing { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_dedicated_allocation_image_aliasing\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_cooperative_matrix"] - pub mod cooperative_matrix { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cooperative_matrix\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_property_count: *mut u32, - p_properties: *mut CooperativeMatrixPropertiesNV<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_cooperative_matrix instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_cooperative_matrix_properties_nv: - PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_cooperative_matrix_properties_nv: unsafe { - unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut CooperativeMatrixPropertiesNV<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_cooperative_matrix_properties_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_cooperative_matrix_properties_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_cooperative_matrix instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_NV_coverage_reduction_mode"] - pub mod coverage_reduction_mode { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_coverage_reduction_mode\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_combination_count: *mut u32, - p_combinations: *mut FramebufferMixedSamplesCombinationNV<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_coverage_reduction_mode instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: - PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe { - unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv( - _physical_device: PhysicalDevice, - _p_combination_count: *mut u32, - _p_combinations: *mut FramebufferMixedSamplesCombinationNV<'_>, - ) -> Result { - panic ! (concat ! ("Unable to load " , stringify ! (get_physical_device_supported_framebuffer_mixed_samples_combinations_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_supported_framebuffer_mixed_samples_combinations_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_coverage_reduction_mode instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_NV_device_generated_commands"] - pub mod device_generated_commands { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_generated_commands\0") }; - pub const SPEC_VERSION: u32 = 3u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdPreprocessGeneratedCommandsNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdExecuteGeneratedCommandsNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - is_preprocessed: Bool32, - p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdBindPipelineShaderGroupNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - pipeline_bind_point: PipelineBindPoint, - pipeline: Pipeline, - group_index: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCreateIndirectCommandsLayoutNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyIndirectCommandsLayoutNV = unsafe extern "system" fn( - device: crate::vk::Device, - indirect_commands_layout: IndirectCommandsLayoutNV, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_device_generated_commands device-level function pointers"] - pub struct DeviceFn { - pub get_generated_commands_memory_requirements_nv: - PFN_vkGetGeneratedCommandsMemoryRequirementsNV, - pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV, - pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV, - pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV, - pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV, - pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_generated_commands_memory_requirements_nv: unsafe { - unsafe extern "system" fn get_generated_commands_memory_requirements_nv( - _device: crate::vk::Device, - _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_generated_commands_memory_requirements_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetGeneratedCommandsMemoryRequirementsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_generated_commands_memory_requirements_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_preprocess_generated_commands_nv: unsafe { - unsafe extern "system" fn cmd_preprocess_generated_commands_nv( - _command_buffer: CommandBuffer, - _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_preprocess_generated_commands_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdPreprocessGeneratedCommandsNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_preprocess_generated_commands_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_execute_generated_commands_nv: unsafe { - unsafe extern "system" fn cmd_execute_generated_commands_nv( - _command_buffer: CommandBuffer, - _is_preprocessed: Bool32, - _p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_execute_generated_commands_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdExecuteGeneratedCommandsNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_execute_generated_commands_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_pipeline_shader_group_nv: unsafe { - unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _pipeline: Pipeline, - _group_index: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_pipeline_shader_group_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdBindPipelineShaderGroupNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_bind_pipeline_shader_group_nv - } else { - ::core::mem::transmute(val) - } - }, - create_indirect_commands_layout_nv: unsafe { - unsafe extern "system" fn create_indirect_commands_layout_nv( - _device: crate::vk::Device, - _p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_indirect_commands_layout_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCreateIndirectCommandsLayoutNV\0", - ); - let val = _f(cname); - if val.is_null() { - create_indirect_commands_layout_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_indirect_commands_layout_nv: unsafe { - unsafe extern "system" fn destroy_indirect_commands_layout_nv( - _device: crate::vk::Device, - _indirect_commands_layout: IndirectCommandsLayoutNV, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_indirect_commands_layout_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkDestroyIndirectCommandsLayoutNV\0", - ); - let val = _f(cname); - if val.is_null() { - destroy_indirect_commands_layout_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_device_generated_commands device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_inherited_viewport_scissor"] - pub mod inherited_viewport_scissor { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_inherited_viewport_scissor\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_present_barrier"] - pub mod present_barrier { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_present_barrier\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_device_diagnostics_config"] - pub mod device_diagnostics_config { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_diagnostics_config\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_NV_cuda_kernel_launch"] - pub mod cuda_kernel_launch { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cuda_kernel_launch\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateCudaModuleNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const CudaModuleCreateInfoNV<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_module: *mut CudaModuleNV, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetCudaModuleCacheNV = unsafe extern "system" fn( - device: crate::vk::Device, - module: CudaModuleNV, - p_cache_size: *mut usize, - p_cache_data: *mut c_void, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateCudaFunctionNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const CudaFunctionCreateInfoNV<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_function: *mut CudaFunctionNV, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyCudaModuleNV = unsafe extern "system" fn( - device: crate::vk::Device, - module: CudaModuleNV, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyCudaFunctionNV = unsafe extern "system" fn( - device: crate::vk::Device, - function: CudaFunctionNV, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCudaLaunchKernelNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_launch_info: *const CudaLaunchInfoNV<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_cuda_kernel_launch device-level function pointers"] - pub struct DeviceFn { - pub create_cuda_module_nv: PFN_vkCreateCudaModuleNV, - pub get_cuda_module_cache_nv: PFN_vkGetCudaModuleCacheNV, - pub create_cuda_function_nv: PFN_vkCreateCudaFunctionNV, - pub destroy_cuda_module_nv: PFN_vkDestroyCudaModuleNV, - pub destroy_cuda_function_nv: PFN_vkDestroyCudaFunctionNV, - pub cmd_cuda_launch_kernel_nv: PFN_vkCmdCudaLaunchKernelNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_cuda_module_nv: unsafe { - unsafe extern "system" fn create_cuda_module_nv( - _device: crate::vk::Device, - _p_create_info: *const CudaModuleCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_module: *mut CudaModuleNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_cuda_module_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaModuleNV\0"); - let val = _f(cname); - if val.is_null() { - create_cuda_module_nv - } else { - ::core::mem::transmute(val) - } - }, - get_cuda_module_cache_nv: unsafe { - unsafe extern "system" fn get_cuda_module_cache_nv( - _device: crate::vk::Device, - _module: CudaModuleNV, - _p_cache_size: *mut usize, - _p_cache_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_cuda_module_cache_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetCudaModuleCacheNV\0"); - let val = _f(cname); - if val.is_null() { - get_cuda_module_cache_nv - } else { - ::core::mem::transmute(val) - } - }, - create_cuda_function_nv: unsafe { - unsafe extern "system" fn create_cuda_function_nv( - _device: crate::vk::Device, - _p_create_info: *const CudaFunctionCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_function: *mut CudaFunctionNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_cuda_function_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateCudaFunctionNV\0"); - let val = _f(cname); - if val.is_null() { - create_cuda_function_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_cuda_module_nv: unsafe { - unsafe extern "system" fn destroy_cuda_module_nv( - _device: crate::vk::Device, - _module: CudaModuleNV, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_cuda_module_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaModuleNV\0"); - let val = _f(cname); - if val.is_null() { - destroy_cuda_module_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_cuda_function_nv: unsafe { - unsafe extern "system" fn destroy_cuda_function_nv( - _device: crate::vk::Device, - _function: CudaFunctionNV, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_cuda_function_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyCudaFunctionNV\0"); - let val = _f(cname); - if val.is_null() { - destroy_cuda_function_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_cuda_launch_kernel_nv: unsafe { - unsafe extern "system" fn cmd_cuda_launch_kernel_nv( - _command_buffer: CommandBuffer, - _p_launch_info: *const CudaLaunchInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_cuda_launch_kernel_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCudaLaunchKernelNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_cuda_launch_kernel_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_cuda_kernel_launch device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_low_latency"] - pub mod low_latency { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_low_latency\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_fragment_shading_rate_enums"] - pub mod fragment_shading_rate_enums { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shading_rate_enums\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdSetFragmentShadingRateEnumNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - shading_rate: FragmentShadingRateNV, - combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_fragment_shading_rate_enums device-level function pointers"] - pub struct DeviceFn { - pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_set_fragment_shading_rate_enum_nv: unsafe { - unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv( - _command_buffer: CommandBuffer, - _shading_rate: FragmentShadingRateNV, - _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_fragment_shading_rate_enum_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdSetFragmentShadingRateEnumNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_set_fragment_shading_rate_enum_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_fragment_shading_rate_enums device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_ray_tracing_motion_blur"] - pub mod ray_tracing_motion_blur { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_motion_blur\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_acquire_winrt_display"] - pub mod acquire_winrt_display { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_acquire_winrt_display\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkAcquireWinrtDisplayNV = unsafe extern "system" fn( - physical_device: PhysicalDevice, - display: DisplayKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetWinrtDisplayNV = unsafe extern "system" fn( - physical_device: PhysicalDevice, - device_relative_id: u32, - p_display: *mut DisplayKHR, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_acquire_winrt_display instance-level function pointers"] - pub struct InstanceFn { - pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV, - pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - acquire_winrt_display_nv: unsafe { - unsafe extern "system" fn acquire_winrt_display_nv( - _physical_device: PhysicalDevice, - _display: DisplayKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(acquire_winrt_display_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0"); - let val = _f(cname); - if val.is_null() { - acquire_winrt_display_nv - } else { - ::core::mem::transmute(val) - } - }, - get_winrt_display_nv: unsafe { - unsafe extern "system" fn get_winrt_display_nv( - _physical_device: PhysicalDevice, - _device_relative_id: u32, - _p_display: *mut DisplayKHR, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0"); - let val = _f(cname); - if val.is_null() { - get_winrt_display_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_acquire_winrt_display instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_NV_external_memory_rdma"] - pub mod external_memory_rdma { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_rdma\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetMemoryRemoteAddressNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV<'_>, - p_address: *mut RemoteAddressNV, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_external_memory_rdma device-level function pointers"] - pub struct DeviceFn { - pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_memory_remote_address_nv: unsafe { - unsafe extern "system" fn get_memory_remote_address_nv( - _device: crate::vk::Device, - _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV< - '_, - >, - _p_address: *mut RemoteAddressNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_memory_remote_address_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryRemoteAddressNV\0"); - let val = _f(cname); - if val.is_null() { - get_memory_remote_address_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_external_memory_rdma device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_displacement_micromap"] - pub mod displacement_micromap { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_displacement_micromap\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_NV_copy_memory_indirect"] - pub mod copy_memory_indirect { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_copy_memory_indirect\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyMemoryIndirectNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - copy_buffer_address: DeviceAddress, - copy_count: u32, - stride: u32, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCopyMemoryToImageIndirectNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - copy_buffer_address: DeviceAddress, - copy_count: u32, - stride: u32, - dst_image: Image, - dst_image_layout: ImageLayout, - p_image_subresources: *const ImageSubresourceLayers, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_copy_memory_indirect device-level function pointers"] - pub struct DeviceFn { - pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV, - pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_copy_memory_indirect_nv: unsafe { - unsafe extern "system" fn cmd_copy_memory_indirect_nv( - _command_buffer: CommandBuffer, - _copy_buffer_address: DeviceAddress, - _copy_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_memory_indirect_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyMemoryIndirectNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_memory_indirect_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_memory_to_image_indirect_nv: unsafe { - unsafe extern "system" fn cmd_copy_memory_to_image_indirect_nv( - _command_buffer: CommandBuffer, - _copy_buffer_address: DeviceAddress, - _copy_count: u32, - _stride: u32, - _dst_image: Image, - _dst_image_layout: ImageLayout, - _p_image_subresources: *const ImageSubresourceLayers, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_memory_to_image_indirect_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdCopyMemoryToImageIndirectNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_copy_memory_to_image_indirect_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_copy_memory_indirect device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_memory_decompression"] - pub mod memory_decompression { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_memory_decompression\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDecompressMemoryNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - decompress_region_count: u32, - p_decompress_memory_regions: *const DecompressMemoryRegionNV, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdDecompressMemoryIndirectCountNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - indirect_commands_address: DeviceAddress, - indirect_commands_count_address: DeviceAddress, - stride: u32, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_memory_decompression device-level function pointers"] - pub struct DeviceFn { - pub cmd_decompress_memory_nv: PFN_vkCmdDecompressMemoryNV, - pub cmd_decompress_memory_indirect_count_nv: PFN_vkCmdDecompressMemoryIndirectCountNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_decompress_memory_nv: unsafe { - unsafe extern "system" fn cmd_decompress_memory_nv( - _command_buffer: CommandBuffer, - _decompress_region_count: u32, - _p_decompress_memory_regions: *const DecompressMemoryRegionNV, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_decompress_memory_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdDecompressMemoryNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_decompress_memory_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_decompress_memory_indirect_count_nv: unsafe { - unsafe extern "system" fn cmd_decompress_memory_indirect_count_nv( - _command_buffer: CommandBuffer, - _indirect_commands_address: DeviceAddress, - _indirect_commands_count_address: DeviceAddress, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_decompress_memory_indirect_count_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdDecompressMemoryIndirectCountNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_decompress_memory_indirect_count_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_memory_decompression device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_device_generated_commands_compute"] - pub mod device_generated_commands_compute { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_generated_commands_compute\0") - }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPipelineIndirectMemoryRequirementsNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const ComputePipelineCreateInfo<'_>, - p_memory_requirements: *mut MemoryRequirements2<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdUpdatePipelineIndirectBufferNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - pipeline_bind_point: PipelineBindPoint, - pipeline: Pipeline, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetPipelineIndirectDeviceAddressNV = - unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, - ) -> DeviceAddress; - #[derive(Clone)] - #[doc = "Raw VK_NV_device_generated_commands_compute device-level function pointers"] - pub struct DeviceFn { - pub get_pipeline_indirect_memory_requirements_nv: - PFN_vkGetPipelineIndirectMemoryRequirementsNV, - pub cmd_update_pipeline_indirect_buffer_nv: PFN_vkCmdUpdatePipelineIndirectBufferNV, - pub get_pipeline_indirect_device_address_nv: PFN_vkGetPipelineIndirectDeviceAddressNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_pipeline_indirect_memory_requirements_nv: unsafe { - unsafe extern "system" fn get_pipeline_indirect_memory_requirements_nv( - _device: crate::vk::Device, - _p_create_info: *const ComputePipelineCreateInfo<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_indirect_memory_requirements_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineIndirectMemoryRequirementsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_pipeline_indirect_memory_requirements_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_update_pipeline_indirect_buffer_nv: unsafe { - unsafe extern "system" fn cmd_update_pipeline_indirect_buffer_nv( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _pipeline: Pipeline, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_update_pipeline_indirect_buffer_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkCmdUpdatePipelineIndirectBufferNV\0", - ); - let val = _f(cname); - if val.is_null() { - cmd_update_pipeline_indirect_buffer_nv - } else { - ::core::mem::transmute(val) - } - }, - get_pipeline_indirect_device_address_nv: unsafe { - unsafe extern "system" fn get_pipeline_indirect_device_address_nv( - _device: crate::vk::Device, - _p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, - ) -> DeviceAddress { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_indirect_device_address_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPipelineIndirectDeviceAddressNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_pipeline_indirect_device_address_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_device_generated_commands_compute device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_linear_color_attachment"] - pub mod linear_color_attachment { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_linear_color_attachment\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_optical_flow"] - pub mod optical_flow { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_optical_flow\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV<'_>, - p_format_count: *mut u32, - p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NV_optical_flow instance-level function pointers"] - pub struct InstanceFn { - pub get_physical_device_optical_flow_image_formats_nv: - PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_optical_flow_image_formats_nv: unsafe { - unsafe extern "system" fn get_physical_device_optical_flow_image_formats_nv( - _physical_device: PhysicalDevice, - _p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV< - '_, - >, - _p_format_count: *mut u32, - _p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_optical_flow_image_formats_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceOpticalFlowImageFormatsNV\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_optical_flow_image_formats_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_optical_flow instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - #[allow(non_camel_case_types)] - pub type PFN_vkCreateOpticalFlowSessionNV = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_session: *mut OpticalFlowSessionNV, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyOpticalFlowSessionNV = unsafe extern "system" fn( - device: crate::vk::Device, - session: OpticalFlowSessionNV, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkBindOpticalFlowSessionImageNV = unsafe extern "system" fn( - device: crate::vk::Device, - session: OpticalFlowSessionNV, - binding_point: OpticalFlowSessionBindingPointNV, - view: ImageView, - layout: ImageLayout, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCmdOpticalFlowExecuteNV = unsafe extern "system" fn( - command_buffer: CommandBuffer, - session: OpticalFlowSessionNV, - p_execute_info: *const OpticalFlowExecuteInfoNV<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_optical_flow device-level function pointers"] - pub struct DeviceFn { - pub create_optical_flow_session_nv: PFN_vkCreateOpticalFlowSessionNV, - pub destroy_optical_flow_session_nv: PFN_vkDestroyOpticalFlowSessionNV, - pub bind_optical_flow_session_image_nv: PFN_vkBindOpticalFlowSessionImageNV, - pub cmd_optical_flow_execute_nv: PFN_vkCmdOpticalFlowExecuteNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_optical_flow_session_nv: unsafe { - unsafe extern "system" fn create_optical_flow_session_nv( - _device: crate::vk::Device, - _p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_session: *mut OpticalFlowSessionNV, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_optical_flow_session_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateOpticalFlowSessionNV\0"); - let val = _f(cname); - if val.is_null() { - create_optical_flow_session_nv - } else { - ::core::mem::transmute(val) - } - }, - destroy_optical_flow_session_nv: unsafe { - unsafe extern "system" fn destroy_optical_flow_session_nv( - _device: crate::vk::Device, - _session: OpticalFlowSessionNV, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_optical_flow_session_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyOpticalFlowSessionNV\0"); - let val = _f(cname); - if val.is_null() { - destroy_optical_flow_session_nv - } else { - ::core::mem::transmute(val) - } - }, - bind_optical_flow_session_image_nv: unsafe { - unsafe extern "system" fn bind_optical_flow_session_image_nv( - _device: crate::vk::Device, - _session: OpticalFlowSessionNV, - _binding_point: OpticalFlowSessionBindingPointNV, - _view: ImageView, - _layout: ImageLayout, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(bind_optical_flow_session_image_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkBindOpticalFlowSessionImageNV\0", - ); - let val = _f(cname); - if val.is_null() { - bind_optical_flow_session_image_nv - } else { - ::core::mem::transmute(val) - } - }, - cmd_optical_flow_execute_nv: unsafe { - unsafe extern "system" fn cmd_optical_flow_execute_nv( - _command_buffer: CommandBuffer, - _session: OpticalFlowSessionNV, - _p_execute_info: *const OpticalFlowExecuteInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_optical_flow_execute_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdOpticalFlowExecuteNV\0"); - let val = _f(cname); - if val.is_null() { - cmd_optical_flow_execute_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_optical_flow device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_ray_tracing_invocation_reorder"] - pub mod ray_tracing_invocation_reorder { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_invocation_reorder\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_extended_sparse_address_space"] - pub mod extended_sparse_address_space { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_extended_sparse_address_space\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_low_latency2"] - pub mod low_latency2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_low_latency2\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkSetLatencySleepModeNV = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkLatencySleepNV = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_sleep_info: *const LatencySleepInfoNV<'_>, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkSetLatencyMarkerNV = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetLatencyTimingsNV = unsafe extern "system" fn( - device: crate::vk::Device, - swapchain: SwapchainKHR, - p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkQueueNotifyOutOfBandNV = unsafe extern "system" fn( - queue: Queue, - p_queue_type_info: *const OutOfBandQueueTypeInfoNV<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NV_low_latency2 device-level function pointers"] - pub struct DeviceFn { - pub set_latency_sleep_mode_nv: PFN_vkSetLatencySleepModeNV, - pub latency_sleep_nv: PFN_vkLatencySleepNV, - pub set_latency_marker_nv: PFN_vkSetLatencyMarkerNV, - pub get_latency_timings_nv: PFN_vkGetLatencyTimingsNV, - pub queue_notify_out_of_band_nv: PFN_vkQueueNotifyOutOfBandNV, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - set_latency_sleep_mode_nv: unsafe { - unsafe extern "system" fn set_latency_sleep_mode_nv( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(set_latency_sleep_mode_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkSetLatencySleepModeNV\0"); - let val = _f(cname); - if val.is_null() { - set_latency_sleep_mode_nv - } else { - ::core::mem::transmute(val) - } - }, - latency_sleep_nv: unsafe { - unsafe extern "system" fn latency_sleep_nv( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_sleep_info: *const LatencySleepInfoNV<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(latency_sleep_nv))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkLatencySleepNV\0"); - let val = _f(cname); - if val.is_null() { - latency_sleep_nv - } else { - ::core::mem::transmute(val) - } - }, - set_latency_marker_nv: unsafe { - unsafe extern "system" fn set_latency_marker_nv( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(set_latency_marker_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetLatencyMarkerNV\0"); - let val = _f(cname); - if val.is_null() { - set_latency_marker_nv - } else { - ::core::mem::transmute(val) - } - }, - get_latency_timings_nv: unsafe { - unsafe extern "system" fn get_latency_timings_nv( - _device: crate::vk::Device, - _swapchain: SwapchainKHR, - _p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_latency_timings_nv) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetLatencyTimingsNV\0"); - let val = _f(cname); - if val.is_null() { - get_latency_timings_nv - } else { - ::core::mem::transmute(val) - } - }, - queue_notify_out_of_band_nv: unsafe { - unsafe extern "system" fn queue_notify_out_of_band_nv( - _queue: Queue, - _p_queue_type_info: *const OutOfBandQueueTypeInfoNV<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(queue_notify_out_of_band_nv) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkQueueNotifyOutOfBandNV\0"); - let val = _f(cname); - if val.is_null() { - queue_notify_out_of_band_nv - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NV_low_latency2 device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NV_per_stage_descriptor_set"] - pub mod per_stage_descriptor_set { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_per_stage_descriptor_set\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_descriptor_pool_overallocation"] - pub mod descriptor_pool_overallocation { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NV_descriptor_pool_overallocation\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_raw_access_chains"] - pub mod raw_access_chains { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_raw_access_chains\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_shader_atomic_float16_vector"] - pub mod shader_atomic_float16_vector { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_atomic_float16_vector\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_NV_ray_tracing_validation"] - pub mod ray_tracing_validation { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_validation\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged NVX"] -pub mod nvx { - #[doc = "VK_NVX_binary_import"] - pub mod binary_import { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_binary_import\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const CuModuleCreateInfoNVX<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_module: *mut CuModuleNVX, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateCuFunctionNVX = unsafe extern "system" fn( - device: crate::vk::Device, - p_create_info: *const CuFunctionCreateInfoNVX<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_function: *mut CuFunctionNVX, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyCuModuleNVX = unsafe extern "system" fn( - device: crate::vk::Device, - module: CuModuleNVX, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkDestroyCuFunctionNVX = unsafe extern "system" fn( - device: crate::vk::Device, - function: CuFunctionNVX, - p_allocator: *const AllocationCallbacks<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkCmdCuLaunchKernelNVX = unsafe extern "system" fn( - command_buffer: CommandBuffer, - p_launch_info: *const CuLaunchInfoNVX<'_>, - ); - #[derive(Clone)] - #[doc = "Raw VK_NVX_binary_import device-level function pointers"] - pub struct DeviceFn { - pub create_cu_module_nvx: PFN_vkCreateCuModuleNVX, - pub create_cu_function_nvx: PFN_vkCreateCuFunctionNVX, - pub destroy_cu_module_nvx: PFN_vkDestroyCuModuleNVX, - pub destroy_cu_function_nvx: PFN_vkDestroyCuFunctionNVX, - pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_cu_module_nvx: unsafe { - unsafe extern "system" fn create_cu_module_nvx( - _device: crate::vk::Device, - _p_create_info: *const CuModuleCreateInfoNVX<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_module: *mut CuModuleNVX, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_cu_module_nvx))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCuModuleNVX\0"); - let val = _f(cname); - if val.is_null() { - create_cu_module_nvx - } else { - ::core::mem::transmute(val) - } - }, - create_cu_function_nvx: unsafe { - unsafe extern "system" fn create_cu_function_nvx( - _device: crate::vk::Device, - _p_create_info: *const CuFunctionCreateInfoNVX<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_function: *mut CuFunctionNVX, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_cu_function_nvx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCuFunctionNVX\0"); - let val = _f(cname); - if val.is_null() { - create_cu_function_nvx - } else { - ::core::mem::transmute(val) - } - }, - destroy_cu_module_nvx: unsafe { - unsafe extern "system" fn destroy_cu_module_nvx( - _device: crate::vk::Device, - _module: CuModuleNVX, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_cu_module_nvx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuModuleNVX\0"); - let val = _f(cname); - if val.is_null() { - destroy_cu_module_nvx - } else { - ::core::mem::transmute(val) - } - }, - destroy_cu_function_nvx: unsafe { - unsafe extern "system" fn destroy_cu_function_nvx( - _device: crate::vk::Device, - _function: CuFunctionNVX, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_cu_function_nvx) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuFunctionNVX\0"); - let val = _f(cname); - if val.is_null() { - destroy_cu_function_nvx - } else { - ::core::mem::transmute(val) - } - }, - cmd_cu_launch_kernel_nvx: unsafe { - unsafe extern "system" fn cmd_cu_launch_kernel_nvx( - _command_buffer: CommandBuffer, - _p_launch_info: *const CuLaunchInfoNVX<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_cu_launch_kernel_nvx) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdCuLaunchKernelNVX\0"); - let val = _f(cname); - if val.is_null() { - cmd_cu_launch_kernel_nvx - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NVX_binary_import device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NVX_image_view_handle"] - pub mod image_view_handle { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_image_view_handle\0") }; - pub const SPEC_VERSION: u32 = 2u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageViewHandleNVX = unsafe extern "system" fn( - device: crate::vk::Device, - p_info: *const ImageViewHandleInfoNVX<'_>, - ) -> u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn( - device: crate::vk::Device, - image_view: ImageView, - p_properties: *mut ImageViewAddressPropertiesNVX<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_NVX_image_view_handle device-level function pointers"] - pub struct DeviceFn { - pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX, - pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_image_view_handle_nvx: unsafe { - unsafe extern "system" fn get_image_view_handle_nvx( - _device: crate::vk::Device, - _p_info: *const ImageViewHandleInfoNVX<'_>, - ) -> u32 { - panic!(concat!( - "Unable to load ", - stringify!(get_image_view_handle_nvx) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewHandleNVX\0"); - let val = _f(cname); - if val.is_null() { - get_image_view_handle_nvx - } else { - ::core::mem::transmute(val) - } - }, - get_image_view_address_nvx: unsafe { - unsafe extern "system" fn get_image_view_address_nvx( - _device: crate::vk::Device, - _image_view: ImageView, - _p_properties: *mut ImageViewAddressPropertiesNVX<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_image_view_address_nvx) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewAddressNVX\0"); - let val = _f(cname); - if val.is_null() { - get_image_view_address_nvx - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_NVX_image_view_handle device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_NVX_multiview_per_view_attributes"] - pub mod multiview_per_view_attributes { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_NVX_multiview_per_view_attributes\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged QCOM"] -pub mod qcom { - #[doc = "VK_QCOM_render_pass_shader_resolve"] - pub mod render_pass_shader_resolve { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_shader_resolve\0") }; - pub const SPEC_VERSION: u32 = 4u32; - } - #[doc = "VK_QCOM_render_pass_transform"] - pub mod render_pass_transform { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_transform\0") }; - pub const SPEC_VERSION: u32 = 4u32; - } - #[doc = "VK_QCOM_render_pass_store_ops"] - pub mod render_pass_store_ops { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_store_ops\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_QCOM_rotated_copy_commands"] - pub mod rotated_copy_commands { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_rotated_copy_commands\0") }; - pub const SPEC_VERSION: u32 = 2u32; - } - #[doc = "VK_QCOM_fragment_density_map_offset"] - pub mod fragment_density_map_offset { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_fragment_density_map_offset\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_image_processing"] - pub mod image_processing { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_image_processing\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_tile_properties"] - pub mod tile_properties { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_properties\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetFramebufferTilePropertiesQCOM = unsafe extern "system" fn( - device: crate::vk::Device, - framebuffer: Framebuffer, - p_properties_count: *mut u32, - p_properties: *mut TilePropertiesQCOM<'_>, - ) - -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDynamicRenderingTilePropertiesQCOM = unsafe extern "system" fn( - device: crate::vk::Device, - p_rendering_info: *const RenderingInfo<'_>, - p_properties: *mut TilePropertiesQCOM<'_>, - ) - -> Result; - #[derive(Clone)] - #[doc = "Raw VK_QCOM_tile_properties device-level function pointers"] - pub struct DeviceFn { - pub get_framebuffer_tile_properties_qcom: PFN_vkGetFramebufferTilePropertiesQCOM, - pub get_dynamic_rendering_tile_properties_qcom: - PFN_vkGetDynamicRenderingTilePropertiesQCOM, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_framebuffer_tile_properties_qcom: unsafe { - unsafe extern "system" fn get_framebuffer_tile_properties_qcom( - _device: crate::vk::Device, - _framebuffer: Framebuffer, - _p_properties_count: *mut u32, - _p_properties: *mut TilePropertiesQCOM<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_framebuffer_tile_properties_qcom) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetFramebufferTilePropertiesQCOM\0", - ); - let val = _f(cname); - if val.is_null() { - get_framebuffer_tile_properties_qcom - } else { - ::core::mem::transmute(val) - } - }, - get_dynamic_rendering_tile_properties_qcom: unsafe { - unsafe extern "system" fn get_dynamic_rendering_tile_properties_qcom( - _device: crate::vk::Device, - _p_rendering_info: *const RenderingInfo<'_>, - _p_properties: *mut TilePropertiesQCOM<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_dynamic_rendering_tile_properties_qcom) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDynamicRenderingTilePropertiesQCOM\0", - ); - let val = _f(cname); - if val.is_null() { - get_dynamic_rendering_tile_properties_qcom - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_QCOM_tile_properties device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } - #[doc = "VK_QCOM_multiview_per_view_viewports"] - pub mod multiview_per_view_viewports { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_viewports\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_multiview_per_view_render_areas"] - pub mod multiview_per_view_render_areas { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_render_areas\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_image_processing2"] - pub mod image_processing2 { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_image_processing2\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_filter_cubic_weights"] - pub mod filter_cubic_weights { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_filter_cubic_weights\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_ycbcr_degamma"] - pub mod ycbcr_degamma { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_ycbcr_degamma\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_QCOM_filter_cubic_clamp"] - pub mod filter_cubic_clamp { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_filter_cubic_clamp\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged QNX"] -pub mod qnx { - #[doc = "VK_QNX_screen_surface"] - pub mod screen_surface { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QNX_screen_surface\0") }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn( - instance: crate::vk::Instance, - p_create_info: *const ScreenSurfaceCreateInfoQNX<'_>, - p_allocator: *const AllocationCallbacks<'_>, - p_surface: *mut SurfaceKHR, - ) -> Result; - #[allow(non_camel_case_types)] - pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = - unsafe extern "system" fn( - physical_device: PhysicalDevice, - queue_family_index: u32, - window: *mut _screen_window, - ) -> Bool32; - #[derive(Clone)] - #[doc = "Raw VK_QNX_screen_surface instance-level function pointers"] - pub struct InstanceFn { - pub create_screen_surface_qnx: PFN_vkCreateScreenSurfaceQNX, - pub get_physical_device_screen_presentation_support_qnx: - PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX, - } - unsafe impl Send for InstanceFn {} - unsafe impl Sync for InstanceFn {} - impl InstanceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_screen_surface_qnx: unsafe { - unsafe extern "system" fn create_screen_surface_qnx( - _instance: crate::vk::Instance, - _p_create_info: *const ScreenSurfaceCreateInfoQNX<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_surface: *mut SurfaceKHR, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_screen_surface_qnx) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateScreenSurfaceQNX\0"); - let val = _f(cname); - if val.is_null() { - create_screen_surface_qnx - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_screen_presentation_support_qnx: unsafe { - unsafe extern "system" fn get_physical_device_screen_presentation_support_qnx( - _physical_device: PhysicalDevice, - _queue_family_index: u32, - _window: *mut _screen_window, - ) -> Bool32 { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_screen_presentation_support_qnx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceScreenPresentationSupportQNX\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_screen_presentation_support_qnx - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_QNX_screen_surface instance-level functions"] - pub struct Instance { - pub(crate) fp: InstanceFn, - pub(crate) handle: crate::vk::Instance, - } - impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = InstanceFn::load(|name| unsafe { - core::mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &InstanceFn { - &self.fp - } - #[inline] - pub fn instance(&self) -> crate::vk::Instance { - self.handle - } - } - } - #[doc = "VK_QNX_external_memory_screen_buffer"] - pub mod external_memory_screen_buffer { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_QNX_external_memory_screen_buffer\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetScreenBufferPropertiesQNX = unsafe extern "system" fn( - device: crate::vk::Device, - buffer: *const _screen_buffer, - p_properties: *mut ScreenBufferPropertiesQNX<'_>, - ) -> Result; - #[derive(Clone)] - #[doc = "Raw VK_QNX_external_memory_screen_buffer device-level function pointers"] - pub struct DeviceFn { - pub get_screen_buffer_properties_qnx: PFN_vkGetScreenBufferPropertiesQNX, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_screen_buffer_properties_qnx: unsafe { - unsafe extern "system" fn get_screen_buffer_properties_qnx( - _device: crate::vk::Device, - _buffer: *const _screen_buffer, - _p_properties: *mut ScreenBufferPropertiesQNX<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_screen_buffer_properties_qnx) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetScreenBufferPropertiesQNX\0", - ); - let val = _f(cname); - if val.is_null() { - get_screen_buffer_properties_qnx - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_QNX_external_memory_screen_buffer device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} -#[doc = "Extensions tagged SEC"] -pub mod sec { - #[doc = "VK_SEC_amigo_profiling"] - pub mod amigo_profiling { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_SEC_amigo_profiling\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } -} -#[doc = "Extensions tagged VALVE"] -pub mod valve { - #[doc = "VK_VALVE_mutable_descriptor_type"] - pub mod mutable_descriptor_type { - use super::super::*; - pub const NAME: &CStr = - unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_mutable_descriptor_type\0") }; - pub const SPEC_VERSION: u32 = 1u32; - } - #[doc = "VK_VALVE_descriptor_set_host_mapping"] - pub mod descriptor_set_host_mapping { - use super::super::*; - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_descriptor_set_host_mapping\0") - }; - pub const SPEC_VERSION: u32 = 1u32; - #[allow(non_camel_case_types)] - pub type PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = unsafe extern "system" fn( - device: crate::vk::Device, - p_binding_reference: *const DescriptorSetBindingReferenceVALVE<'_>, - p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE<'_>, - ); - #[allow(non_camel_case_types)] - pub type PFN_vkGetDescriptorSetHostMappingVALVE = unsafe extern "system" fn( - device: crate::vk::Device, - descriptor_set: DescriptorSet, - pp_data: *mut *mut c_void, - ); - #[derive(Clone)] - #[doc = "Raw VK_VALVE_descriptor_set_host_mapping device-level function pointers"] - pub struct DeviceFn { - pub get_descriptor_set_layout_host_mapping_info_valve: - PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE, - pub get_descriptor_set_host_mapping_valve: PFN_vkGetDescriptorSetHostMappingVALVE, - } - unsafe impl Send for DeviceFn {} - unsafe impl Sync for DeviceFn {} - impl DeviceFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_descriptor_set_layout_host_mapping_info_valve: unsafe { - unsafe extern "system" fn get_descriptor_set_layout_host_mapping_info_valve( - _device: crate::vk::Device, - _p_binding_reference: *const DescriptorSetBindingReferenceVALVE<'_>, - _p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_descriptor_set_layout_host_mapping_info_valve) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDescriptorSetLayoutHostMappingInfoVALVE\0", - ); - let val = _f(cname); - if val.is_null() { - get_descriptor_set_layout_host_mapping_info_valve - } else { - ::core::mem::transmute(val) - } - }, - get_descriptor_set_host_mapping_valve: unsafe { - unsafe extern "system" fn get_descriptor_set_host_mapping_valve( - _device: crate::vk::Device, - _descriptor_set: DescriptorSet, - _pp_data: *mut *mut c_void, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_descriptor_set_host_mapping_valve) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDescriptorSetHostMappingVALVE\0", - ); - let val = _f(cname); - if val.is_null() { - get_descriptor_set_host_mapping_valve - } else { - ::core::mem::transmute(val) - } - }, - } - } - } - #[doc = "VK_VALVE_descriptor_set_host_mapping device-level functions"] - pub struct Device { - pub(crate) fp: DeviceFn, - pub(crate) handle: crate::vk::Device, - } - impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = DeviceFn::load(|name| unsafe { - core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - #[inline] - pub fn fp(&self) -> &DeviceFn { - &self.fp - } - #[inline] - pub fn device(&self) -> crate::vk::Device { - self.handle - } - } - } -} +pub const KHR_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface\0") }; +pub const KHR_SURFACE_SPEC_VERSION: u32 = 25u32; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroySurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + surface: SurfaceKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfaceSupportKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + surface: SurfaceKHR, + p_supported: *mut Bool32, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + surface: SurfaceKHR, + p_surface_capabilities: *mut SurfaceCapabilitiesKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + surface: SurfaceKHR, + p_surface_format_count: *mut u32, + p_surface_formats: *mut SurfaceFormatKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + surface: SurfaceKHR, + p_present_mode_count: *mut u32, + p_present_modes: *mut PresentModeKHR, +) -> Result; +pub const KHR_SWAPCHAIN_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain\0") }; +pub const KHR_SWAPCHAIN_SPEC_VERSION: u32 = 70u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDevicePresentRectanglesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + surface: SurfaceKHR, + p_rect_count: *mut u32, + p_rects: *mut Rect2D, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateSwapchainKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const SwapchainCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_swapchain: *mut SwapchainKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroySwapchainKHR = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetSwapchainImagesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_swapchain_image_count: *mut u32, + p_swapchain_images: *mut Image, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireNextImageKHR = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + timeout: u64, + semaphore: Semaphore, + fence: Fence, + p_image_index: *mut u32, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkQueuePresentKHR = + unsafe extern "system" fn(queue: Queue, p_present_info: *const PresentInfoKHR<'_>) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceGroupSurfacePresentModesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + surface: SurfaceKHR, + p_modes: *mut DeviceGroupPresentModeFlagsKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireNextImage2KHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_acquire_info: *const AcquireNextImageInfoKHR<'_>, + p_image_index: *mut u32, +) -> Result; +pub const KHR_DISPLAY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display\0") }; +pub const KHR_DISPLAY_SPEC_VERSION: u32 = 23u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut DisplayPropertiesKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut DisplayPlanePropertiesKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDisplayPlaneSupportedDisplaysKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + plane_index: u32, + p_display_count: *mut u32, + p_displays: *mut DisplayKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDisplayModePropertiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + display: DisplayKHR, + p_property_count: *mut u32, + p_properties: *mut DisplayModePropertiesKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDisplayModeKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + display: DisplayKHR, + p_create_info: *const DisplayModeCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_mode: *mut DisplayModeKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + mode: DisplayModeKHR, + plane_index: u32, + p_capabilities: *mut DisplayPlaneCapabilitiesKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDisplayPlaneSurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const DisplaySurfaceCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const KHR_DISPLAY_SWAPCHAIN_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display_swapchain\0") }; +pub const KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION: u32 = 10u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateSharedSwapchainsKHR = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain_count: u32, + p_create_infos: *const SwapchainCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_swapchains: *mut SwapchainKHR, +) -> Result; +pub const KHR_XLIB_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xlib_surface\0") }; +pub const KHR_XLIB_SURFACE_SPEC_VERSION: u32 = 6u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const XlibSurfaceCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + dpy: *mut Display, + visual_id: VisualID, +) -> Bool32; +pub const KHR_XCB_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xcb_surface\0") }; +pub const KHR_XCB_SURFACE_SPEC_VERSION: u32 = 6u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const XcbSurfaceCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + connection: *mut xcb_connection_t, + visual_id: xcb_visualid_t, +) -> Bool32; +pub const KHR_WAYLAND_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_wayland_surface\0") }; +pub const KHR_WAYLAND_SURFACE_SPEC_VERSION: u32 = 6u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + display: *mut wl_display, +) + -> Bool32; +pub const KHR_ANDROID_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_android_surface\0") }; +pub const KHR_ANDROID_SURFACE_SPEC_VERSION: u32 = 6u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const AndroidSurfaceCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const KHR_WIN32_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_surface\0") }; +pub const KHR_WIN32_SURFACE_SPEC_VERSION: u32 = 6u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateWin32SurfaceKHR = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const Win32SurfaceCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR = + unsafe extern "system" fn(physical_device: PhysicalDevice, queue_family_index: u32) -> Bool32; +pub const ANDROID_NATIVE_BUFFER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_native_buffer\0") }; +pub const ANDROID_NATIVE_BUFFER_SPEC_VERSION: u32 = 8u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSwapchainGrallocUsageANDROID = unsafe extern "system" fn( + device: crate::vk::Device, + format: Format, + image_usage: ImageUsageFlags, + gralloc_usage: *mut c_int, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireImageANDROID = unsafe extern "system" fn( + device: crate::vk::Device, + image: Image, + native_fence_fd: c_int, + semaphore: Semaphore, + fence: Fence, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkQueueSignalReleaseImageANDROID = unsafe extern "system" fn( + queue: Queue, + wait_semaphore_count: u32, + p_wait_semaphores: *const Semaphore, + image: Image, + p_native_fence_fd: *mut c_int, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = unsafe extern "system" fn( + device: crate::vk::Device, + format: Format, + image_usage: ImageUsageFlags, + swapchain_image_usage: SwapchainImageUsageFlagsANDROID, + gralloc_consumer_usage: *mut u64, + gralloc_producer_usage: *mut u64, +) -> Result; +pub const EXT_DEBUG_REPORT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_report\0") }; +pub const EXT_DEBUG_REPORT_SPEC_VERSION: u32 = 10u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDebugReportCallbackEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_callback: *mut DebugReportCallbackEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyDebugReportCallbackEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + callback: DebugReportCallbackEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkDebugReportMessageEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + flags: DebugReportFlagsEXT, + object_type: DebugReportObjectTypeEXT, + object: u64, + location: usize, + message_code: i32, + p_layer_prefix: *const c_char, + p_message: *const c_char, +); +pub const NV_GLSL_SHADER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_glsl_shader\0") }; +pub const NV_GLSL_SHADER_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEPTH_RANGE_UNRESTRICTED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_range_unrestricted\0") }; +pub const EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION: u32 = 1u32; +pub const KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_sampler_mirror_clamp_to_edge\0") }; +pub const KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION: u32 = 3u32; +pub const IMG_FILTER_CUBIC_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_IMG_filter_cubic\0") }; +pub const IMG_FILTER_CUBIC_SPEC_VERSION: u32 = 1u32; +pub const AMD_RASTERIZATION_ORDER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_rasterization_order\0") }; +pub const AMD_RASTERIZATION_ORDER_SPEC_VERSION: u32 = 1u32; +pub const AMD_SHADER_TRINARY_MINMAX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_trinary_minmax\0") }; +pub const AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION: u32 = 1u32; +pub const AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_explicit_vertex_parameter\0") }; +pub const AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEBUG_MARKER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_marker\0") }; +pub const EXT_DEBUG_MARKER_SPEC_VERSION: u32 = 4u32; +#[allow(non_camel_case_types)] +pub type PFN_vkDebugMarkerSetObjectTagEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDebugMarkerSetObjectNameEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDebugMarkerBeginEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDebugMarkerEndEXT = unsafe extern "system" fn(command_buffer: CommandBuffer); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDebugMarkerInsertEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_marker_info: *const DebugMarkerMarkerInfoEXT<'_>, +); +pub const KHR_VIDEO_QUEUE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_queue\0") }; +pub const KHR_VIDEO_QUEUE_SPEC_VERSION: u32 = 8u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_video_profile: *const VideoProfileInfoKHR<'_>, + p_capabilities: *mut VideoCapabilitiesKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR<'_>, + p_video_format_property_count: *mut u32, + p_video_format_properties: *mut VideoFormatPropertiesKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateVideoSessionKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const VideoSessionCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_video_session: *mut VideoSessionKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyVideoSessionKHR = unsafe extern "system" fn( + device: crate::vk::Device, + video_session: VideoSessionKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetVideoSessionMemoryRequirementsKHR = unsafe extern "system" fn( + device: crate::vk::Device, + video_session: VideoSessionKHR, + p_memory_requirements_count: *mut u32, + p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkBindVideoSessionMemoryKHR = unsafe extern "system" fn( + device: crate::vk::Device, + video_session: VideoSessionKHR, + bind_session_memory_info_count: u32, + p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateVideoSessionParametersKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_video_session_parameters: *mut VideoSessionParametersKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkUpdateVideoSessionParametersKHR = unsafe extern "system" fn( + device: crate::vk::Device, + video_session_parameters: VideoSessionParametersKHR, + p_update_info: *const VideoSessionParametersUpdateInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyVideoSessionParametersKHR = unsafe extern "system" fn( + device: crate::vk::Device, + video_session_parameters: VideoSessionParametersKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginVideoCodingKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_begin_info: *const VideoBeginCodingInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndVideoCodingKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_end_coding_info: *const VideoEndCodingInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdControlVideoCodingKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_coding_control_info: *const VideoCodingControlInfoKHR<'_>, +); +pub const KHR_VIDEO_DECODE_QUEUE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_queue\0") }; +pub const KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION: u32 = 8u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDecodeVideoKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_decode_info: *const VideoDecodeInfoKHR<'_>, +); +pub const AMD_GCN_SHADER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gcn_shader\0") }; +pub const AMD_GCN_SHADER_SPEC_VERSION: u32 = 1u32; +pub const NV_DEDICATED_ALLOCATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_dedicated_allocation\0") }; +pub const NV_DEDICATED_ALLOCATION_SPEC_VERSION: u32 = 1u32; +pub const EXT_TRANSFORM_FEEDBACK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_transform_feedback\0") }; +pub const EXT_TRANSFORM_FEEDBACK_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_binding: u32, + binding_count: u32, + p_buffers: *const Buffer, + p_offsets: *const DeviceSize, + p_sizes: *const DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_counter_buffer: u32, + counter_buffer_count: u32, + p_counter_buffers: *const Buffer, + p_counter_buffer_offsets: *const DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_counter_buffer: u32, + counter_buffer_count: u32, + p_counter_buffers: *const Buffer, + p_counter_buffer_offsets: *const DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginQueryIndexedEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + query_pool: QueryPool, + query: u32, + flags: QueryControlFlags, + index: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndQueryIndexedEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + query_pool: QueryPool, + query: u32, + index: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + instance_count: u32, + first_instance: u32, + counter_buffer: Buffer, + counter_buffer_offset: DeviceSize, + counter_offset: u32, + vertex_stride: u32, +); +pub const NVX_BINARY_IMPORT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_binary_import\0") }; +pub const NVX_BINARY_IMPORT_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const CuModuleCreateInfoNVX<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_module: *mut CuModuleNVX, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateCuFunctionNVX = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const CuFunctionCreateInfoNVX<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_function: *mut CuFunctionNVX, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyCuModuleNVX = unsafe extern "system" fn( + device: crate::vk::Device, + module: CuModuleNVX, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyCuFunctionNVX = unsafe extern "system" fn( + device: crate::vk::Device, + function: CuFunctionNVX, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCuLaunchKernelNVX = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_launch_info: *const CuLaunchInfoNVX<'_>, +); +pub const NVX_IMAGE_VIEW_HANDLE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_image_view_handle\0") }; +pub const NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageViewHandleNVX = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ImageViewHandleInfoNVX<'_>, +) -> u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn( + device: crate::vk::Device, + image_view: ImageView, + p_properties: *mut ImageViewAddressPropertiesNVX<'_>, +) -> Result; +pub const AMD_DRAW_INDIRECT_COUNT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_draw_indirect_count\0") }; +pub const AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawIndirectCount = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + count_buffer: Buffer, + count_buffer_offset: DeviceSize, + max_draw_count: u32, + stride: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + count_buffer: Buffer, + count_buffer_offset: DeviceSize, + max_draw_count: u32, + stride: u32, +); +pub const AMD_NEGATIVE_VIEWPORT_HEIGHT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_negative_viewport_height\0") }; +pub const AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION: u32 = 1u32; +pub const AMD_GPU_SHADER_HALF_FLOAT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_half_float\0") }; +pub const AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION: u32 = 2u32; +pub const AMD_SHADER_BALLOT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_ballot\0") }; +pub const AMD_SHADER_BALLOT_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_ENCODE_H264_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_h264\0") }; +pub const KHR_VIDEO_ENCODE_H264_SPEC_VERSION: u32 = 14u32; +pub const KHR_VIDEO_ENCODE_H265_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_h265\0") }; +pub const KHR_VIDEO_ENCODE_H265_SPEC_VERSION: u32 = 14u32; +pub const KHR_VIDEO_DECODE_H264_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_h264\0") }; +pub const KHR_VIDEO_DECODE_H264_SPEC_VERSION: u32 = 9u32; +pub const AMD_TEXTURE_GATHER_BIAS_LOD_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_texture_gather_bias_lod\0") }; +pub const AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION: u32 = 1u32; +pub const AMD_SHADER_INFO_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_info\0") }; +pub const AMD_SHADER_INFO_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn( + device: crate::vk::Device, + pipeline: Pipeline, + shader_stage: ShaderStageFlags, + info_type: ShaderInfoTypeAMD, + p_info_size: *mut usize, + p_info: *mut c_void, +) -> Result; +pub const KHR_DYNAMIC_RENDERING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering\0") }; +pub const KHR_DYNAMIC_RENDERING_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginRendering = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_rendering_info: *const RenderingInfo<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndRendering = unsafe extern "system" fn(command_buffer: CommandBuffer); +pub const AMD_SHADER_IMAGE_LOAD_STORE_LOD_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_image_load_store_lod\0") }; +pub const AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION: u32 = 1u32; +pub const GGP_STREAM_DESCRIPTOR_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GGP_stream_descriptor_surface\0") }; +pub const GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateStreamDescriptorSurfaceGGP = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const NV_CORNER_SAMPLED_IMAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_corner_sampled_image\0") }; +pub const NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION: u32 = 2u32; +pub const KHR_MULTIVIEW_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_multiview\0") }; +pub const KHR_MULTIVIEW_SPEC_VERSION: u32 = 1u32; +pub const IMG_FORMAT_PVRTC_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_IMG_format_pvrtc\0") }; +pub const IMG_FORMAT_PVRTC_SPEC_VERSION: u32 = 1u32; +pub const NV_EXTERNAL_MEMORY_CAPABILITIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_capabilities\0") }; +pub const NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + format: Format, + ty: ImageType, + tiling: ImageTiling, + usage: ImageUsageFlags, + flags: ImageCreateFlags, + external_handle_type: ExternalMemoryHandleTypeFlagsNV, + p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV, + ) -> Result; +pub const NV_EXTERNAL_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory\0") }; +pub const NV_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1u32; +pub const NV_EXTERNAL_MEMORY_WIN32_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_win32\0") }; +pub const NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryWin32HandleNV = unsafe extern "system" fn( + device: crate::vk::Device, + memory: DeviceMemory, + handle_type: ExternalMemoryHandleTypeFlagsNV, + p_handle: *mut HANDLE, +) -> Result; +pub const NV_WIN32_KEYED_MUTEX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_win32_keyed_mutex\0") }; +pub const NV_WIN32_KEYED_MUTEX_SPEC_VERSION: u32 = 2u32; +pub const KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_physical_device_properties2\0") }; +pub const KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceFeatures2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_features: *mut PhysicalDeviceFeatures2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceProperties2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_properties: *mut PhysicalDeviceProperties2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceFormatProperties2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + format: Format, + p_format_properties: *mut FormatProperties2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceImageFormatProperties2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>, + p_image_format_properties: *mut ImageFormatProperties2<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_queue_family_property_count: *mut u32, + p_queue_family_properties: *mut QueueFamilyProperties2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceMemoryProperties2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>, + p_property_count: *mut u32, + p_properties: *mut SparseImageFormatProperties2<'_>, +); +pub const KHR_DEVICE_GROUP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group\0") }; +pub const KHR_DEVICE_GROUP_SPEC_VERSION: u32 = 4u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = unsafe extern "system" fn( + device: crate::vk::Device, + heap_index: u32, + local_device_index: u32, + remote_device_index: u32, + p_peer_memory_features: *mut PeerMemoryFeatureFlags, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDeviceMask = + unsafe extern "system" fn(command_buffer: CommandBuffer, device_mask: u32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDispatchBase = unsafe extern "system" fn( + command_buffer: CommandBuffer, + base_group_x: u32, + base_group_y: u32, + base_group_z: u32, + group_count_x: u32, + group_count_y: u32, + group_count_z: u32, +); +pub const EXT_VALIDATION_FLAGS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_flags\0") }; +pub const EXT_VALIDATION_FLAGS_SPEC_VERSION: u32 = 3u32; +pub const NN_VI_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NN_vi_surface\0") }; +pub const NN_VI_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateViSurfaceNN = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const ViSurfaceCreateInfoNN<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const KHR_SHADER_DRAW_PARAMETERS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_draw_parameters\0") }; +pub const KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_SUBGROUP_BALLOT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_ballot\0") }; +pub const EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_SUBGROUP_VOTE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_vote\0") }; +pub const EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION: u32 = 1u32; +pub const EXT_TEXTURE_COMPRESSION_ASTC_HDR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_texture_compression_astc_hdr\0") }; +pub const EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION: u32 = 1u32; +pub const EXT_ASTC_DECODE_MODE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_astc_decode_mode\0") }; +pub const EXT_ASTC_DECODE_MODE_SPEC_VERSION: u32 = 1u32; +pub const EXT_PIPELINE_ROBUSTNESS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_robustness\0") }; +pub const EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION: u32 = 1u32; +pub const KHR_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance1\0") }; +pub const KHR_MAINTENANCE1_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkTrimCommandPool = unsafe extern "system" fn( + device: crate::vk::Device, + command_pool: CommandPool, + flags: CommandPoolTrimFlags, +); +pub const KHR_DEVICE_GROUP_CREATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group_creation\0") }; +pub const KHR_DEVICE_GROUP_CREATION_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkEnumeratePhysicalDeviceGroups = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_physical_device_group_count: *mut u32, + p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties<'_>, +) -> Result; +pub const KHR_EXTERNAL_MEMORY_CAPABILITIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_capabilities\0") }; +pub const KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceExternalBufferProperties = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo<'_>, + p_external_buffer_properties: *mut ExternalBufferProperties<'_>, +); +pub const KHR_EXTERNAL_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory\0") }; +pub const KHR_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1u32; +pub const KHR_EXTERNAL_MEMORY_WIN32_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_win32\0") }; +pub const KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryWin32HandleKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR<'_>, + p_handle: *mut HANDLE, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryWin32HandlePropertiesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + handle_type: ExternalMemoryHandleTypeFlags, + handle: HANDLE, + p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR<'_>, +) -> Result; +pub const KHR_EXTERNAL_MEMORY_FD_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_fd\0") }; +pub const KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryFdKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_fd_info: *const MemoryGetFdInfoKHR<'_>, + p_fd: *mut c_int, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryFdPropertiesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + handle_type: ExternalMemoryHandleTypeFlags, + fd: c_int, + p_memory_fd_properties: *mut MemoryFdPropertiesKHR<'_>, +) -> Result; +pub const KHR_WIN32_KEYED_MUTEX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_keyed_mutex\0") }; +pub const KHR_WIN32_KEYED_MUTEX_SPEC_VERSION: u32 = 1u32; +pub const KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_capabilities\0") }; +pub const KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo<'_>, + p_external_semaphore_properties: *mut ExternalSemaphoreProperties<'_>, +); +pub const KHR_EXTERNAL_SEMAPHORE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore\0") }; +pub const KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION: u32 = 1u32; +pub const KHR_EXTERNAL_SEMAPHORE_WIN32_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_win32\0") }; +pub const KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkImportSemaphoreWin32HandleKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSemaphoreWin32HandleKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR<'_>, + p_handle: *mut HANDLE, +) -> Result; +pub const KHR_EXTERNAL_SEMAPHORE_FD_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_fd\0") }; +pub const KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkImportSemaphoreFdKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSemaphoreFdKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_fd_info: *const SemaphoreGetFdInfoKHR<'_>, + p_fd: *mut c_int, +) -> Result; +pub const KHR_PUSH_DESCRIPTOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_push_descriptor\0") }; +pub const KHR_PUSH_DESCRIPTOR_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + pipeline_bind_point: PipelineBindPoint, + layout: PipelineLayout, + set: u32, + descriptor_write_count: u32, + p_descriptor_writes: *const WriteDescriptorSet<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + descriptor_update_template: DescriptorUpdateTemplate, + layout: PipelineLayout, + set: u32, + p_data: *const c_void, +); +pub const EXT_CONDITIONAL_RENDERING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conditional_rendering\0") }; +pub const EXT_CONDITIONAL_RENDERING_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndConditionalRenderingEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer); +pub const KHR_SHADER_FLOAT16_INT8_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float16_int8\0") }; +pub const KHR_SHADER_FLOAT16_INT8_SPEC_VERSION: u32 = 1u32; +pub const KHR_16BIT_STORAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_16bit_storage\0") }; +pub const KHR_16BIT_STORAGE_SPEC_VERSION: u32 = 1u32; +pub const KHR_INCREMENTAL_PRESENT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_incremental_present\0") }; +pub const KHR_INCREMENTAL_PRESENT_SPEC_VERSION: u32 = 2u32; +pub const KHR_DESCRIPTOR_UPDATE_TEMPLATE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_descriptor_update_template\0") }; +pub const KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDescriptorUpdateTemplate = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_descriptor_update_template: *mut DescriptorUpdateTemplate, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyDescriptorUpdateTemplate = unsafe extern "system" fn( + device: crate::vk::Device, + descriptor_update_template: DescriptorUpdateTemplate, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkUpdateDescriptorSetWithTemplate = unsafe extern "system" fn( + device: crate::vk::Device, + descriptor_set: DescriptorSet, + descriptor_update_template: DescriptorUpdateTemplate, + p_data: *const c_void, +); +pub const NV_CLIP_SPACE_W_SCALING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_clip_space_w_scaling\0") }; +pub const NV_CLIP_SPACE_W_SCALING_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetViewportWScalingNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_viewport: u32, + viewport_count: u32, + p_viewport_w_scalings: *const ViewportWScalingNV, +); +pub const EXT_DIRECT_MODE_DISPLAY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_direct_mode_display\0") }; +pub const EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkReleaseDisplayEXT = + unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result; +pub const EXT_ACQUIRE_XLIB_DISPLAY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_xlib_display\0") }; +pub const EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireXlibDisplayEXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + dpy: *mut Display, + display: DisplayKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetRandROutputDisplayEXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + dpy: *mut Display, + rr_output: RROutput, + p_display: *mut DisplayKHR, +) -> Result; +pub const EXT_DISPLAY_SURFACE_COUNTER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_surface_counter\0") }; +pub const EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + surface: SurfaceKHR, + p_surface_capabilities: *mut SurfaceCapabilities2EXT<'_>, +) -> Result; +pub const EXT_DISPLAY_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_control\0") }; +pub const EXT_DISPLAY_CONTROL_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkDisplayPowerControlEXT = unsafe extern "system" fn( + device: crate::vk::Device, + display: DisplayKHR, + p_display_power_info: *const DisplayPowerInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkRegisterDeviceEventEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_device_event_info: *const DeviceEventInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_fence: *mut Fence, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkRegisterDisplayEventEXT = unsafe extern "system" fn( + device: crate::vk::Device, + display: DisplayKHR, + p_display_event_info: *const DisplayEventInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_fence: *mut Fence, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSwapchainCounterEXT = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + counter: SurfaceCounterFlagsEXT, + p_counter_value: *mut u64, +) -> Result; +pub const GOOGLE_DISPLAY_TIMING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_display_timing\0") }; +pub const GOOGLE_DISPLAY_TIMING_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetRefreshCycleDurationGOOGLE = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_display_timing_properties: *mut RefreshCycleDurationGOOGLE, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPastPresentationTimingGOOGLE = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_presentation_timing_count: *mut u32, + p_presentation_timings: *mut PastPresentationTimingGOOGLE, +) -> Result; +pub const NV_SAMPLE_MASK_OVERRIDE_COVERAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_sample_mask_override_coverage\0") }; +pub const NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION: u32 = 1u32; +pub const NV_GEOMETRY_SHADER_PASSTHROUGH_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_geometry_shader_passthrough\0") }; +pub const NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION: u32 = 1u32; +pub const NV_VIEWPORT_ARRAY2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_array2\0") }; +pub const NV_VIEWPORT_ARRAY2_SPEC_VERSION: u32 = 1u32; +pub const NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NVX_multiview_per_view_attributes\0") }; +pub const NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION: u32 = 1u32; +pub const NV_VIEWPORT_SWIZZLE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_swizzle\0") }; +pub const NV_VIEWPORT_SWIZZLE_SPEC_VERSION: u32 = 1u32; +pub const EXT_DISCARD_RECTANGLES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_discard_rectangles\0") }; +pub const EXT_DISCARD_RECTANGLES_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDiscardRectangleEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_discard_rectangle: u32, + discard_rectangle_count: u32, + p_discard_rectangles: *const Rect2D, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDiscardRectangleEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, discard_rectangle_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDiscardRectangleModeEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + discard_rectangle_mode: DiscardRectangleModeEXT, +); +pub const EXT_CONSERVATIVE_RASTERIZATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conservative_rasterization\0") }; +pub const EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEPTH_CLIP_ENABLE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_enable\0") }; +pub const EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION: u32 = 1u32; +pub const EXT_SWAPCHAIN_COLORSPACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_colorspace\0") }; +pub const EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION: u32 = 4u32; +pub const EXT_HDR_METADATA_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_hdr_metadata\0") }; +pub const EXT_HDR_METADATA_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain_count: u32, + p_swapchains: *const SwapchainKHR, + p_metadata: *const HdrMetadataEXT<'_>, +); +pub const KHR_IMAGELESS_FRAMEBUFFER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_imageless_framebuffer\0") }; +pub const KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION: u32 = 1u32; +pub const KHR_CREATE_RENDERPASS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_create_renderpass2\0") }; +pub const KHR_CREATE_RENDERPASS2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const RenderPassCreateInfo2<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_render_pass: *mut RenderPass, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginRenderPass2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_render_pass_begin: *const RenderPassBeginInfo<'_>, + p_subpass_begin_info: *const SubpassBeginInfo<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdNextSubpass2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_subpass_begin_info: *const SubpassBeginInfo<'_>, + p_subpass_end_info: *const SubpassEndInfo<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndRenderPass2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_subpass_end_info: *const SubpassEndInfo<'_>, +); +pub const IMG_RELAXED_LINE_RASTERIZATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_IMG_relaxed_line_rasterization\0") }; +pub const IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHARED_PRESENTABLE_IMAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shared_presentable_image\0") }; +pub const KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSwapchainStatusKHR = + unsafe extern "system" fn(device: crate::vk::Device, swapchain: SwapchainKHR) -> Result; +pub const KHR_EXTERNAL_FENCE_CAPABILITIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_capabilities\0") }; +pub const KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceExternalFenceProperties = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_external_fence_info: *const PhysicalDeviceExternalFenceInfo<'_>, + p_external_fence_properties: *mut ExternalFenceProperties<'_>, +); +pub const KHR_EXTERNAL_FENCE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence\0") }; +pub const KHR_EXTERNAL_FENCE_SPEC_VERSION: u32 = 1u32; +pub const KHR_EXTERNAL_FENCE_WIN32_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_win32\0") }; +pub const KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkImportFenceWin32HandleKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetFenceWin32HandleKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR<'_>, + p_handle: *mut HANDLE, +) -> Result; +pub const KHR_EXTERNAL_FENCE_FD_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_fd\0") }; +pub const KHR_EXTERNAL_FENCE_FD_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkImportFenceFdKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_import_fence_fd_info: *const ImportFenceFdInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetFenceFdKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_fd_info: *const FenceGetFdInfoKHR<'_>, + p_fd: *mut c_int, +) -> Result; +pub const KHR_PERFORMANCE_QUERY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_performance_query\0") }; +pub const KHR_PERFORMANCE_QUERY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + p_counter_count: *mut u32, + p_counters: *mut PerformanceCounterKHR<'_>, + p_counter_descriptions: *mut PerformanceCounterDescriptionKHR<'_>, + ) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR<'_>, + p_num_passes: *mut u32, + ); +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireProfilingLockKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const AcquireProfilingLockInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkReleaseProfilingLockKHR = unsafe extern "system" fn(device: crate::vk::Device); +pub const KHR_MAINTENANCE2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance2\0") }; +pub const KHR_MAINTENANCE2_SPEC_VERSION: u32 = 1u32; +pub const KHR_GET_SURFACE_CAPABILITIES2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_surface_capabilities2\0") }; +pub const KHR_GET_SURFACE_CAPABILITIES2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + p_surface_capabilities: *mut SurfaceCapabilities2KHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + p_surface_format_count: *mut u32, + p_surface_formats: *mut SurfaceFormat2KHR<'_>, +) -> Result; +pub const KHR_VARIABLE_POINTERS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_variable_pointers\0") }; +pub const KHR_VARIABLE_POINTERS_SPEC_VERSION: u32 = 1u32; +pub const KHR_GET_DISPLAY_PROPERTIES2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_display_properties2\0") }; +pub const KHR_GET_DISPLAY_PROPERTIES2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut DisplayProperties2KHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut DisplayPlaneProperties2KHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDisplayModeProperties2KHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + display: DisplayKHR, + p_property_count: *mut u32, + p_properties: *mut DisplayModeProperties2KHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDisplayPlaneCapabilities2KHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_display_plane_info: *const DisplayPlaneInfo2KHR<'_>, + p_capabilities: *mut DisplayPlaneCapabilities2KHR<'_>, +) -> Result; +pub const MVK_IOS_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MVK_ios_surface\0") }; +pub const MVK_IOS_SURFACE_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateIOSSurfaceMVK = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const IOSSurfaceCreateInfoMVK<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const MVK_MACOS_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MVK_macos_surface\0") }; +pub const MVK_MACOS_SURFACE_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateMacOSSurfaceMVK = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const MacOSSurfaceCreateInfoMVK<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const EXT_EXTERNAL_MEMORY_DMA_BUF_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_dma_buf\0") }; +pub const EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION: u32 = 1u32; +pub const EXT_QUEUE_FAMILY_FOREIGN_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_queue_family_foreign\0") }; +pub const EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION: u32 = 1u32; +pub const KHR_DEDICATED_ALLOCATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dedicated_allocation\0") }; +pub const KHR_DEDICATED_ALLOCATION_SPEC_VERSION: u32 = 3u32; +pub const EXT_DEBUG_UTILS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_utils\0") }; +pub const EXT_DEBUG_UTILS_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDebugUtilsMessengerEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_messenger: *mut DebugUtilsMessengerEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyDebugUtilsMessengerEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + messenger: DebugUtilsMessengerEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkSubmitDebugUtilsMessageEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + message_severity: DebugUtilsMessageSeverityFlagsEXT, + message_types: DebugUtilsMessageTypeFlagsEXT, + p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkSetDebugUtilsObjectNameEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkSetDebugUtilsObjectTagEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkQueueBeginDebugUtilsLabelEXT = + unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT<'_>); +#[allow(non_camel_case_types)] +pub type PFN_vkQueueEndDebugUtilsLabelEXT = unsafe extern "system" fn(queue: Queue); +#[allow(non_camel_case_types)] +pub type PFN_vkQueueInsertDebugUtilsLabelEXT = + unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT<'_>); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBeginDebugUtilsLabelEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_label_info: *const DebugUtilsLabelEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEndDebugUtilsLabelEXT = unsafe extern "system" fn(command_buffer: CommandBuffer); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdInsertDebugUtilsLabelEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_label_info: *const DebugUtilsLabelEXT<'_>, +); +pub const ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_external_memory_android_hardware_buffer\0") +}; +pub const ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION: u32 = 5u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = unsafe extern "system" fn( + device: crate::vk::Device, + buffer: *const AHardwareBuffer, + p_properties: *mut AndroidHardwareBufferPropertiesANDROID<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID<'_>, + p_buffer: *mut *mut AHardwareBuffer, +) -> Result; +pub const EXT_SAMPLER_FILTER_MINMAX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sampler_filter_minmax\0") }; +pub const EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION: u32 = 2u32; +pub const KHR_STORAGE_BUFFER_STORAGE_CLASS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_storage_buffer_storage_class\0") }; +pub const KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION: u32 = 1u32; +pub const AMD_GPU_SHADER_INT16_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_int16\0") }; +pub const AMD_GPU_SHADER_INT16_SPEC_VERSION: u32 = 2u32; +pub const AMDX_SHADER_ENQUEUE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMDX_shader_enqueue\0") }; +pub const AMDX_SHADER_ENQUEUE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateExecutionGraphPipelinesAMDX = unsafe extern "system" fn( + device: crate::vk::Device, + pipeline_cache: PipelineCache, + create_info_count: u32, + p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_pipelines: *mut Pipeline, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetExecutionGraphPipelineScratchSizeAMDX = unsafe extern "system" fn( + device: crate::vk::Device, + execution_graph: Pipeline, + p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetExecutionGraphPipelineNodeIndexAMDX = unsafe extern "system" fn( + device: crate::vk::Device, + execution_graph: Pipeline, + p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>, + p_node_index: *mut u32, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = + unsafe extern "system" fn(command_buffer: CommandBuffer, scratch: DeviceAddress); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDispatchGraphAMDX = unsafe extern "system" fn( + command_buffer: CommandBuffer, + scratch: DeviceAddress, + p_count_info: *const DispatchGraphCountInfoAMDX, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDispatchGraphIndirectAMDX = unsafe extern "system" fn( + command_buffer: CommandBuffer, + scratch: DeviceAddress, + p_count_info: *const DispatchGraphCountInfoAMDX, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDispatchGraphIndirectCountAMDX = unsafe extern "system" fn( + command_buffer: CommandBuffer, + scratch: DeviceAddress, + count_info: DeviceAddress, +); +pub const AMD_MIXED_ATTACHMENT_SAMPLES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_mixed_attachment_samples\0") }; +pub const AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION: u32 = 1u32; +pub const AMD_SHADER_FRAGMENT_MASK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_fragment_mask\0") }; +pub const AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION: u32 = 1u32; +pub const EXT_INLINE_UNIFORM_BLOCK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_inline_uniform_block\0") }; +pub const EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_STENCIL_EXPORT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_stencil_export\0") }; +pub const EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION: u32 = 1u32; +pub const EXT_SAMPLE_LOCATIONS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sample_locations\0") }; +pub const EXT_SAMPLE_LOCATIONS_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + samples: SampleCountFlags, + p_multisample_properties: *mut MultisamplePropertiesEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetSampleLocationsEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_sample_locations_info: *const SampleLocationsInfoEXT<'_>, +); +pub const KHR_RELAXED_BLOCK_LAYOUT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_relaxed_block_layout\0") }; +pub const KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION: u32 = 1u32; +pub const KHR_GET_MEMORY_REQUIREMENTS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_memory_requirements2\0") }; +pub const KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageMemoryRequirements2 = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ImageMemoryRequirementsInfo2<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetBufferMemoryRequirements2 = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const BufferMemoryRequirementsInfo2<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageSparseMemoryRequirements2 = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, + p_sparse_memory_requirement_count: *mut u32, + p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, +); +pub const KHR_IMAGE_FORMAT_LIST_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_image_format_list\0") }; +pub const KHR_IMAGE_FORMAT_LIST_SPEC_VERSION: u32 = 1u32; +pub const EXT_BLEND_OPERATION_ADVANCED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_blend_operation_advanced\0") }; +pub const EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION: u32 = 2u32; +pub const NV_FRAGMENT_COVERAGE_TO_COLOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_coverage_to_color\0") }; +pub const NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION: u32 = 1u32; +pub const KHR_ACCELERATION_STRUCTURE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_acceleration_structure\0") }; +pub const KHR_ACCELERATION_STRUCTURE_SPEC_VERSION: u32 = 13u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const AccelerationStructureCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_acceleration_structure: *mut AccelerationStructureKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyAccelerationStructureKHR = unsafe extern "system" fn( + device: crate::vk::Device, + acceleration_structure: AccelerationStructureKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBuildAccelerationStructuresKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + info_count: u32, + p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBuildAccelerationStructuresIndirectKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + info_count: u32, + p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + p_indirect_device_addresses: *const DeviceAddress, + p_indirect_strides: *const u32, + pp_max_primitive_counts: *const *const u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkBuildAccelerationStructuresKHR = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + info_count: u32, + p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyAccelerationStructureKHR = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + p_info: *const CopyAccelerationStructureInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + acceleration_structure_count: u32, + p_acceleration_structures: *const AccelerationStructureKHR, + query_type: QueryType, + data_size: usize, + p_data: *mut c_void, + stride: usize, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyAccelerationStructureKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const CopyAccelerationStructureInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetAccelerationStructureDeviceAddressKHR = + unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const AccelerationStructureDeviceAddressInfoKHR<'_>, + ) -> DeviceAddress; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + acceleration_structure_count: u32, + p_acceleration_structures: *const AccelerationStructureKHR, + query_type: QueryType, + query_pool: QueryPool, + first_query: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_version_info: *const AccelerationStructureVersionInfoKHR<'_>, + p_compatibility: *mut AccelerationStructureCompatibilityKHR, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetAccelerationStructureBuildSizesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + build_type: AccelerationStructureBuildTypeKHR, + p_build_info: *const AccelerationStructureBuildGeometryInfoKHR<'_>, + p_max_primitive_counts: *const u32, + p_size_info: *mut AccelerationStructureBuildSizesInfoKHR<'_>, +); +pub const KHR_RAY_TRACING_PIPELINE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_pipeline\0") }; +pub const KHR_RAY_TRACING_PIPELINE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdTraceRaysKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, + p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, + p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, + p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, + width: u32, + height: u32, + depth: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateRayTracingPipelinesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + pipeline_cache: PipelineCache, + create_info_count: u32, + p_create_infos: *const RayTracingPipelineCreateInfoKHR<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_pipelines: *mut Pipeline, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + pipeline: Pipeline, + first_group: u32, + group_count: u32, + data_size: usize, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = + unsafe extern "system" fn( + device: crate::vk::Device, + pipeline: Pipeline, + first_group: u32, + group_count: u32, + data_size: usize, + p_data: *mut c_void, + ) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdTraceRaysIndirectKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, + p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, + p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, + p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, + indirect_device_address: DeviceAddress, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = unsafe extern "system" fn( + device: crate::vk::Device, + pipeline: Pipeline, + group: u32, + group_shader: ShaderGroupShaderKHR, +) -> DeviceSize; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRayTracingPipelineStackSizeKHR = + unsafe extern "system" fn(command_buffer: CommandBuffer, pipeline_stack_size: u32); +pub const KHR_RAY_QUERY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_query\0") }; +pub const KHR_RAY_QUERY_SPEC_VERSION: u32 = 1u32; +pub const NV_FRAMEBUFFER_MIXED_SAMPLES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_framebuffer_mixed_samples\0") }; +pub const NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION: u32 = 1u32; +pub const NV_FILL_RECTANGLE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fill_rectangle\0") }; +pub const NV_FILL_RECTANGLE_SPEC_VERSION: u32 = 1u32; +pub const NV_SHADER_SM_BUILTINS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_sm_builtins\0") }; +pub const NV_SHADER_SM_BUILTINS_SPEC_VERSION: u32 = 1u32; +pub const EXT_POST_DEPTH_COVERAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_post_depth_coverage\0") }; +pub const EXT_POST_DEPTH_COVERAGE_SPEC_VERSION: u32 = 1u32; +pub const KHR_SAMPLER_YCBCR_CONVERSION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_sampler_ycbcr_conversion\0") }; +pub const KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION: u32 = 14u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateSamplerYcbcrConversion = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_ycbcr_conversion: *mut SamplerYcbcrConversion, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroySamplerYcbcrConversion = unsafe extern "system" fn( + device: crate::vk::Device, + ycbcr_conversion: SamplerYcbcrConversion, + p_allocator: *const AllocationCallbacks<'_>, +); +pub const KHR_BIND_MEMORY2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_bind_memory2\0") }; +pub const KHR_BIND_MEMORY2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkBindBufferMemory2 = unsafe extern "system" fn( + device: crate::vk::Device, + bind_info_count: u32, + p_bind_infos: *const BindBufferMemoryInfo<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkBindImageMemory2 = unsafe extern "system" fn( + device: crate::vk::Device, + bind_info_count: u32, + p_bind_infos: *const BindImageMemoryInfo<'_>, +) -> Result; +pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_drm_format_modifier\0") }; +pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + image: Image, + p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, +) -> Result; +pub const EXT_VALIDATION_CACHE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_cache\0") }; +pub const EXT_VALIDATION_CACHE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateValidationCacheEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const ValidationCacheCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_validation_cache: *mut ValidationCacheEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyValidationCacheEXT = unsafe extern "system" fn( + device: crate::vk::Device, + validation_cache: ValidationCacheEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkMergeValidationCachesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + dst_cache: ValidationCacheEXT, + src_cache_count: u32, + p_src_caches: *const ValidationCacheEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetValidationCacheDataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + validation_cache: ValidationCacheEXT, + p_data_size: *mut usize, + p_data: *mut c_void, +) -> Result; +pub const EXT_DESCRIPTOR_INDEXING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_indexing\0") }; +pub const EXT_DESCRIPTOR_INDEXING_SPEC_VERSION: u32 = 2u32; +pub const EXT_SHADER_VIEWPORT_INDEX_LAYER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_viewport_index_layer\0") }; +pub const EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION: u32 = 1u32; +pub const KHR_PORTABILITY_SUBSET_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_subset\0") }; +pub const KHR_PORTABILITY_SUBSET_SPEC_VERSION: u32 = 1u32; +pub const NV_SHADING_RATE_IMAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shading_rate_image\0") }; +pub const NV_SHADING_RATE_IMAGE_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindShadingRateImageNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + image_view: ImageView, + image_layout: ImageLayout, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetViewportShadingRatePaletteNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_viewport: u32, + viewport_count: u32, + p_shading_rate_palettes: *const ShadingRatePaletteNV<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoarseSampleOrderNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + sample_order_type: CoarseSampleOrderTypeNV, + custom_sample_order_count: u32, + p_custom_sample_orders: *const CoarseSampleOrderCustomNV<'_>, +); +pub const NV_RAY_TRACING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing\0") }; +pub const NV_RAY_TRACING_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateAccelerationStructureNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const AccelerationStructureCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_acceleration_structure: *mut AccelerationStructureNV, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyAccelerationStructureNV = unsafe extern "system" fn( + device: crate::vk::Device, + acceleration_structure: AccelerationStructureNV, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetAccelerationStructureMemoryRequirementsNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, + p_memory_requirements: *mut MemoryRequirements2KHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkBindAccelerationStructureMemoryNV = unsafe extern "system" fn( + device: crate::vk::Device, + bind_info_count: u32, + p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBuildAccelerationStructureNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const AccelerationStructureInfoNV<'_>, + instance_data: Buffer, + instance_offset: DeviceSize, + update: Bool32, + dst: AccelerationStructureNV, + src: AccelerationStructureNV, + scratch: Buffer, + scratch_offset: DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyAccelerationStructureNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + dst: AccelerationStructureNV, + src: AccelerationStructureNV, + mode: CopyAccelerationStructureModeKHR, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdTraceRaysNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + raygen_shader_binding_table_buffer: Buffer, + raygen_shader_binding_offset: DeviceSize, + miss_shader_binding_table_buffer: Buffer, + miss_shader_binding_offset: DeviceSize, + miss_shader_binding_stride: DeviceSize, + hit_shader_binding_table_buffer: Buffer, + hit_shader_binding_offset: DeviceSize, + hit_shader_binding_stride: DeviceSize, + callable_shader_binding_table_buffer: Buffer, + callable_shader_binding_offset: DeviceSize, + callable_shader_binding_stride: DeviceSize, + width: u32, + height: u32, + depth: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateRayTracingPipelinesNV = unsafe extern "system" fn( + device: crate::vk::Device, + pipeline_cache: PipelineCache, + create_info_count: u32, + p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_pipelines: *mut Pipeline, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetAccelerationStructureHandleNV = unsafe extern "system" fn( + device: crate::vk::Device, + acceleration_structure: AccelerationStructureNV, + data_size: usize, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteAccelerationStructuresPropertiesNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + acceleration_structure_count: u32, + p_acceleration_structures: *const AccelerationStructureNV, + query_type: QueryType, + query_pool: QueryPool, + first_query: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCompileDeferredNV = + unsafe extern "system" fn(device: crate::vk::Device, pipeline: Pipeline, shader: u32) -> Result; +pub const NV_REPRESENTATIVE_FRAGMENT_TEST_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_representative_fragment_test\0") }; +pub const NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION: u32 = 2u32; +pub const KHR_MAINTENANCE3_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance3\0") }; +pub const KHR_MAINTENANCE3_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDescriptorSetLayoutSupport = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, + p_support: *mut DescriptorSetLayoutSupport<'_>, +); +pub const KHR_DRAW_INDIRECT_COUNT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_draw_indirect_count\0") }; +pub const KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION: u32 = 1u32; +pub const EXT_FILTER_CUBIC_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_filter_cubic\0") }; +pub const EXT_FILTER_CUBIC_SPEC_VERSION: u32 = 3u32; +pub const QCOM_RENDER_PASS_SHADER_RESOLVE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_shader_resolve\0") }; +pub const QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION: u32 = 4u32; +pub const EXT_GLOBAL_PRIORITY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority\0") }; +pub const EXT_GLOBAL_PRIORITY_SPEC_VERSION: u32 = 2u32; +pub const KHR_SHADER_SUBGROUP_EXTENDED_TYPES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_subgroup_extended_types\0") }; +pub const KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION: u32 = 1u32; +pub const KHR_8BIT_STORAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_8bit_storage\0") }; +pub const KHR_8BIT_STORAGE_SPEC_VERSION: u32 = 1u32; +pub const EXT_EXTERNAL_MEMORY_HOST_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_host\0") }; +pub const EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryHostPointerPropertiesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + handle_type: ExternalMemoryHandleTypeFlags, + p_host_pointer: *const c_void, + p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT<'_>, +) -> Result; +pub const AMD_BUFFER_MARKER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_buffer_marker\0") }; +pub const AMD_BUFFER_MARKER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn( + command_buffer: CommandBuffer, + pipeline_stage: PipelineStageFlags, + dst_buffer: Buffer, + dst_offset: DeviceSize, + marker: u32, +); +pub const KHR_SHADER_ATOMIC_INT64_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_atomic_int64\0") }; +pub const KHR_SHADER_ATOMIC_INT64_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_CLOCK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_clock\0") }; +pub const KHR_SHADER_CLOCK_SPEC_VERSION: u32 = 1u32; +pub const AMD_PIPELINE_COMPILER_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_pipeline_compiler_control\0") }; +pub const AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION: u32 = 1u32; +pub const EXT_CALIBRATED_TIMESTAMPS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_calibrated_timestamps\0") }; +pub const EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_time_domain_count: *mut u32, + p_time_domains: *mut TimeDomainKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetCalibratedTimestampsKHR = unsafe extern "system" fn( + device: crate::vk::Device, + timestamp_count: u32, + p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, + p_timestamps: *mut u64, + p_max_deviation: *mut u64, +) -> Result; +pub const AMD_SHADER_CORE_PROPERTIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties\0") }; +pub const AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION: u32 = 2u32; +pub const KHR_VIDEO_DECODE_H265_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_h265\0") }; +pub const KHR_VIDEO_DECODE_H265_SPEC_VERSION: u32 = 8u32; +pub const KHR_GLOBAL_PRIORITY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_global_priority\0") }; +pub const KHR_GLOBAL_PRIORITY_SPEC_VERSION: u32 = 1u32; +pub const AMD_MEMORY_OVERALLOCATION_BEHAVIOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_memory_overallocation_behavior\0") }; +pub const AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION: u32 = 1u32; +pub const EXT_VERTEX_ATTRIBUTE_DIVISOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_attribute_divisor\0") }; +pub const EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION: u32 = 3u32; +pub const GGP_FRAME_TOKEN_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GGP_frame_token\0") }; +pub const GGP_FRAME_TOKEN_SPEC_VERSION: u32 = 1u32; +pub const EXT_PIPELINE_CREATION_FEEDBACK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_creation_feedback\0") }; +pub const EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION: u32 = 1u32; +pub const KHR_DRIVER_PROPERTIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_driver_properties\0") }; +pub const KHR_DRIVER_PROPERTIES_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_FLOAT_CONTROLS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls\0") }; +pub const KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION: u32 = 4u32; +pub const NV_SHADER_SUBGROUP_PARTITIONED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_subgroup_partitioned\0") }; +pub const NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION: u32 = 1u32; +pub const KHR_DEPTH_STENCIL_RESOLVE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_depth_stencil_resolve\0") }; +pub const KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION: u32 = 1u32; +pub const KHR_SWAPCHAIN_MUTABLE_FORMAT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain_mutable_format\0") }; +pub const KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION: u32 = 1u32; +pub const NV_COMPUTE_SHADER_DERIVATIVES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_compute_shader_derivatives\0") }; +pub const NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION: u32 = 1u32; +pub const NV_MESH_SHADER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_mesh_shader\0") }; +pub const NV_MESH_SHADER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMeshTasksNV = + unsafe extern "system" fn(command_buffer: CommandBuffer, task_count: u32, first_task: u32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMeshTasksIndirectNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + draw_count: u32, + stride: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMeshTasksIndirectCountNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + count_buffer: Buffer, + count_buffer_offset: DeviceSize, + max_draw_count: u32, + stride: u32, +); +pub const NV_FRAGMENT_SHADER_BARYCENTRIC_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shader_barycentric\0") }; +pub const NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION: u32 = 1u32; +pub const NV_SHADER_IMAGE_FOOTPRINT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_image_footprint\0") }; +pub const NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION: u32 = 2u32; +pub const NV_SCISSOR_EXCLUSIVE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_scissor_exclusive\0") }; +pub const NV_SCISSOR_EXCLUSIVE_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetExclusiveScissorEnableNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_exclusive_scissor: u32, + exclusive_scissor_count: u32, + p_exclusive_scissor_enables: *const Bool32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetExclusiveScissorNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_exclusive_scissor: u32, + exclusive_scissor_count: u32, + p_exclusive_scissors: *const Rect2D, +); +pub const NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_diagnostic_checkpoints\0") }; +pub const NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCheckpointNV = + unsafe extern "system" fn(command_buffer: CommandBuffer, p_checkpoint_marker: *const c_void); +#[allow(non_camel_case_types)] +pub type PFN_vkGetQueueCheckpointDataNV = unsafe extern "system" fn( + queue: Queue, + p_checkpoint_data_count: *mut u32, + p_checkpoint_data: *mut CheckpointDataNV<'_>, +); +pub const KHR_TIMELINE_SEMAPHORE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_timeline_semaphore\0") }; +pub const KHR_TIMELINE_SEMAPHORE_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSemaphoreCounterValue = unsafe extern "system" fn( + device: crate::vk::Device, + semaphore: Semaphore, + p_value: *mut u64, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkWaitSemaphores = unsafe extern "system" fn( + device: crate::vk::Device, + p_wait_info: *const SemaphoreWaitInfo<'_>, + timeout: u64, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkSignalSemaphore = unsafe extern "system" fn( + device: crate::vk::Device, + p_signal_info: *const SemaphoreSignalInfo<'_>, +) -> Result; +pub const INTEL_SHADER_INTEGER_FUNCTIONS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_shader_integer_functions2\0") }; +pub const INTEL_SHADER_INTEGER_FUNCTIONS2_SPEC_VERSION: u32 = 1u32; +pub const INTEL_PERFORMANCE_QUERY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_performance_query\0") }; +pub const INTEL_PERFORMANCE_QUERY_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkInitializePerformanceApiINTEL = unsafe extern "system" fn( + device: crate::vk::Device, + p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkUninitializePerformanceApiINTEL = + unsafe extern "system" fn(device: crate::vk::Device); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPerformanceMarkerINTEL = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_marker_info: *const PerformanceMarkerInfoINTEL<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPerformanceStreamMarkerINTEL = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_marker_info: *const PerformanceStreamMarkerInfoINTEL<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPerformanceOverrideINTEL = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_override_info: *const PerformanceOverrideInfoINTEL<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquirePerformanceConfigurationINTEL = unsafe extern "system" fn( + device: crate::vk::Device, + p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL<'_>, + p_configuration: *mut PerformanceConfigurationINTEL, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkReleasePerformanceConfigurationINTEL = unsafe extern "system" fn( + device: crate::vk::Device, + configuration: PerformanceConfigurationINTEL, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkQueueSetPerformanceConfigurationINTEL = + unsafe extern "system" fn(queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPerformanceParameterINTEL = unsafe extern "system" fn( + device: crate::vk::Device, + parameter: PerformanceParameterTypeINTEL, + p_value: *mut PerformanceValueINTEL, +) -> Result; +pub const KHR_VULKAN_MEMORY_MODEL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_vulkan_memory_model\0") }; +pub const KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION: u32 = 3u32; +pub const EXT_PCI_BUS_INFO_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pci_bus_info\0") }; +pub const EXT_PCI_BUS_INFO_SPEC_VERSION: u32 = 2u32; +pub const AMD_DISPLAY_NATIVE_HDR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_display_native_hdr\0") }; +pub const AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkSetLocalDimmingAMD = unsafe extern "system" fn( + device: crate::vk::Device, + swap_chain: SwapchainKHR, + local_dimming_enable: Bool32, +); +pub const FUCHSIA_IMAGEPIPE_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_imagepipe_surface\0") }; +pub const FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const KHR_SHADER_TERMINATE_INVOCATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_terminate_invocation\0") }; +pub const KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION: u32 = 1u32; +pub const EXT_METAL_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_surface\0") }; +pub const EXT_METAL_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateMetalSurfaceEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const EXT_FRAGMENT_DENSITY_MAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map\0") }; +pub const EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION: u32 = 2u32; +pub const EXT_SCALAR_BLOCK_LAYOUT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_scalar_block_layout\0") }; +pub const EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION: u32 = 1u32; +pub const GOOGLE_HLSL_FUNCTIONALITY1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_hlsl_functionality1\0") }; +pub const GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION: u32 = 1u32; +pub const GOOGLE_DECORATE_STRING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_decorate_string\0") }; +pub const GOOGLE_DECORATE_STRING_SPEC_VERSION: u32 = 1u32; +pub const EXT_SUBGROUP_SIZE_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subgroup_size_control\0") }; +pub const EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION: u32 = 2u32; +pub const KHR_FRAGMENT_SHADING_RATE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shading_rate\0") }; +pub const KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_fragment_shading_rate_count: *mut u32, + p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetFragmentShadingRateKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_fragment_size: *const Extent2D, + combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], +); +pub const AMD_SHADER_CORE_PROPERTIES2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties2\0") }; +pub const AMD_SHADER_CORE_PROPERTIES2_SPEC_VERSION: u32 = 1u32; +pub const AMD_DEVICE_COHERENT_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_AMD_device_coherent_memory\0") }; +pub const AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION: u32 = 1u32; +pub const KHR_DYNAMIC_RENDERING_LOCAL_READ_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering_local_read\0") }; +pub const KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRenderingAttachmentLocationsKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_location_info: *const RenderingAttachmentLocationInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_location_info: *const RenderingInputAttachmentIndexInfoKHR<'_>, +); +pub const EXT_SHADER_IMAGE_ATOMIC_INT64_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0") }; +pub const EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_QUAD_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_quad_control\0") }; +pub const KHR_SHADER_QUAD_CONTROL_SPEC_VERSION: u32 = 1u32; +pub const KHR_SPIRV_1_4_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_spirv_1_4\0") }; +pub const KHR_SPIRV_1_4_SPEC_VERSION: u32 = 1u32; +pub const EXT_MEMORY_BUDGET_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_budget\0") }; +pub const EXT_MEMORY_BUDGET_SPEC_VERSION: u32 = 1u32; +pub const EXT_MEMORY_PRIORITY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_priority\0") }; +pub const EXT_MEMORY_PRIORITY_SPEC_VERSION: u32 = 1u32; +pub const KHR_SURFACE_PROTECTED_CAPABILITIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface_protected_capabilities\0") }; +pub const KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION: u32 = 1u32; +pub const NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_dedicated_allocation_image_aliasing\0") }; +pub const NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION: u32 = 1u32; +pub const KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_separate_depth_stencil_layouts\0") }; +pub const KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION: u32 = 1u32; +pub const EXT_BUFFER_DEVICE_ADDRESS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_buffer_device_address\0") }; +pub const EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetBufferDeviceAddress = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const BufferDeviceAddressInfo<'_>, +) -> DeviceAddress; +pub const EXT_TOOLING_INFO_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_tooling_info\0") }; +pub const EXT_TOOLING_INFO_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceToolProperties = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_tool_count: *mut u32, + p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, +) -> Result; +pub const EXT_SEPARATE_STENCIL_USAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_separate_stencil_usage\0") }; +pub const EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION: u32 = 1u32; +pub const EXT_VALIDATION_FEATURES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_features\0") }; +pub const EXT_VALIDATION_FEATURES_SPEC_VERSION: u32 = 6u32; +pub const KHR_PRESENT_WAIT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_wait\0") }; +pub const KHR_PRESENT_WAIT_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkWaitForPresentKHR = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + present_id: u64, + timeout: u64, +) -> Result; +pub const NV_COOPERATIVE_MATRIX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cooperative_matrix\0") }; +pub const NV_COOPERATIVE_MATRIX_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut CooperativeMatrixPropertiesNV<'_>, +) + -> Result; +pub const NV_COVERAGE_REDUCTION_MODE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_coverage_reduction_mode\0") }; +pub const NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_combination_count: *mut u32, + p_combinations: *mut FramebufferMixedSamplesCombinationNV<'_>, + ) -> Result; +pub const EXT_FRAGMENT_SHADER_INTERLOCK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_shader_interlock\0") }; +pub const EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION: u32 = 1u32; +pub const EXT_YCBCR_IMAGE_ARRAYS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_image_arrays\0") }; +pub const EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION: u32 = 1u32; +pub const KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_uniform_buffer_standard_layout\0") }; +pub const KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION: u32 = 1u32; +pub const EXT_PROVOKING_VERTEX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_provoking_vertex\0") }; +pub const EXT_PROVOKING_VERTEX_SPEC_VERSION: u32 = 1u32; +pub const EXT_FULL_SCREEN_EXCLUSIVE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_full_screen_exclusive\0") }; +pub const EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION: u32 = 4u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + p_present_mode_count: *mut u32, + p_present_modes: *mut PresentModeKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireFullScreenExclusiveModeEXT = + unsafe extern "system" fn(device: crate::vk::Device, swapchain: SwapchainKHR) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkReleaseFullScreenExclusiveModeEXT = + unsafe extern "system" fn(device: crate::vk::Device, swapchain: SwapchainKHR) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceGroupSurfacePresentModes2EXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, + p_modes: *mut DeviceGroupPresentModeFlagsKHR, +) -> Result; +pub const EXT_HEADLESS_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_headless_surface\0") }; +pub const EXT_HEADLESS_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateHeadlessSurfaceEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +pub const KHR_BUFFER_DEVICE_ADDRESS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_buffer_device_address\0") }; +pub const KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetBufferOpaqueCaptureAddress = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const BufferDeviceAddressInfo<'_>, +) -> u64; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, +) -> u64; +pub const EXT_LINE_RASTERIZATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_line_rasterization\0") }; +pub const EXT_LINE_RASTERIZATION_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetLineStippleKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + line_stipple_factor: u32, + line_stipple_pattern: u16, +); +pub const EXT_SHADER_ATOMIC_FLOAT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float\0") }; +pub const EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION: u32 = 1u32; +pub const EXT_HOST_QUERY_RESET_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_query_reset\0") }; +pub const EXT_HOST_QUERY_RESET_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkResetQueryPool = unsafe extern "system" fn( + device: crate::vk::Device, + query_pool: QueryPool, + first_query: u32, + query_count: u32, +); +pub const EXT_INDEX_TYPE_UINT8_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_index_type_uint8\0") }; +pub const EXT_INDEX_TYPE_UINT8_SPEC_VERSION: u32 = 1u32; +pub const EXT_EXTENDED_DYNAMIC_STATE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state\0") }; +pub const EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCullMode = + unsafe extern "system" fn(command_buffer: CommandBuffer, cull_mode: CullModeFlags); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetFrontFace = + unsafe extern "system" fn(command_buffer: CommandBuffer, front_face: FrontFace); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPrimitiveTopology = + unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_topology: PrimitiveTopology); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetViewportWithCount = unsafe extern "system" fn( + command_buffer: CommandBuffer, + viewport_count: u32, + p_viewports: *const Viewport, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetScissorWithCount = unsafe extern "system" fn( + command_buffer: CommandBuffer, + scissor_count: u32, + p_scissors: *const Rect2D, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindVertexBuffers2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_binding: u32, + binding_count: u32, + p_buffers: *const Buffer, + p_offsets: *const DeviceSize, + p_sizes: *const DeviceSize, + p_strides: *const DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthTestEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_test_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthWriteEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_write_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthCompareOp = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_compare_op: CompareOp); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthBoundsTestEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bounds_test_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetStencilTestEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, stencil_test_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetStencilOp = unsafe extern "system" fn( + command_buffer: CommandBuffer, + face_mask: StencilFaceFlags, + fail_op: StencilOp, + pass_op: StencilOp, + depth_fail_op: StencilOp, + compare_op: CompareOp, +); +pub const KHR_DEFERRED_HOST_OPERATIONS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_deferred_host_operations\0") }; +pub const KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION: u32 = 4u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDeferredOperationKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_allocator: *const AllocationCallbacks<'_>, + p_deferred_operation: *mut DeferredOperationKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyDeferredOperationKHR = unsafe extern "system" fn( + device: crate::vk::Device, + operation: DeferredOperationKHR, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR = + unsafe extern "system" fn(device: crate::vk::Device, operation: DeferredOperationKHR) -> u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeferredOperationResultKHR = + unsafe extern "system" fn(device: crate::vk::Device, operation: DeferredOperationKHR) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDeferredOperationJoinKHR = + unsafe extern "system" fn(device: crate::vk::Device, operation: DeferredOperationKHR) -> Result; +pub const KHR_PIPELINE_EXECUTABLE_PROPERTIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_executable_properties\0") }; +pub const KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineExecutablePropertiesKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_pipeline_info: *const PipelineInfoKHR<'_>, + p_executable_count: *mut u32, + p_properties: *mut PipelineExecutablePropertiesKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineExecutableStatisticsKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_executable_info: *const PipelineExecutableInfoKHR<'_>, + p_statistic_count: *mut u32, + p_statistics: *mut PipelineExecutableStatisticKHR<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR = + unsafe extern "system" fn( + device: crate::vk::Device, + p_executable_info: *const PipelineExecutableInfoKHR<'_>, + p_internal_representation_count: *mut u32, + p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR<'_>, + ) -> Result; +pub const EXT_HOST_IMAGE_COPY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_image_copy\0") }; +pub const EXT_HOST_IMAGE_COPY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyMemoryToImageEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyImageToMemoryEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyImageToImageEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkTransitionImageLayoutEXT = unsafe extern "system" fn( + device: crate::vk::Device, + transition_count: u32, + p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageSubresourceLayout2KHR = unsafe extern "system" fn( + device: crate::vk::Device, + image: Image, + p_subresource: *const ImageSubresource2KHR<'_>, + p_layout: *mut SubresourceLayout2KHR<'_>, +); +pub const KHR_MAP_MEMORY2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_map_memory2\0") }; +pub const KHR_MAP_MEMORY2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkMapMemory2KHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_memory_map_info: *const MemoryMapInfoKHR<'_>, + pp_data: *mut *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkUnmapMemory2KHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, +) -> Result; +pub const EXT_MAP_MEMORY_PLACED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_map_memory_placed\0") }; +pub const EXT_MAP_MEMORY_PLACED_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_ATOMIC_FLOAT2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float2\0") }; +pub const EXT_SHADER_ATOMIC_FLOAT2_SPEC_VERSION: u32 = 1u32; +pub const EXT_SURFACE_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_surface_maintenance1\0") }; +pub const EXT_SURFACE_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; +pub const EXT_SWAPCHAIN_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_maintenance1\0") }; +pub const EXT_SWAPCHAIN_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkReleaseSwapchainImagesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, +) -> Result; +pub const EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_demote_to_helper_invocation\0") }; +pub const EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION: u32 = 1u32; +pub const NV_DEVICE_GENERATED_COMMANDS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_generated_commands\0") }; +pub const NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPreprocessGeneratedCommandsNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdExecuteGeneratedCommandsNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + is_preprocessed: Bool32, + p_generated_commands_info: *const GeneratedCommandsInfoNV<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindPipelineShaderGroupNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + pipeline_bind_point: PipelineBindPoint, + pipeline: Pipeline, + group_index: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCreateIndirectCommandsLayoutNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyIndirectCommandsLayoutNV = unsafe extern "system" fn( + device: crate::vk::Device, + indirect_commands_layout: IndirectCommandsLayoutNV, + p_allocator: *const AllocationCallbacks<'_>, +); +pub const NV_INHERITED_VIEWPORT_SCISSOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_inherited_viewport_scissor\0") }; +pub const NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_INTEGER_DOT_PRODUCT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_integer_dot_product\0") }; +pub const KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION: u32 = 1u32; +pub const EXT_TEXEL_BUFFER_ALIGNMENT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_texel_buffer_alignment\0") }; +pub const EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION: u32 = 1u32; +pub const QCOM_RENDER_PASS_TRANSFORM_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_transform\0") }; +pub const QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION: u32 = 4u32; +pub const EXT_DEPTH_BIAS_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_bias_control\0") }; +pub const EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthBias2EXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_depth_bias_info: *const DepthBiasInfoEXT<'_>, +); +pub const EXT_DEVICE_MEMORY_REPORT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_memory_report\0") }; +pub const EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION: u32 = 2u32; +pub const EXT_ACQUIRE_DRM_DISPLAY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_drm_display\0") }; +pub const EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireDrmDisplayEXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + drm_fd: i32, + display: DisplayKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDrmDisplayEXT = unsafe extern "system" fn( + physical_device: PhysicalDevice, + drm_fd: i32, + connector_id: u32, + display: *mut DisplayKHR, +) -> Result; +pub const EXT_ROBUSTNESS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_robustness2\0") }; +pub const EXT_ROBUSTNESS2_SPEC_VERSION: u32 = 1u32; +pub const EXT_CUSTOM_BORDER_COLOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_custom_border_color\0") }; +pub const EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION: u32 = 12u32; +pub const GOOGLE_USER_TYPE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_user_type\0") }; +pub const GOOGLE_USER_TYPE_SPEC_VERSION: u32 = 1u32; +pub const KHR_PIPELINE_LIBRARY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_library\0") }; +pub const KHR_PIPELINE_LIBRARY_SPEC_VERSION: u32 = 1u32; +pub const NV_PRESENT_BARRIER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_present_barrier\0") }; +pub const NV_PRESENT_BARRIER_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_NON_SEMANTIC_INFO_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_non_semantic_info\0") }; +pub const KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION: u32 = 1u32; +pub const KHR_PRESENT_ID_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_id\0") }; +pub const KHR_PRESENT_ID_SPEC_VERSION: u32 = 1u32; +pub const EXT_PRIVATE_DATA_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_private_data\0") }; +pub const EXT_PRIVATE_DATA_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreatePrivateDataSlot = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const PrivateDataSlotCreateInfo<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_private_data_slot: *mut PrivateDataSlot, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyPrivateDataSlot = unsafe extern "system" fn( + device: crate::vk::Device, + private_data_slot: PrivateDataSlot, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkSetPrivateData = unsafe extern "system" fn( + device: crate::vk::Device, + object_type: ObjectType, + object_handle: u64, + private_data_slot: PrivateDataSlot, + data: u64, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPrivateData = unsafe extern "system" fn( + device: crate::vk::Device, + object_type: ObjectType, + object_handle: u64, + private_data_slot: PrivateDataSlot, + p_data: *mut u64, +); +pub const EXT_PIPELINE_CREATION_CACHE_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_creation_cache_control\0") }; +pub const EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION: u32 = 3u32; +pub const KHR_VIDEO_ENCODE_QUEUE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_queue\0") }; +pub const KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION: u32 = 12u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_quality_level_info: *const PhysicalDeviceVideoEncodeQualityLevelInfoKHR<'_>, + p_quality_level_properties: *mut VideoEncodeQualityLevelPropertiesKHR<'_>, + ) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetEncodedVideoSessionParametersKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_video_session_parameters_info: *const VideoEncodeSessionParametersGetInfoKHR<'_>, + p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR<'_>, + p_data_size: *mut usize, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdEncodeVideoKHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_encode_info: *const VideoEncodeInfoKHR<'_>, +); +pub const NV_DEVICE_DIAGNOSTICS_CONFIG_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_diagnostics_config\0") }; +pub const NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION: u32 = 2u32; +pub const QCOM_RENDER_PASS_STORE_OPS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_store_ops\0") }; +pub const QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION: u32 = 2u32; +pub const NV_CUDA_KERNEL_LAUNCH_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_cuda_kernel_launch\0") }; +pub const NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateCudaModuleNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const CudaModuleCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_module: *mut CudaModuleNV, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetCudaModuleCacheNV = unsafe extern "system" fn( + device: crate::vk::Device, + module: CudaModuleNV, + p_cache_size: *mut usize, + p_cache_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateCudaFunctionNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const CudaFunctionCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_function: *mut CudaFunctionNV, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyCudaModuleNV = unsafe extern "system" fn( + device: crate::vk::Device, + module: CudaModuleNV, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyCudaFunctionNV = unsafe extern "system" fn( + device: crate::vk::Device, + function: CudaFunctionNV, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCudaLaunchKernelNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_launch_info: *const CudaLaunchInfoNV<'_>, +); +pub const NV_LOW_LATENCY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_low_latency\0") }; +pub const NV_LOW_LATENCY_SPEC_VERSION: u32 = 1u32; +pub const EXT_METAL_OBJECTS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_objects\0") }; +pub const EXT_METAL_OBJECTS_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkExportMetalObjectsEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>, +); +pub const KHR_SYNCHRONIZATION2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_synchronization2\0") }; +pub const KHR_SYNCHRONIZATION2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetEvent2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + event: Event, + p_dependency_info: *const DependencyInfo<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdResetEvent2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + event: Event, + stage_mask: PipelineStageFlags2, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWaitEvents2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + event_count: u32, + p_events: *const Event, + p_dependency_infos: *const DependencyInfo<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPipelineBarrier2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_dependency_info: *const DependencyInfo<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteTimestamp2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + stage: PipelineStageFlags2, + query_pool: QueryPool, + query: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkQueueSubmit2 = unsafe extern "system" fn( + queue: Queue, + submit_count: u32, + p_submits: *const SubmitInfo2<'_>, + fence: Fence, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn( + command_buffer: CommandBuffer, + stage: PipelineStageFlags2, + dst_buffer: Buffer, + dst_offset: DeviceSize, + marker: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn( + queue: Queue, + p_checkpoint_data_count: *mut u32, + p_checkpoint_data: *mut CheckpointData2NV<'_>, +); +pub const EXT_DESCRIPTOR_BUFFER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_buffer\0") }; +pub const EXT_DESCRIPTOR_BUFFER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDescriptorSetLayoutSizeEXT = unsafe extern "system" fn( + device: crate::vk::Device, + layout: DescriptorSetLayout, + p_layout_size_in_bytes: *mut DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = unsafe extern "system" fn( + device: crate::vk::Device, + layout: DescriptorSetLayout, + binding: u32, + p_offset: *mut DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDescriptorEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_descriptor_info: *const DescriptorGetInfoEXT<'_>, + data_size: usize, + p_descriptor: *mut c_void, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindDescriptorBuffersEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer_count: u32, + p_binding_infos: *const DescriptorBufferBindingInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDescriptorBufferOffsetsEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + pipeline_bind_point: PipelineBindPoint, + layout: PipelineLayout, + first_set: u32, + set_count: u32, + p_buffer_indices: *const u32, + p_offsets: *const DeviceSize, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + pipeline_bind_point: PipelineBindPoint, + layout: PipelineLayout, + set: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const BufferCaptureDescriptorDataInfoEXT<'_>, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const ImageViewCaptureDescriptorDataInfoEXT<'_>, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const SamplerCaptureDescriptorDataInfoEXT<'_>, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = + unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT<'_>, + p_data: *mut c_void, + ) -> Result; +pub const EXT_GRAPHICS_PIPELINE_LIBRARY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_graphics_pipeline_library\0") }; +pub const EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION: u32 = 1u32; +pub const AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_early_and_late_fragment_tests\0") +}; +pub const AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION: u32 = 1u32; +pub const KHR_FRAGMENT_SHADER_BARYCENTRIC_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shader_barycentric\0") }; +pub const KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_subgroup_uniform_control_flow\0") +}; +pub const KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION: u32 = 1u32; +pub const KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_zero_initialize_workgroup_memory\0") }; +pub const KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION: u32 = 1u32; +pub const NV_FRAGMENT_SHADING_RATE_ENUMS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shading_rate_enums\0") }; +pub const NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetFragmentShadingRateEnumNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + shading_rate: FragmentShadingRateNV, + combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2usize], +); +pub const NV_RAY_TRACING_MOTION_BLUR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_motion_blur\0") }; +pub const NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION: u32 = 1u32; +pub const EXT_MESH_SHADER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mesh_shader\0") }; +pub const EXT_MESH_SHADER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMeshTasksEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + group_count_x: u32, + group_count_y: u32, + group_count_z: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMeshTasksIndirectEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + draw_count: u32, + stride: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMeshTasksIndirectCountEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + count_buffer: Buffer, + count_buffer_offset: DeviceSize, + max_draw_count: u32, + stride: u32, +); +pub const EXT_YCBCR_2PLANE_444_FORMATS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_2plane_444_formats\0") }; +pub const EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION: u32 = 1u32; +pub const EXT_FRAGMENT_DENSITY_MAP2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map2\0") }; +pub const EXT_FRAGMENT_DENSITY_MAP2_SPEC_VERSION: u32 = 1u32; +pub const QCOM_ROTATED_COPY_COMMANDS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_rotated_copy_commands\0") }; +pub const QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION: u32 = 2u32; +pub const EXT_IMAGE_ROBUSTNESS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_robustness\0") }; +pub const EXT_IMAGE_ROBUSTNESS_SPEC_VERSION: u32 = 1u32; +pub const KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_workgroup_memory_explicit_layout\0") }; +pub const KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION: u32 = 1u32; +pub const KHR_COPY_COMMANDS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_copy_commands2\0") }; +pub const KHR_COPY_COMMANDS2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyBuffer2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_buffer_info: *const CopyBufferInfo2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyImage2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_image_info: *const CopyImageInfo2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyBufferToImage2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyImageToBuffer2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBlitImage2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_blit_image_info: *const BlitImageInfo2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdResolveImage2 = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_resolve_image_info: *const ResolveImageInfo2<'_>, +); +pub const EXT_IMAGE_COMPRESSION_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_compression_control\0") }; +pub const EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION: u32 = 1u32; +pub const EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_attachment_feedback_loop_layout\0") }; +pub const EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION: u32 = 2u32; +pub const EXT_4444_FORMATS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_4444_formats\0") }; +pub const EXT_4444_FORMATS_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEVICE_FAULT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_fault\0") }; +pub const EXT_DEVICE_FAULT_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceFaultInfoEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_fault_counts: *mut DeviceFaultCountsEXT<'_>, + p_fault_info: *mut DeviceFaultInfoEXT<'_>, +) -> Result; +pub const ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_ARM_rasterization_order_attachment_access\0") +}; +pub const ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION: u32 = 1u32; +pub const EXT_RGBA10X6_FORMATS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_rgba10x6_formats\0") }; +pub const EXT_RGBA10X6_FORMATS_SPEC_VERSION: u32 = 1u32; +pub const NV_ACQUIRE_WINRT_DISPLAY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_acquire_winrt_display\0") }; +pub const NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkAcquireWinrtDisplayNV = + unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetWinrtDisplayNV = unsafe extern "system" fn( + physical_device: PhysicalDevice, + device_relative_id: u32, + p_display: *mut DisplayKHR, +) -> Result; +pub const EXT_DIRECTFB_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_directfb_surface\0") }; +pub const EXT_DIRECTFB_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateDirectFBSurfaceEXT = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + dfb: *mut IDirectFB, + ) -> Bool32; +pub const VALVE_MUTABLE_DESCRIPTOR_TYPE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_mutable_descriptor_type\0") }; +pub const VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION: u32 = 1u32; +pub const EXT_VERTEX_INPUT_DYNAMIC_STATE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_input_dynamic_state\0") }; +pub const EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetVertexInputEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + vertex_binding_description_count: u32, + p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT<'_>, + vertex_attribute_description_count: u32, + p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT<'_>, +); +pub const EXT_PHYSICAL_DEVICE_DRM_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_physical_device_drm\0") }; +pub const EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEVICE_ADDRESS_BINDING_REPORT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_address_binding_report\0") }; +pub const EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION: u32 = 1u32; +pub const EXT_DEPTH_CLIP_CONTROL_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_control\0") }; +pub const EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION: u32 = 1u32; +pub const EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_primitive_topology_list_restart\0") }; +pub const EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION: u32 = 1u32; +pub const KHR_FORMAT_FEATURE_FLAGS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_format_feature_flags2\0") }; +pub const KHR_FORMAT_FEATURE_FLAGS2_SPEC_VERSION: u32 = 2u32; +pub const FUCHSIA_EXTERNAL_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_memory\0") }; +pub const FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA<'_>, + p_zircon_handle: *mut zx_handle_t, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + handle_type: ExternalMemoryHandleTypeFlags, + zircon_handle: zx_handle_t, + p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA<'_>, +) -> Result; +pub const FUCHSIA_EXTERNAL_SEMAPHORE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_semaphore\0") }; +pub const FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA<'_>, + p_zircon_handle: *mut zx_handle_t, +) -> Result; +pub const FUCHSIA_BUFFER_COLLECTION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_buffer_collection\0") }; +pub const FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_collection: *mut BufferCollectionFUCHSIA, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + collection: BufferCollectionFUCHSIA, + p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + collection: BufferCollectionFUCHSIA, + p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyBufferCollectionFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + collection: BufferCollectionFUCHSIA, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn( + device: crate::vk::Device, + collection: BufferCollectionFUCHSIA, + p_properties: *mut BufferCollectionPropertiesFUCHSIA<'_>, +) -> Result; +pub const HUAWEI_SUBPASS_SHADING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_subpass_shading\0") }; +pub const HUAWEI_SUBPASS_SHADING_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = unsafe extern "system" fn( + device: crate::vk::Device, + renderpass: RenderPass, + p_max_workgroup_size: *mut Extent2D, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSubpassShadingHUAWEI = unsafe extern "system" fn(command_buffer: CommandBuffer); +pub const HUAWEI_INVOCATION_MASK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_invocation_mask\0") }; +pub const HUAWEI_INVOCATION_MASK_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindInvocationMaskHUAWEI = unsafe extern "system" fn( + command_buffer: CommandBuffer, + image_view: ImageView, + image_layout: ImageLayout, +); +pub const NV_EXTERNAL_MEMORY_RDMA_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_rdma\0") }; +pub const NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetMemoryRemoteAddressNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV<'_>, + p_address: *mut RemoteAddressNV, +) -> Result; +pub const EXT_PIPELINE_PROPERTIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_properties\0") }; +pub const EXT_PIPELINE_PROPERTIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelinePropertiesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_pipeline_info: *const PipelineInfoEXT<'_>, + p_pipeline_properties: *mut BaseOutStructure<'_>, +) -> Result; +pub const EXT_FRAME_BOUNDARY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_frame_boundary\0") }; +pub const EXT_FRAME_BOUNDARY_SPEC_VERSION: u32 = 1u32; +pub const EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_EXT_multisampled_render_to_single_sampled\0") +}; +pub const EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION: u32 = 1u32; +pub const EXT_EXTENDED_DYNAMIC_STATE2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state2\0") }; +pub const EXT_EXTENDED_DYNAMIC_STATE2_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPatchControlPointsEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, patch_control_points: u32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRasterizerDiscardEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, rasterizer_discard_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthBiasEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bias_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetLogicOpEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op: LogicOp); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPrimitiveRestartEnable = + unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_restart_enable: Bool32); +pub const QNX_SCREEN_SURFACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QNX_screen_surface\0") }; +pub const QNX_SCREEN_SURFACE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_create_info: *const ScreenSurfaceCreateInfoQNX<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_surface: *mut SurfaceKHR, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = unsafe extern "system" fn( + physical_device: PhysicalDevice, + queue_family_index: u32, + window: *mut _screen_window, +) -> Bool32; +pub const EXT_COLOR_WRITE_ENABLE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_color_write_enable\0") }; +pub const EXT_COLOR_WRITE_ENABLE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetColorWriteEnableEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + attachment_count: u32, + p_color_write_enables: *const Bool32, +); +pub const EXT_PRIMITIVES_GENERATED_QUERY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_primitives_generated_query\0") }; +pub const EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION: u32 = 1u32; +pub const KHR_RAY_TRACING_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_maintenance1\0") }; +pub const KHR_RAY_TRACING_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdTraceRaysIndirect2KHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + indirect_device_address: DeviceAddress, +); +pub const EXT_GLOBAL_PRIORITY_QUERY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority_query\0") }; +pub const EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION: u32 = 1u32; +pub const EXT_IMAGE_VIEW_MIN_LOD_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_view_min_lod\0") }; +pub const EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION: u32 = 1u32; +pub const EXT_MULTI_DRAW_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_multi_draw\0") }; +pub const EXT_MULTI_DRAW_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMultiEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + draw_count: u32, + p_vertex_info: *const MultiDrawInfoEXT, + instance_count: u32, + first_instance: u32, + stride: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawMultiIndexedEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + draw_count: u32, + p_index_info: *const MultiDrawIndexedInfoEXT, + instance_count: u32, + first_instance: u32, + stride: u32, + p_vertex_offset: *const i32, +); +pub const EXT_IMAGE_2D_VIEW_OF_3D_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_2d_view_of_3d\0") }; +pub const EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION: u32 = 1u32; +pub const KHR_PORTABILITY_ENUMERATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_enumeration\0") }; +pub const KHR_PORTABILITY_ENUMERATION_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_TILE_IMAGE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_tile_image\0") }; +pub const EXT_SHADER_TILE_IMAGE_SPEC_VERSION: u32 = 1u32; +pub const EXT_OPACITY_MICROMAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_opacity_micromap\0") }; +pub const EXT_OPACITY_MICROMAP_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateMicromapEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const MicromapCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_micromap: *mut MicromapEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyMicromapEXT = unsafe extern "system" fn( + device: crate::vk::Device, + micromap: MicromapEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBuildMicromapsEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + info_count: u32, + p_infos: *const MicromapBuildInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkBuildMicromapsEXT = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + info_count: u32, + p_infos: *const MicromapBuildInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyMicromapEXT = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + p_info: *const CopyMicromapInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyMicromapToMemoryEXT = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + p_info: *const CopyMicromapToMemoryInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCopyMemoryToMicromapEXT = unsafe extern "system" fn( + device: crate::vk::Device, + deferred_operation: DeferredOperationKHR, + p_info: *const CopyMemoryToMicromapInfoEXT<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkWriteMicromapsPropertiesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + micromap_count: u32, + p_micromaps: *const MicromapEXT, + query_type: QueryType, + data_size: usize, + p_data: *mut c_void, + stride: usize, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMicromapEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const CopyMicromapInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMicromapToMemoryEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const CopyMicromapToMemoryInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMemoryToMicromapEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_info: *const CopyMemoryToMicromapInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdWriteMicromapsPropertiesEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + micromap_count: u32, + p_micromaps: *const MicromapEXT, + query_type: QueryType, + query_pool: QueryPool, + first_query: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceMicromapCompatibilityEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_version_info: *const MicromapVersionInfoEXT<'_>, + p_compatibility: *mut AccelerationStructureCompatibilityKHR, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetMicromapBuildSizesEXT = unsafe extern "system" fn( + device: crate::vk::Device, + build_type: AccelerationStructureBuildTypeKHR, + p_build_info: *const MicromapBuildInfoEXT<'_>, + p_size_info: *mut MicromapBuildSizesInfoEXT<'_>, +); +pub const NV_DISPLACEMENT_MICROMAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_displacement_micromap\0") }; +pub const NV_DISPLACEMENT_MICROMAP_SPEC_VERSION: u32 = 2u32; +pub const EXT_LOAD_STORE_OP_NONE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_load_store_op_none\0") }; +pub const EXT_LOAD_STORE_OP_NONE_SPEC_VERSION: u32 = 1u32; +pub const HUAWEI_CLUSTER_CULLING_SHADER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_cluster_culling_shader\0") }; +pub const HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION: u32 = 3u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawClusterHUAWEI = unsafe extern "system" fn( + command_buffer: CommandBuffer, + group_count_x: u32, + group_count_y: u32, + group_count_z: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDrawClusterIndirectHUAWEI = + unsafe extern "system" fn(command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize); +pub const EXT_BORDER_COLOR_SWIZZLE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_border_color_swizzle\0") }; +pub const EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION: u32 = 1u32; +pub const EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pageable_device_local_memory\0") }; +pub const EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkSetDeviceMemoryPriorityEXT = + unsafe extern "system" fn(device: crate::vk::Device, memory: DeviceMemory, priority: f32); +pub const KHR_MAINTENANCE4_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance4\0") }; +pub const KHR_MAINTENANCE4_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceBufferMemoryRequirements = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DeviceBufferMemoryRequirements<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceImageMemoryRequirements = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DeviceImageMemoryRequirements<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceImageSparseMemoryRequirements = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DeviceImageMemoryRequirements<'_>, + p_sparse_memory_requirement_count: *mut u32, + p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, +); +pub const ARM_SHADER_CORE_PROPERTIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_shader_core_properties\0") }; +pub const ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_SUBGROUP_ROTATE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_subgroup_rotate\0") }; +pub const KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION: u32 = 2u32; +pub const ARM_SCHEDULING_CONTROLS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_scheduling_controls\0") }; +pub const ARM_SCHEDULING_CONTROLS_SPEC_VERSION: u32 = 1u32; +pub const EXT_IMAGE_SLICED_VIEW_OF_3D_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_sliced_view_of_3d\0") }; +pub const EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION: u32 = 1u32; +pub const VALVE_DESCRIPTOR_SET_HOST_MAPPING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_descriptor_set_host_mapping\0") }; +pub const VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = unsafe extern "system" fn( + device: crate::vk::Device, + p_binding_reference: *const DescriptorSetBindingReferenceVALVE<'_>, + p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDescriptorSetHostMappingVALVE = unsafe extern "system" fn( + device: crate::vk::Device, + descriptor_set: DescriptorSet, + pp_data: *mut *mut c_void, +); +pub const EXT_DEPTH_CLAMP_ZERO_ONE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clamp_zero_one\0") }; +pub const EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION: u32 = 1u32; +pub const EXT_NON_SEAMLESS_CUBE_MAP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_non_seamless_cube_map\0") }; +pub const EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION: u32 = 1u32; +pub const ARM_RENDER_PASS_STRIPED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_render_pass_striped\0") }; +pub const ARM_RENDER_PASS_STRIPED_SPEC_VERSION: u32 = 1u32; +pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_fragment_density_map_offset\0") }; +pub const QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION: u32 = 1u32; +pub const NV_COPY_MEMORY_INDIRECT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_copy_memory_indirect\0") }; +pub const NV_COPY_MEMORY_INDIRECT_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMemoryIndirectNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + copy_buffer_address: DeviceAddress, + copy_count: u32, + stride: u32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdCopyMemoryToImageIndirectNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + copy_buffer_address: DeviceAddress, + copy_count: u32, + stride: u32, + dst_image: Image, + dst_image_layout: ImageLayout, + p_image_subresources: *const ImageSubresourceLayers, +); +pub const NV_MEMORY_DECOMPRESSION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_memory_decompression\0") }; +pub const NV_MEMORY_DECOMPRESSION_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDecompressMemoryNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + decompress_region_count: u32, + p_decompress_memory_regions: *const DecompressMemoryRegionNV, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdDecompressMemoryIndirectCountNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + indirect_commands_address: DeviceAddress, + indirect_commands_count_address: DeviceAddress, + stride: u32, +); +pub const NV_DEVICE_GENERATED_COMMANDS_COMPUTE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_generated_commands_compute\0") }; +pub const NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineIndirectMemoryRequirementsNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const ComputePipelineCreateInfo<'_>, + p_memory_requirements: *mut MemoryRequirements2<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdUpdatePipelineIndirectBufferNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + pipeline_bind_point: PipelineBindPoint, + pipeline: Pipeline, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetPipelineIndirectDeviceAddressNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, +) -> DeviceAddress; +pub const NV_LINEAR_COLOR_ATTACHMENT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_linear_color_attachment\0") }; +pub const NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION: u32 = 1u32; +pub const GOOGLE_SURFACELESS_QUERY_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_surfaceless_query\0") }; +pub const GOOGLE_SURFACELESS_QUERY_SPEC_VERSION: u32 = 2u32; +pub const KHR_SHADER_MAXIMAL_RECONVERGENCE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_maximal_reconvergence\0") }; +pub const KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION: u32 = 1u32; +pub const EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_compression_control_swapchain\0") }; +pub const EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION: u32 = 1u32; +pub const QCOM_IMAGE_PROCESSING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_image_processing\0") }; +pub const QCOM_IMAGE_PROCESSING_SPEC_VERSION: u32 = 1u32; +pub const EXT_NESTED_COMMAND_BUFFER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_nested_command_buffer\0") }; +pub const EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION: u32 = 1u32; +pub const EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_acquire_unmodified\0") }; +pub const EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION: u32 = 1u32; +pub const EXT_EXTENDED_DYNAMIC_STATE3_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state3\0") }; +pub const EXT_EXTENDED_DYNAMIC_STATE3_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthClampEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clamp_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetPolygonModeEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, polygon_mode: PolygonMode); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRasterizationSamplesEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + rasterization_samples: SampleCountFlags, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetSampleMaskEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + samples: SampleCountFlags, + p_sample_mask: *const SampleMask, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetAlphaToCoverageEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, alpha_to_coverage_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetAlphaToOneEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, alpha_to_one_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetLogicOpEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetColorBlendEnableEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_attachment: u32, + attachment_count: u32, + p_color_blend_enables: *const Bool32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetColorBlendEquationEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_attachment: u32, + attachment_count: u32, + p_color_blend_equations: *const ColorBlendEquationEXT, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetColorWriteMaskEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_attachment: u32, + attachment_count: u32, + p_color_write_masks: *const ColorComponentFlags, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetTessellationDomainOriginEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + domain_origin: TessellationDomainOrigin, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRasterizationStreamEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, rasterization_stream: u32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetConservativeRasterizationModeEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + conservative_rasterization_mode: ConservativeRasterizationModeEXT, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + extra_primitive_overestimation_size: f32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthClipEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clip_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetSampleLocationsEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, sample_locations_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetColorBlendAdvancedEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_attachment: u32, + attachment_count: u32, + p_color_blend_advanced: *const ColorBlendAdvancedEXT, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetProvokingVertexModeEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + provoking_vertex_mode: ProvokingVertexModeEXT, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetLineRasterizationModeEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + line_rasterization_mode: LineRasterizationModeEXT, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetLineStippleEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, stippled_line_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDepthClipNegativeOneToOneEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, negative_one_to_one: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetViewportWScalingEnableNV = + unsafe extern "system" fn(command_buffer: CommandBuffer, viewport_w_scaling_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetViewportSwizzleNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + first_viewport: u32, + viewport_count: u32, + p_viewport_swizzles: *const ViewportSwizzleNV, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoverageToColorEnableNV = + unsafe extern "system" fn(command_buffer: CommandBuffer, coverage_to_color_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoverageToColorLocationNV = + unsafe extern "system" fn(command_buffer: CommandBuffer, coverage_to_color_location: u32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoverageModulationModeNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + coverage_modulation_mode: CoverageModulationModeNV, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoverageModulationTableEnableNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + coverage_modulation_table_enable: Bool32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoverageModulationTableNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + coverage_modulation_table_count: u32, + p_coverage_modulation_table: *const f32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetShadingRateImageEnableNV = + unsafe extern "system" fn(command_buffer: CommandBuffer, shading_rate_image_enable: Bool32); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetRepresentativeFragmentTestEnableNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + representative_fragment_test_enable: Bool32, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetCoverageReductionModeNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + coverage_reduction_mode: CoverageReductionModeNV, +); +pub const EXT_SUBPASS_MERGE_FEEDBACK_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subpass_merge_feedback\0") }; +pub const EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION: u32 = 2u32; +pub const LUNARG_DIRECT_DRIVER_LOADING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_LUNARG_direct_driver_loading\0") }; +pub const LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_MODULE_IDENTIFIER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_module_identifier\0") }; +pub const EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetShaderModuleIdentifierEXT = unsafe extern "system" fn( + device: crate::vk::Device, + shader_module: ShaderModule, + p_identifier: *mut ShaderModuleIdentifierEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetShaderModuleCreateInfoIdentifierEXT = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const ShaderModuleCreateInfo<'_>, + p_identifier: *mut ShaderModuleIdentifierEXT<'_>, +); +pub const EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_EXT_rasterization_order_attachment_access\0") +}; +pub const EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION: u32 = 1u32; +pub const NV_OPTICAL_FLOW_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_optical_flow\0") }; +pub const NV_OPTICAL_FLOW_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV<'_>, + p_format_count: *mut u32, + p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateOpticalFlowSessionNV = unsafe extern "system" fn( + device: crate::vk::Device, + p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_session: *mut OpticalFlowSessionNV, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyOpticalFlowSessionNV = unsafe extern "system" fn( + device: crate::vk::Device, + session: OpticalFlowSessionNV, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkBindOpticalFlowSessionImageNV = unsafe extern "system" fn( + device: crate::vk::Device, + session: OpticalFlowSessionNV, + binding_point: OpticalFlowSessionBindingPointNV, + view: ImageView, + layout: ImageLayout, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdOpticalFlowExecuteNV = unsafe extern "system" fn( + command_buffer: CommandBuffer, + session: OpticalFlowSessionNV, + p_execute_info: *const OpticalFlowExecuteInfoNV<'_>, +); +pub const EXT_LEGACY_DITHERING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_legacy_dithering\0") }; +pub const EXT_LEGACY_DITHERING_SPEC_VERSION: u32 = 1u32; +pub const EXT_PIPELINE_PROTECTED_ACCESS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_protected_access\0") }; +pub const EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION: u32 = 1u32; +pub const ANDROID_EXTERNAL_FORMAT_RESOLVE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_external_format_resolve\0") }; +pub const ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION: u32 = 1u32; +pub const KHR_MAINTENANCE5_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance5\0") }; +pub const KHR_MAINTENANCE5_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindIndexBuffer2KHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + buffer: Buffer, + offset: DeviceSize, + size: DeviceSize, + index_type: IndexType, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetRenderingAreaGranularityKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, + p_granularity: *mut Extent2D, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetDeviceImageSubresourceLayoutKHR = unsafe extern "system" fn( + device: crate::vk::Device, + p_info: *const DeviceImageSubresourceInfoKHR<'_>, + p_layout: *mut SubresourceLayout2KHR<'_>, +); +pub const KHR_RAY_TRACING_POSITION_FETCH_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_position_fetch\0") }; +pub const KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION: u32 = 1u32; +pub const EXT_SHADER_OBJECT_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_object\0") }; +pub const EXT_SHADER_OBJECT_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCreateShadersEXT = unsafe extern "system" fn( + device: crate::vk::Device, + create_info_count: u32, + p_create_infos: *const ShaderCreateInfoEXT<'_>, + p_allocator: *const AllocationCallbacks<'_>, + p_shaders: *mut ShaderEXT, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkDestroyShaderEXT = unsafe extern "system" fn( + device: crate::vk::Device, + shader: ShaderEXT, + p_allocator: *const AllocationCallbacks<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetShaderBinaryDataEXT = unsafe extern "system" fn( + device: crate::vk::Device, + shader: ShaderEXT, + p_data_size: *mut usize, + p_data: *mut c_void, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindShadersEXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + stage_count: u32, + p_stages: *const ShaderStageFlags, + p_shaders: *const ShaderEXT, +); +pub const QCOM_TILE_PROPERTIES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_tile_properties\0") }; +pub const QCOM_TILE_PROPERTIES_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetFramebufferTilePropertiesQCOM = unsafe extern "system" fn( + device: crate::vk::Device, + framebuffer: Framebuffer, + p_properties_count: *mut u32, + p_properties: *mut TilePropertiesQCOM<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkGetDynamicRenderingTilePropertiesQCOM = unsafe extern "system" fn( + device: crate::vk::Device, + p_rendering_info: *const RenderingInfo<'_>, + p_properties: *mut TilePropertiesQCOM<'_>, +) -> Result; +pub const SEC_AMIGO_PROFILING_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_SEC_amigo_profiling\0") }; +pub const SEC_AMIGO_PROFILING_SPEC_VERSION: u32 = 1u32; +pub const QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_viewports\0") }; +pub const QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION: u32 = 1u32; +pub const NV_RAY_TRACING_INVOCATION_REORDER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_invocation_reorder\0") }; +pub const NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION: u32 = 1u32; +pub const NV_EXTENDED_SPARSE_ADDRESS_SPACE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_extended_sparse_address_space\0") }; +pub const NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION: u32 = 1u32; +pub const EXT_MUTABLE_DESCRIPTOR_TYPE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_mutable_descriptor_type\0") }; +pub const EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION: u32 = 1u32; +pub const EXT_LAYER_SETTINGS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_layer_settings\0") }; +pub const EXT_LAYER_SETTINGS_SPEC_VERSION: u32 = 2u32; +pub const ARM_SHADER_CORE_BUILTINS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_ARM_shader_core_builtins\0") }; +pub const ARM_SHADER_CORE_BUILTINS_SPEC_VERSION: u32 = 2u32; +pub const EXT_PIPELINE_LIBRARY_GROUP_HANDLES_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_library_group_handles\0") }; +pub const EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION: u32 = 1u32; +pub const EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_EXT_dynamic_rendering_unused_attachments\0") +}; +pub const EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION: u32 = 1u32; +pub const NV_LOW_LATENCY2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_low_latency2\0") }; +pub const NV_LOW_LATENCY2_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkSetLatencySleepModeNV = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkLatencySleepNV = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_sleep_info: *const LatencySleepInfoNV<'_>, +) -> Result; +#[allow(non_camel_case_types)] +pub type PFN_vkSetLatencyMarkerNV = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkGetLatencyTimingsNV = unsafe extern "system" fn( + device: crate::vk::Device, + swapchain: SwapchainKHR, + p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkQueueNotifyOutOfBandNV = + unsafe extern "system" fn(queue: Queue, p_queue_type_info: *const OutOfBandQueueTypeInfoNV<'_>); +pub const KHR_COOPERATIVE_MATRIX_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_cooperative_matrix\0") }; +pub const KHR_COOPERATIVE_MATRIX_SPEC_VERSION: u32 = 2u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = + unsafe extern "system" fn( + physical_device: PhysicalDevice, + p_property_count: *mut u32, + p_properties: *mut CooperativeMatrixPropertiesKHR<'_>, + ) -> Result; +pub const QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_multiview_per_view_render_areas\0") }; +pub const QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_DECODE_AV1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_av1\0") }; +pub const KHR_VIDEO_DECODE_AV1_SPEC_VERSION: u32 = 1u32; +pub const KHR_VIDEO_MAINTENANCE1_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_maintenance1\0") }; +pub const KHR_VIDEO_MAINTENANCE1_SPEC_VERSION: u32 = 1u32; +pub const NV_PER_STAGE_DESCRIPTOR_SET_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_per_stage_descriptor_set\0") }; +pub const NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION: u32 = 1u32; +pub const QCOM_IMAGE_PROCESSING2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_image_processing2\0") }; +pub const QCOM_IMAGE_PROCESSING2_SPEC_VERSION: u32 = 1u32; +pub const QCOM_FILTER_CUBIC_WEIGHTS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_filter_cubic_weights\0") }; +pub const QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION: u32 = 1u32; +pub const QCOM_YCBCR_DEGAMMA_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_ycbcr_degamma\0") }; +pub const QCOM_YCBCR_DEGAMMA_SPEC_VERSION: u32 = 1u32; +pub const QCOM_FILTER_CUBIC_CLAMP_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_filter_cubic_clamp\0") }; +pub const QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION: u32 = 1u32; +pub const EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_NAME: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(b"VK_EXT_attachment_feedback_loop_dynamic_state\0") +}; +pub const EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT = + unsafe extern "system" fn(command_buffer: CommandBuffer, aspect_mask: ImageAspectFlags); +pub const KHR_VERTEX_ATTRIBUTE_DIVISOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_vertex_attribute_divisor\0") }; +pub const KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION: u32 = 1u32; +pub const KHR_LOAD_STORE_OP_NONE_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_load_store_op_none\0") }; +pub const KHR_LOAD_STORE_OP_NONE_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_FLOAT_CONTROLS2_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls2\0") }; +pub const KHR_SHADER_FLOAT_CONTROLS2_SPEC_VERSION: u32 = 1u32; +pub const QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_QNX_external_memory_screen_buffer\0") }; +pub const QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkGetScreenBufferPropertiesQNX = unsafe extern "system" fn( + device: crate::vk::Device, + buffer: *const _screen_buffer, + p_properties: *mut ScreenBufferPropertiesQNX<'_>, +) -> Result; +pub const MSFT_LAYERED_DRIVER_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_MSFT_layered_driver\0") }; +pub const MSFT_LAYERED_DRIVER_SPEC_VERSION: u32 = 1u32; +pub const KHR_INDEX_TYPE_UINT8_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_index_type_uint8\0") }; +pub const KHR_INDEX_TYPE_UINT8_SPEC_VERSION: u32 = 1u32; +pub const KHR_LINE_RASTERIZATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_line_rasterization\0") }; +pub const KHR_LINE_RASTERIZATION_SPEC_VERSION: u32 = 1u32; +pub const KHR_CALIBRATED_TIMESTAMPS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_calibrated_timestamps\0") }; +pub const KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION: u32 = 1u32; +pub const KHR_SHADER_EXPECT_ASSUME_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_expect_assume\0") }; +pub const KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION: u32 = 1u32; +pub const KHR_MAINTENANCE6_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance6\0") }; +pub const KHR_MAINTENANCE6_SPEC_VERSION: u32 = 1u32; +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindDescriptorSets2KHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_bind_descriptor_sets_info: *const BindDescriptorSetsInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPushConstants2KHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_push_constants_info: *const PushConstantsInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPushDescriptorSet2KHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_push_descriptor_set_info: *const PushDescriptorSetInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdPushDescriptorSetWithTemplate2KHR = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_push_descriptor_set_with_template_info: *const PushDescriptorSetWithTemplateInfoKHR<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdSetDescriptorBufferOffsets2EXT = unsafe extern "system" fn( + command_buffer: CommandBuffer, + p_set_descriptor_buffer_offsets_info: *const SetDescriptorBufferOffsetsInfoEXT<'_>, +); +#[allow(non_camel_case_types)] +pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = unsafe extern "system" fn (command_buffer : CommandBuffer , p_bind_descriptor_buffer_embedded_samplers_info : * const BindDescriptorBufferEmbeddedSamplersInfoEXT < '_ > ,) ; +pub const NV_DESCRIPTOR_POOL_OVERALLOCATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_descriptor_pool_overallocation\0") }; +pub const NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION: u32 = 1u32; +pub const NV_RAW_ACCESS_CHAINS_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_raw_access_chains\0") }; +pub const NV_RAW_ACCESS_CHAINS_SPEC_VERSION: u32 = 1u32; +pub const NV_SHADER_ATOMIC_FLOAT16_VECTOR_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_atomic_float16_vector\0") }; +pub const NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION: u32 = 1u32; +pub const NV_RAY_TRACING_VALIDATION_NAME: &CStr = + unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_validation\0") }; +pub const NV_RAY_TRACING_VALIDATION_SPEC_VERSION: u32 = 1u32; diff --git a/ash/src/vk/features.rs b/ash/src/vk/features.rs index 1c10f1be..cda77a97 100644 --- a/ash/src/vk/features.rs +++ b/ash/src/vk/features.rs @@ -7,40 +7,6 @@ pub type PFN_vkGetInstanceProcAddr = unsafe extern "system" fn( instance: crate::vk::Instance, p_name: *const c_char, ) -> PFN_vkVoidFunction; -#[derive(Clone)] -#[doc = "Raw Vulkan 1 static function pointers"] -pub struct StaticFn { - pub get_instance_proc_addr: PFN_vkGetInstanceProcAddr, -} -unsafe impl Send for StaticFn {} -unsafe impl Sync for StaticFn {} -impl StaticFn { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_instance_proc_addr: unsafe { - unsafe extern "system" fn get_instance_proc_addr( - _instance: crate::vk::Instance, - _p_name: *const c_char, - ) -> PFN_vkVoidFunction { - panic!(concat!( - "Unable to load ", - stringify!(get_instance_proc_addr) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetInstanceProcAddr\0"); - let val = _f(cname); - if val.is_null() { - get_instance_proc_addr - } else { - ::core::mem::transmute(val) - } - }, - } - } -} #[allow(non_camel_case_types)] pub type PFN_vkCreateInstance = unsafe extern "system" fn( p_create_info: *const InstanceCreateInfo<'_>, @@ -58,80 +24,6 @@ pub type PFN_vkEnumerateInstanceLayerProperties = unsafe extern "system" fn( p_property_count: *mut u32, p_properties: *mut LayerProperties, ) -> Result; -#[derive(Clone)] -#[doc = "Raw Vulkan 1 entry point function pointers"] -pub struct EntryFnV1_0 { - pub create_instance: PFN_vkCreateInstance, - pub enumerate_instance_extension_properties: PFN_vkEnumerateInstanceExtensionProperties, - pub enumerate_instance_layer_properties: PFN_vkEnumerateInstanceLayerProperties, -} -unsafe impl Send for EntryFnV1_0 {} -unsafe impl Sync for EntryFnV1_0 {} -impl EntryFnV1_0 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_instance: unsafe { - unsafe extern "system" fn create_instance( - _p_create_info: *const InstanceCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_instance: *mut crate::vk::Instance, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_instance))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateInstance\0"); - let val = _f(cname); - if val.is_null() { - create_instance - } else { - ::core::mem::transmute(val) - } - }, - enumerate_instance_extension_properties: unsafe { - unsafe extern "system" fn enumerate_instance_extension_properties( - _p_layer_name: *const c_char, - _p_property_count: *mut u32, - _p_properties: *mut ExtensionProperties, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_instance_extension_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkEnumerateInstanceExtensionProperties\0", - ); - let val = _f(cname); - if val.is_null() { - enumerate_instance_extension_properties - } else { - ::core::mem::transmute(val) - } - }, - enumerate_instance_layer_properties: unsafe { - unsafe extern "system" fn enumerate_instance_layer_properties( - _p_property_count: *mut u32, - _p_properties: *mut LayerProperties, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_instance_layer_properties) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkEnumerateInstanceLayerProperties\0"); - let val = _f(cname); - if val.is_null() { - enumerate_instance_layer_properties - } else { - ::core::mem::transmute(val) - } - }, - } - } -} #[allow(non_camel_case_types)] pub type PFN_vkDestroyInstance = unsafe extern "system" fn( instance: crate::vk::Instance, @@ -216,289 +108,6 @@ pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties = unsafe extern "sys p_property_count: *mut u32, p_properties: *mut SparseImageFormatProperties, ); -#[derive(Clone)] -#[doc = "Raw Vulkan 1 instance-level function pointers"] -pub struct InstanceFnV1_0 { - pub destroy_instance: PFN_vkDestroyInstance, - pub enumerate_physical_devices: PFN_vkEnumeratePhysicalDevices, - pub get_physical_device_features: PFN_vkGetPhysicalDeviceFeatures, - pub get_physical_device_format_properties: PFN_vkGetPhysicalDeviceFormatProperties, - pub get_physical_device_image_format_properties: PFN_vkGetPhysicalDeviceImageFormatProperties, - pub get_physical_device_properties: PFN_vkGetPhysicalDeviceProperties, - pub get_physical_device_queue_family_properties: PFN_vkGetPhysicalDeviceQueueFamilyProperties, - pub get_physical_device_memory_properties: PFN_vkGetPhysicalDeviceMemoryProperties, - pub get_device_proc_addr: PFN_vkGetDeviceProcAddr, - pub create_device: PFN_vkCreateDevice, - pub enumerate_device_extension_properties: PFN_vkEnumerateDeviceExtensionProperties, - pub enumerate_device_layer_properties: PFN_vkEnumerateDeviceLayerProperties, - pub get_physical_device_sparse_image_format_properties: - PFN_vkGetPhysicalDeviceSparseImageFormatProperties, -} -unsafe impl Send for InstanceFnV1_0 {} -unsafe impl Sync for InstanceFnV1_0 {} -impl InstanceFnV1_0 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - destroy_instance: unsafe { - unsafe extern "system" fn destroy_instance( - _instance: crate::vk::Instance, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_instance))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyInstance\0"); - let val = _f(cname); - if val.is_null() { - destroy_instance - } else { - ::core::mem::transmute(val) - } - }, - enumerate_physical_devices: unsafe { - unsafe extern "system" fn enumerate_physical_devices( - _instance: crate::vk::Instance, - _p_physical_device_count: *mut u32, - _p_physical_devices: *mut PhysicalDevice, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_physical_devices) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkEnumeratePhysicalDevices\0"); - let val = _f(cname); - if val.is_null() { - enumerate_physical_devices - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_features: unsafe { - unsafe extern "system" fn get_physical_device_features( - _physical_device: PhysicalDevice, - _p_features: *mut PhysicalDeviceFeatures, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_features) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFeatures\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_features - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_format_properties: unsafe { - unsafe extern "system" fn get_physical_device_format_properties( - _physical_device: PhysicalDevice, - _format: Format, - _p_format_properties: *mut FormatProperties, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_format_properties) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFormatProperties\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_format_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_image_format_properties: unsafe { - unsafe extern "system" fn get_physical_device_image_format_properties( - _physical_device: PhysicalDevice, - _format: Format, - _ty: ImageType, - _tiling: ImageTiling, - _usage: ImageUsageFlags, - _flags: ImageCreateFlags, - _p_image_format_properties: *mut ImageFormatProperties, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_image_format_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceImageFormatProperties\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_image_format_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_properties: unsafe { - unsafe extern "system" fn get_physical_device_properties( - _physical_device: PhysicalDevice, - _p_properties: *mut PhysicalDeviceProperties, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceProperties\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_queue_family_properties: unsafe { - unsafe extern "system" fn get_physical_device_queue_family_properties( - _physical_device: PhysicalDevice, - _p_queue_family_property_count: *mut u32, - _p_queue_family_properties: *mut QueueFamilyProperties, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_queue_family_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceQueueFamilyProperties\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_queue_family_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_memory_properties: unsafe { - unsafe extern "system" fn get_physical_device_memory_properties( - _physical_device: PhysicalDevice, - _p_memory_properties: *mut PhysicalDeviceMemoryProperties, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_memory_properties) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceMemoryProperties\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_memory_properties - } else { - ::core::mem::transmute(val) - } - }, - get_device_proc_addr: unsafe { - unsafe extern "system" fn get_device_proc_addr( - _device: crate::vk::Device, - _p_name: *const c_char, - ) -> PFN_vkVoidFunction { - panic!(concat!("Unable to load ", stringify!(get_device_proc_addr))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceProcAddr\0"); - let val = _f(cname); - if val.is_null() { - get_device_proc_addr - } else { - ::core::mem::transmute(val) - } - }, - create_device: unsafe { - unsafe extern "system" fn create_device( - _physical_device: PhysicalDevice, - _p_create_info: *const DeviceCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_device: *mut crate::vk::Device, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_device))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateDevice\0"); - let val = _f(cname); - if val.is_null() { - create_device - } else { - ::core::mem::transmute(val) - } - }, - enumerate_device_extension_properties: unsafe { - unsafe extern "system" fn enumerate_device_extension_properties( - _physical_device: PhysicalDevice, - _p_layer_name: *const c_char, - _p_property_count: *mut u32, - _p_properties: *mut ExtensionProperties, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_device_extension_properties) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkEnumerateDeviceExtensionProperties\0"); - let val = _f(cname); - if val.is_null() { - enumerate_device_extension_properties - } else { - ::core::mem::transmute(val) - } - }, - enumerate_device_layer_properties: unsafe { - unsafe extern "system" fn enumerate_device_layer_properties( - _physical_device: PhysicalDevice, - _p_property_count: *mut u32, - _p_properties: *mut LayerProperties, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_device_layer_properties) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkEnumerateDeviceLayerProperties\0"); - let val = _f(cname); - if val.is_null() { - enumerate_device_layer_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_sparse_image_format_properties: unsafe { - unsafe extern "system" fn get_physical_device_sparse_image_format_properties( - _physical_device: PhysicalDevice, - _format: Format, - _ty: ImageType, - _samples: SampleCountFlags, - _usage: ImageUsageFlags, - _tiling: ImageTiling, - _p_property_count: *mut u32, - _p_properties: *mut SparseImageFormatProperties, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_sparse_image_format_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSparseImageFormatProperties\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_sparse_image_format_properties - } else { - ::core::mem::transmute(val) - } - }, - } - } -} #[allow(non_camel_case_types)] pub type PFN_vkDestroyDevice = unsafe extern "system" fn( device: crate::vk::Device, @@ -1298,3928 +907,12 @@ pub type PFN_vkCmdExecuteCommands = unsafe extern "system" fn( command_buffer_count: u32, p_command_buffers: *const CommandBuffer, ); -#[derive(Clone)] -#[doc = "Raw Vulkan 1 device-level function pointers"] -pub struct DeviceFnV1_0 { - pub destroy_device: PFN_vkDestroyDevice, - pub get_device_queue: PFN_vkGetDeviceQueue, - pub queue_submit: PFN_vkQueueSubmit, - pub queue_wait_idle: PFN_vkQueueWaitIdle, - pub device_wait_idle: PFN_vkDeviceWaitIdle, - pub allocate_memory: PFN_vkAllocateMemory, - pub free_memory: PFN_vkFreeMemory, - pub map_memory: PFN_vkMapMemory, - pub unmap_memory: PFN_vkUnmapMemory, - pub flush_mapped_memory_ranges: PFN_vkFlushMappedMemoryRanges, - pub invalidate_mapped_memory_ranges: PFN_vkInvalidateMappedMemoryRanges, - pub get_device_memory_commitment: PFN_vkGetDeviceMemoryCommitment, - pub bind_buffer_memory: PFN_vkBindBufferMemory, - pub bind_image_memory: PFN_vkBindImageMemory, - pub get_buffer_memory_requirements: PFN_vkGetBufferMemoryRequirements, - pub get_image_memory_requirements: PFN_vkGetImageMemoryRequirements, - pub get_image_sparse_memory_requirements: PFN_vkGetImageSparseMemoryRequirements, - pub queue_bind_sparse: PFN_vkQueueBindSparse, - pub create_fence: PFN_vkCreateFence, - pub destroy_fence: PFN_vkDestroyFence, - pub reset_fences: PFN_vkResetFences, - pub get_fence_status: PFN_vkGetFenceStatus, - pub wait_for_fences: PFN_vkWaitForFences, - pub create_semaphore: PFN_vkCreateSemaphore, - pub destroy_semaphore: PFN_vkDestroySemaphore, - pub create_event: PFN_vkCreateEvent, - pub destroy_event: PFN_vkDestroyEvent, - pub get_event_status: PFN_vkGetEventStatus, - pub set_event: PFN_vkSetEvent, - pub reset_event: PFN_vkResetEvent, - pub create_query_pool: PFN_vkCreateQueryPool, - pub destroy_query_pool: PFN_vkDestroyQueryPool, - pub get_query_pool_results: PFN_vkGetQueryPoolResults, - pub create_buffer: PFN_vkCreateBuffer, - pub destroy_buffer: PFN_vkDestroyBuffer, - pub create_buffer_view: PFN_vkCreateBufferView, - pub destroy_buffer_view: PFN_vkDestroyBufferView, - pub create_image: PFN_vkCreateImage, - pub destroy_image: PFN_vkDestroyImage, - pub get_image_subresource_layout: PFN_vkGetImageSubresourceLayout, - pub create_image_view: PFN_vkCreateImageView, - pub destroy_image_view: PFN_vkDestroyImageView, - pub create_shader_module: PFN_vkCreateShaderModule, - pub destroy_shader_module: PFN_vkDestroyShaderModule, - pub create_pipeline_cache: PFN_vkCreatePipelineCache, - pub destroy_pipeline_cache: PFN_vkDestroyPipelineCache, - pub get_pipeline_cache_data: PFN_vkGetPipelineCacheData, - pub merge_pipeline_caches: PFN_vkMergePipelineCaches, - pub create_graphics_pipelines: PFN_vkCreateGraphicsPipelines, - pub create_compute_pipelines: PFN_vkCreateComputePipelines, - pub destroy_pipeline: PFN_vkDestroyPipeline, - pub create_pipeline_layout: PFN_vkCreatePipelineLayout, - pub destroy_pipeline_layout: PFN_vkDestroyPipelineLayout, - pub create_sampler: PFN_vkCreateSampler, - pub destroy_sampler: PFN_vkDestroySampler, - pub create_descriptor_set_layout: PFN_vkCreateDescriptorSetLayout, - pub destroy_descriptor_set_layout: PFN_vkDestroyDescriptorSetLayout, - pub create_descriptor_pool: PFN_vkCreateDescriptorPool, - pub destroy_descriptor_pool: PFN_vkDestroyDescriptorPool, - pub reset_descriptor_pool: PFN_vkResetDescriptorPool, - pub allocate_descriptor_sets: PFN_vkAllocateDescriptorSets, - pub free_descriptor_sets: PFN_vkFreeDescriptorSets, - pub update_descriptor_sets: PFN_vkUpdateDescriptorSets, - pub create_framebuffer: PFN_vkCreateFramebuffer, - pub destroy_framebuffer: PFN_vkDestroyFramebuffer, - pub create_render_pass: PFN_vkCreateRenderPass, - pub destroy_render_pass: PFN_vkDestroyRenderPass, - pub get_render_area_granularity: PFN_vkGetRenderAreaGranularity, - pub create_command_pool: PFN_vkCreateCommandPool, - pub destroy_command_pool: PFN_vkDestroyCommandPool, - pub reset_command_pool: PFN_vkResetCommandPool, - pub allocate_command_buffers: PFN_vkAllocateCommandBuffers, - pub free_command_buffers: PFN_vkFreeCommandBuffers, - pub begin_command_buffer: PFN_vkBeginCommandBuffer, - pub end_command_buffer: PFN_vkEndCommandBuffer, - pub reset_command_buffer: PFN_vkResetCommandBuffer, - pub cmd_bind_pipeline: PFN_vkCmdBindPipeline, - pub cmd_set_viewport: PFN_vkCmdSetViewport, - pub cmd_set_scissor: PFN_vkCmdSetScissor, - pub cmd_set_line_width: PFN_vkCmdSetLineWidth, - pub cmd_set_depth_bias: PFN_vkCmdSetDepthBias, - pub cmd_set_blend_constants: PFN_vkCmdSetBlendConstants, - pub cmd_set_depth_bounds: PFN_vkCmdSetDepthBounds, - pub cmd_set_stencil_compare_mask: PFN_vkCmdSetStencilCompareMask, - pub cmd_set_stencil_write_mask: PFN_vkCmdSetStencilWriteMask, - pub cmd_set_stencil_reference: PFN_vkCmdSetStencilReference, - pub cmd_bind_descriptor_sets: PFN_vkCmdBindDescriptorSets, - pub cmd_bind_index_buffer: PFN_vkCmdBindIndexBuffer, - pub cmd_bind_vertex_buffers: PFN_vkCmdBindVertexBuffers, - pub cmd_draw: PFN_vkCmdDraw, - pub cmd_draw_indexed: PFN_vkCmdDrawIndexed, - pub cmd_draw_indirect: PFN_vkCmdDrawIndirect, - pub cmd_draw_indexed_indirect: PFN_vkCmdDrawIndexedIndirect, - pub cmd_dispatch: PFN_vkCmdDispatch, - pub cmd_dispatch_indirect: PFN_vkCmdDispatchIndirect, - pub cmd_copy_buffer: PFN_vkCmdCopyBuffer, - pub cmd_copy_image: PFN_vkCmdCopyImage, - pub cmd_blit_image: PFN_vkCmdBlitImage, - pub cmd_copy_buffer_to_image: PFN_vkCmdCopyBufferToImage, - pub cmd_copy_image_to_buffer: PFN_vkCmdCopyImageToBuffer, - pub cmd_update_buffer: PFN_vkCmdUpdateBuffer, - pub cmd_fill_buffer: PFN_vkCmdFillBuffer, - pub cmd_clear_color_image: PFN_vkCmdClearColorImage, - pub cmd_clear_depth_stencil_image: PFN_vkCmdClearDepthStencilImage, - pub cmd_clear_attachments: PFN_vkCmdClearAttachments, - pub cmd_resolve_image: PFN_vkCmdResolveImage, - pub cmd_set_event: PFN_vkCmdSetEvent, - pub cmd_reset_event: PFN_vkCmdResetEvent, - pub cmd_wait_events: PFN_vkCmdWaitEvents, - pub cmd_pipeline_barrier: PFN_vkCmdPipelineBarrier, - pub cmd_begin_query: PFN_vkCmdBeginQuery, - pub cmd_end_query: PFN_vkCmdEndQuery, - pub cmd_reset_query_pool: PFN_vkCmdResetQueryPool, - pub cmd_write_timestamp: PFN_vkCmdWriteTimestamp, - pub cmd_copy_query_pool_results: PFN_vkCmdCopyQueryPoolResults, - pub cmd_push_constants: PFN_vkCmdPushConstants, - pub cmd_begin_render_pass: PFN_vkCmdBeginRenderPass, - pub cmd_next_subpass: PFN_vkCmdNextSubpass, - pub cmd_end_render_pass: PFN_vkCmdEndRenderPass, - pub cmd_execute_commands: PFN_vkCmdExecuteCommands, -} -unsafe impl Send for DeviceFnV1_0 {} -unsafe impl Sync for DeviceFnV1_0 {} -impl DeviceFnV1_0 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - destroy_device: unsafe { - unsafe extern "system" fn destroy_device( - _device: crate::vk::Device, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_device))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyDevice\0"); - let val = _f(cname); - if val.is_null() { - destroy_device - } else { - ::core::mem::transmute(val) - } - }, - get_device_queue: unsafe { - unsafe extern "system" fn get_device_queue( - _device: crate::vk::Device, - _queue_family_index: u32, - _queue_index: u32, - _p_queue: *mut Queue, - ) { - panic!(concat!("Unable to load ", stringify!(get_device_queue))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceQueue\0"); - let val = _f(cname); - if val.is_null() { - get_device_queue - } else { - ::core::mem::transmute(val) - } - }, - queue_submit: unsafe { - unsafe extern "system" fn queue_submit( - _queue: Queue, - _submit_count: u32, - _p_submits: *const SubmitInfo<'_>, - _fence: Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_submit))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit\0"); - let val = _f(cname); - if val.is_null() { - queue_submit - } else { - ::core::mem::transmute(val) - } - }, - queue_wait_idle: unsafe { - unsafe extern "system" fn queue_wait_idle(_queue: Queue) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_wait_idle))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueWaitIdle\0"); - let val = _f(cname); - if val.is_null() { - queue_wait_idle - } else { - ::core::mem::transmute(val) - } - }, - device_wait_idle: unsafe { - unsafe extern "system" fn device_wait_idle(_device: crate::vk::Device) -> Result { - panic!(concat!("Unable to load ", stringify!(device_wait_idle))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDeviceWaitIdle\0"); - let val = _f(cname); - if val.is_null() { - device_wait_idle - } else { - ::core::mem::transmute(val) - } - }, - allocate_memory: unsafe { - unsafe extern "system" fn allocate_memory( - _device: crate::vk::Device, - _p_allocate_info: *const MemoryAllocateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_memory: *mut DeviceMemory, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(allocate_memory))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkAllocateMemory\0"); - let val = _f(cname); - if val.is_null() { - allocate_memory - } else { - ::core::mem::transmute(val) - } - }, - free_memory: unsafe { - unsafe extern "system" fn free_memory( - _device: crate::vk::Device, - _memory: DeviceMemory, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(free_memory))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkFreeMemory\0"); - let val = _f(cname); - if val.is_null() { - free_memory - } else { - ::core::mem::transmute(val) - } - }, - map_memory: unsafe { - unsafe extern "system" fn map_memory( - _device: crate::vk::Device, - _memory: DeviceMemory, - _offset: DeviceSize, - _size: DeviceSize, - _flags: MemoryMapFlags, - _pp_data: *mut *mut c_void, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(map_memory))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkMapMemory\0"); - let val = _f(cname); - if val.is_null() { - map_memory - } else { - ::core::mem::transmute(val) - } - }, - unmap_memory: unsafe { - unsafe extern "system" fn unmap_memory( - _device: crate::vk::Device, - _memory: DeviceMemory, - ) { - panic!(concat!("Unable to load ", stringify!(unmap_memory))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory\0"); - let val = _f(cname); - if val.is_null() { - unmap_memory - } else { - ::core::mem::transmute(val) - } - }, - flush_mapped_memory_ranges: unsafe { - unsafe extern "system" fn flush_mapped_memory_ranges( - _device: crate::vk::Device, - _memory_range_count: u32, - _p_memory_ranges: *const MappedMemoryRange<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(flush_mapped_memory_ranges) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkFlushMappedMemoryRanges\0"); - let val = _f(cname); - if val.is_null() { - flush_mapped_memory_ranges - } else { - ::core::mem::transmute(val) - } - }, - invalidate_mapped_memory_ranges: unsafe { - unsafe extern "system" fn invalidate_mapped_memory_ranges( - _device: crate::vk::Device, - _memory_range_count: u32, - _p_memory_ranges: *const MappedMemoryRange<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(invalidate_mapped_memory_ranges) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkInvalidateMappedMemoryRanges\0"); - let val = _f(cname); - if val.is_null() { - invalidate_mapped_memory_ranges - } else { - ::core::mem::transmute(val) - } - }, - get_device_memory_commitment: unsafe { - unsafe extern "system" fn get_device_memory_commitment( - _device: crate::vk::Device, - _memory: DeviceMemory, - _p_committed_memory_in_bytes: *mut DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_memory_commitment) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceMemoryCommitment\0"); - let val = _f(cname); - if val.is_null() { - get_device_memory_commitment - } else { - ::core::mem::transmute(val) - } - }, - bind_buffer_memory: unsafe { - unsafe extern "system" fn bind_buffer_memory( - _device: crate::vk::Device, - _buffer: Buffer, - _memory: DeviceMemory, - _memory_offset: DeviceSize, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(bind_buffer_memory))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory\0"); - let val = _f(cname); - if val.is_null() { - bind_buffer_memory - } else { - ::core::mem::transmute(val) - } - }, - bind_image_memory: unsafe { - unsafe extern "system" fn bind_image_memory( - _device: crate::vk::Device, - _image: Image, - _memory: DeviceMemory, - _memory_offset: DeviceSize, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(bind_image_memory))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory\0"); - let val = _f(cname); - if val.is_null() { - bind_image_memory - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_memory_requirements: unsafe { - unsafe extern "system" fn get_buffer_memory_requirements( - _device: crate::vk::Device, - _buffer: Buffer, - _p_memory_requirements: *mut MemoryRequirements, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_memory_requirements) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetBufferMemoryRequirements\0"); - let val = _f(cname); - if val.is_null() { - get_buffer_memory_requirements - } else { - ::core::mem::transmute(val) - } - }, - get_image_memory_requirements: unsafe { - unsafe extern "system" fn get_image_memory_requirements( - _device: crate::vk::Device, - _image: Image, - _p_memory_requirements: *mut MemoryRequirements, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_memory_requirements) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageMemoryRequirements\0"); - let val = _f(cname); - if val.is_null() { - get_image_memory_requirements - } else { - ::core::mem::transmute(val) - } - }, - get_image_sparse_memory_requirements: unsafe { - unsafe extern "system" fn get_image_sparse_memory_requirements( - _device: crate::vk::Device, - _image: Image, - _p_sparse_memory_requirement_count: *mut u32, - _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_sparse_memory_requirements) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetImageSparseMemoryRequirements\0"); - let val = _f(cname); - if val.is_null() { - get_image_sparse_memory_requirements - } else { - ::core::mem::transmute(val) - } - }, - queue_bind_sparse: unsafe { - unsafe extern "system" fn queue_bind_sparse( - _queue: Queue, - _bind_info_count: u32, - _p_bind_info: *const BindSparseInfo<'_>, - _fence: Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_bind_sparse))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueBindSparse\0"); - let val = _f(cname); - if val.is_null() { - queue_bind_sparse - } else { - ::core::mem::transmute(val) - } - }, - create_fence: unsafe { - unsafe extern "system" fn create_fence( - _device: crate::vk::Device, - _p_create_info: *const FenceCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_fence: *mut Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_fence))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateFence\0"); - let val = _f(cname); - if val.is_null() { - create_fence - } else { - ::core::mem::transmute(val) - } - }, - destroy_fence: unsafe { - unsafe extern "system" fn destroy_fence( - _device: crate::vk::Device, - _fence: Fence, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_fence))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyFence\0"); - let val = _f(cname); - if val.is_null() { - destroy_fence - } else { - ::core::mem::transmute(val) - } - }, - reset_fences: unsafe { - unsafe extern "system" fn reset_fences( - _device: crate::vk::Device, - _fence_count: u32, - _p_fences: *const Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(reset_fences))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetFences\0"); - let val = _f(cname); - if val.is_null() { - reset_fences - } else { - ::core::mem::transmute(val) - } - }, - get_fence_status: unsafe { - unsafe extern "system" fn get_fence_status( - _device: crate::vk::Device, - _fence: Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_fence_status))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetFenceStatus\0"); - let val = _f(cname); - if val.is_null() { - get_fence_status - } else { - ::core::mem::transmute(val) - } - }, - wait_for_fences: unsafe { - unsafe extern "system" fn wait_for_fences( - _device: crate::vk::Device, - _fence_count: u32, - _p_fences: *const Fence, - _wait_all: Bool32, - _timeout: u64, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(wait_for_fences))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitForFences\0"); - let val = _f(cname); - if val.is_null() { - wait_for_fences - } else { - ::core::mem::transmute(val) - } - }, - create_semaphore: unsafe { - unsafe extern "system" fn create_semaphore( - _device: crate::vk::Device, - _p_create_info: *const SemaphoreCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_semaphore: *mut Semaphore, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_semaphore))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSemaphore\0"); - let val = _f(cname); - if val.is_null() { - create_semaphore - } else { - ::core::mem::transmute(val) - } - }, - destroy_semaphore: unsafe { - unsafe extern "system" fn destroy_semaphore( - _device: crate::vk::Device, - _semaphore: Semaphore, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_semaphore))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySemaphore\0"); - let val = _f(cname); - if val.is_null() { - destroy_semaphore - } else { - ::core::mem::transmute(val) - } - }, - create_event: unsafe { - unsafe extern "system" fn create_event( - _device: crate::vk::Device, - _p_create_info: *const EventCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_event: *mut Event, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_event))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateEvent\0"); - let val = _f(cname); - if val.is_null() { - create_event - } else { - ::core::mem::transmute(val) - } - }, - destroy_event: unsafe { - unsafe extern "system" fn destroy_event( - _device: crate::vk::Device, - _event: Event, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_event))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyEvent\0"); - let val = _f(cname); - if val.is_null() { - destroy_event - } else { - ::core::mem::transmute(val) - } - }, - get_event_status: unsafe { - unsafe extern "system" fn get_event_status( - _device: crate::vk::Device, - _event: Event, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(get_event_status))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetEventStatus\0"); - let val = _f(cname); - if val.is_null() { - get_event_status - } else { - ::core::mem::transmute(val) - } - }, - set_event: unsafe { - unsafe extern "system" fn set_event( - _device: crate::vk::Device, - _event: Event, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(set_event))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetEvent\0"); - let val = _f(cname); - if val.is_null() { - set_event - } else { - ::core::mem::transmute(val) - } - }, - reset_event: unsafe { - unsafe extern "system" fn reset_event( - _device: crate::vk::Device, - _event: Event, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(reset_event))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetEvent\0"); - let val = _f(cname); - if val.is_null() { - reset_event - } else { - ::core::mem::transmute(val) - } - }, - create_query_pool: unsafe { - unsafe extern "system" fn create_query_pool( - _device: crate::vk::Device, - _p_create_info: *const QueryPoolCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_query_pool: *mut QueryPool, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_query_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateQueryPool\0"); - let val = _f(cname); - if val.is_null() { - create_query_pool - } else { - ::core::mem::transmute(val) - } - }, - destroy_query_pool: unsafe { - unsafe extern "system" fn destroy_query_pool( - _device: crate::vk::Device, - _query_pool: QueryPool, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_query_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyQueryPool\0"); - let val = _f(cname); - if val.is_null() { - destroy_query_pool - } else { - ::core::mem::transmute(val) - } - }, - get_query_pool_results: unsafe { - unsafe extern "system" fn get_query_pool_results( - _device: crate::vk::Device, - _query_pool: QueryPool, - _first_query: u32, - _query_count: u32, - _data_size: usize, - _p_data: *mut c_void, - _stride: DeviceSize, - _flags: QueryResultFlags, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_query_pool_results) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetQueryPoolResults\0"); - let val = _f(cname); - if val.is_null() { - get_query_pool_results - } else { - ::core::mem::transmute(val) - } - }, - create_buffer: unsafe { - unsafe extern "system" fn create_buffer( - _device: crate::vk::Device, - _p_create_info: *const BufferCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_buffer: *mut Buffer, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateBuffer\0"); - let val = _f(cname); - if val.is_null() { - create_buffer - } else { - ::core::mem::transmute(val) - } - }, - destroy_buffer: unsafe { - unsafe extern "system" fn destroy_buffer( - _device: crate::vk::Device, - _buffer: Buffer, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyBuffer\0"); - let val = _f(cname); - if val.is_null() { - destroy_buffer - } else { - ::core::mem::transmute(val) - } - }, - create_buffer_view: unsafe { - unsafe extern "system" fn create_buffer_view( - _device: crate::vk::Device, - _p_create_info: *const BufferViewCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_view: *mut BufferView, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_buffer_view))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateBufferView\0"); - let val = _f(cname); - if val.is_null() { - create_buffer_view - } else { - ::core::mem::transmute(val) - } - }, - destroy_buffer_view: unsafe { - unsafe extern "system" fn destroy_buffer_view( - _device: crate::vk::Device, - _buffer_view: BufferView, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_buffer_view))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyBufferView\0"); - let val = _f(cname); - if val.is_null() { - destroy_buffer_view - } else { - ::core::mem::transmute(val) - } - }, - create_image: unsafe { - unsafe extern "system" fn create_image( - _device: crate::vk::Device, - _p_create_info: *const ImageCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_image: *mut Image, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_image))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateImage\0"); - let val = _f(cname); - if val.is_null() { - create_image - } else { - ::core::mem::transmute(val) - } - }, - destroy_image: unsafe { - unsafe extern "system" fn destroy_image( - _device: crate::vk::Device, - _image: Image, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_image))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyImage\0"); - let val = _f(cname); - if val.is_null() { - destroy_image - } else { - ::core::mem::transmute(val) - } - }, - get_image_subresource_layout: unsafe { - unsafe extern "system" fn get_image_subresource_layout( - _device: crate::vk::Device, - _image: Image, - _p_subresource: *const ImageSubresource, - _p_layout: *mut SubresourceLayout, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_subresource_layout) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageSubresourceLayout\0"); - let val = _f(cname); - if val.is_null() { - get_image_subresource_layout - } else { - ::core::mem::transmute(val) - } - }, - create_image_view: unsafe { - unsafe extern "system" fn create_image_view( - _device: crate::vk::Device, - _p_create_info: *const ImageViewCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_view: *mut ImageView, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_image_view))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateImageView\0"); - let val = _f(cname); - if val.is_null() { - create_image_view - } else { - ::core::mem::transmute(val) - } - }, - destroy_image_view: unsafe { - unsafe extern "system" fn destroy_image_view( - _device: crate::vk::Device, - _image_view: ImageView, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_image_view))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyImageView\0"); - let val = _f(cname); - if val.is_null() { - destroy_image_view - } else { - ::core::mem::transmute(val) - } - }, - create_shader_module: unsafe { - unsafe extern "system" fn create_shader_module( - _device: crate::vk::Device, - _p_create_info: *const ShaderModuleCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_shader_module: *mut ShaderModule, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_shader_module))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateShaderModule\0"); - let val = _f(cname); - if val.is_null() { - create_shader_module - } else { - ::core::mem::transmute(val) - } - }, - destroy_shader_module: unsafe { - unsafe extern "system" fn destroy_shader_module( - _device: crate::vk::Device, - _shader_module: ShaderModule, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_shader_module) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyShaderModule\0"); - let val = _f(cname); - if val.is_null() { - destroy_shader_module - } else { - ::core::mem::transmute(val) - } - }, - create_pipeline_cache: unsafe { - unsafe extern "system" fn create_pipeline_cache( - _device: crate::vk::Device, - _p_create_info: *const PipelineCacheCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipeline_cache: *mut PipelineCache, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_pipeline_cache) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreatePipelineCache\0"); - let val = _f(cname); - if val.is_null() { - create_pipeline_cache - } else { - ::core::mem::transmute(val) - } - }, - destroy_pipeline_cache: unsafe { - unsafe extern "system" fn destroy_pipeline_cache( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_pipeline_cache) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipelineCache\0"); - let val = _f(cname); - if val.is_null() { - destroy_pipeline_cache - } else { - ::core::mem::transmute(val) - } - }, - get_pipeline_cache_data: unsafe { - unsafe extern "system" fn get_pipeline_cache_data( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _p_data_size: *mut usize, - _p_data: *mut c_void, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_pipeline_cache_data) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPipelineCacheData\0"); - let val = _f(cname); - if val.is_null() { - get_pipeline_cache_data - } else { - ::core::mem::transmute(val) - } - }, - merge_pipeline_caches: unsafe { - unsafe extern "system" fn merge_pipeline_caches( - _device: crate::vk::Device, - _dst_cache: PipelineCache, - _src_cache_count: u32, - _p_src_caches: *const PipelineCache, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(merge_pipeline_caches) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkMergePipelineCaches\0"); - let val = _f(cname); - if val.is_null() { - merge_pipeline_caches - } else { - ::core::mem::transmute(val) - } - }, - create_graphics_pipelines: unsafe { - unsafe extern "system" fn create_graphics_pipelines( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _create_info_count: u32, - _p_create_infos: *const GraphicsPipelineCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipelines: *mut Pipeline, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_graphics_pipelines) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateGraphicsPipelines\0"); - let val = _f(cname); - if val.is_null() { - create_graphics_pipelines - } else { - ::core::mem::transmute(val) - } - }, - create_compute_pipelines: unsafe { - unsafe extern "system" fn create_compute_pipelines( - _device: crate::vk::Device, - _pipeline_cache: PipelineCache, - _create_info_count: u32, - _p_create_infos: *const ComputePipelineCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipelines: *mut Pipeline, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_compute_pipelines) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateComputePipelines\0"); - let val = _f(cname); - if val.is_null() { - create_compute_pipelines - } else { - ::core::mem::transmute(val) - } - }, - destroy_pipeline: unsafe { - unsafe extern "system" fn destroy_pipeline( - _device: crate::vk::Device, - _pipeline: Pipeline, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_pipeline))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipeline\0"); - let val = _f(cname); - if val.is_null() { - destroy_pipeline - } else { - ::core::mem::transmute(val) - } - }, - create_pipeline_layout: unsafe { - unsafe extern "system" fn create_pipeline_layout( - _device: crate::vk::Device, - _p_create_info: *const PipelineLayoutCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_pipeline_layout: *mut PipelineLayout, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_pipeline_layout) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreatePipelineLayout\0"); - let val = _f(cname); - if val.is_null() { - create_pipeline_layout - } else { - ::core::mem::transmute(val) - } - }, - destroy_pipeline_layout: unsafe { - unsafe extern "system" fn destroy_pipeline_layout( - _device: crate::vk::Device, - _pipeline_layout: PipelineLayout, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_pipeline_layout) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipelineLayout\0"); - let val = _f(cname); - if val.is_null() { - destroy_pipeline_layout - } else { - ::core::mem::transmute(val) - } - }, - create_sampler: unsafe { - unsafe extern "system" fn create_sampler( - _device: crate::vk::Device, - _p_create_info: *const SamplerCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_sampler: *mut Sampler, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_sampler))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateSampler\0"); - let val = _f(cname); - if val.is_null() { - create_sampler - } else { - ::core::mem::transmute(val) - } - }, - destroy_sampler: unsafe { - unsafe extern "system" fn destroy_sampler( - _device: crate::vk::Device, - _sampler: Sampler, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_sampler))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroySampler\0"); - let val = _f(cname); - if val.is_null() { - destroy_sampler - } else { - ::core::mem::transmute(val) - } - }, - create_descriptor_set_layout: unsafe { - unsafe extern "system" fn create_descriptor_set_layout( - _device: crate::vk::Device, - _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_set_layout: *mut DescriptorSetLayout, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_descriptor_set_layout) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateDescriptorSetLayout\0"); - let val = _f(cname); - if val.is_null() { - create_descriptor_set_layout - } else { - ::core::mem::transmute(val) - } - }, - destroy_descriptor_set_layout: unsafe { - unsafe extern "system" fn destroy_descriptor_set_layout( - _device: crate::vk::Device, - _descriptor_set_layout: DescriptorSetLayout, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_descriptor_set_layout) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyDescriptorSetLayout\0"); - let val = _f(cname); - if val.is_null() { - destroy_descriptor_set_layout - } else { - ::core::mem::transmute(val) - } - }, - create_descriptor_pool: unsafe { - unsafe extern "system" fn create_descriptor_pool( - _device: crate::vk::Device, - _p_create_info: *const DescriptorPoolCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_descriptor_pool: *mut DescriptorPool, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_descriptor_pool) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateDescriptorPool\0"); - let val = _f(cname); - if val.is_null() { - create_descriptor_pool - } else { - ::core::mem::transmute(val) - } - }, - destroy_descriptor_pool: unsafe { - unsafe extern "system" fn destroy_descriptor_pool( - _device: crate::vk::Device, - _descriptor_pool: DescriptorPool, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_descriptor_pool) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyDescriptorPool\0"); - let val = _f(cname); - if val.is_null() { - destroy_descriptor_pool - } else { - ::core::mem::transmute(val) - } - }, - reset_descriptor_pool: unsafe { - unsafe extern "system" fn reset_descriptor_pool( - _device: crate::vk::Device, - _descriptor_pool: DescriptorPool, - _flags: DescriptorPoolResetFlags, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(reset_descriptor_pool) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetDescriptorPool\0"); - let val = _f(cname); - if val.is_null() { - reset_descriptor_pool - } else { - ::core::mem::transmute(val) - } - }, - allocate_descriptor_sets: unsafe { - unsafe extern "system" fn allocate_descriptor_sets( - _device: crate::vk::Device, - _p_allocate_info: *const DescriptorSetAllocateInfo<'_>, - _p_descriptor_sets: *mut DescriptorSet, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(allocate_descriptor_sets) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkAllocateDescriptorSets\0"); - let val = _f(cname); - if val.is_null() { - allocate_descriptor_sets - } else { - ::core::mem::transmute(val) - } - }, - free_descriptor_sets: unsafe { - unsafe extern "system" fn free_descriptor_sets( - _device: crate::vk::Device, - _descriptor_pool: DescriptorPool, - _descriptor_set_count: u32, - _p_descriptor_sets: *const DescriptorSet, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(free_descriptor_sets))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkFreeDescriptorSets\0"); - let val = _f(cname); - if val.is_null() { - free_descriptor_sets - } else { - ::core::mem::transmute(val) - } - }, - update_descriptor_sets: unsafe { - unsafe extern "system" fn update_descriptor_sets( - _device: crate::vk::Device, - _descriptor_write_count: u32, - _p_descriptor_writes: *const WriteDescriptorSet<'_>, - _descriptor_copy_count: u32, - _p_descriptor_copies: *const CopyDescriptorSet<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(update_descriptor_sets) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkUpdateDescriptorSets\0"); - let val = _f(cname); - if val.is_null() { - update_descriptor_sets - } else { - ::core::mem::transmute(val) - } - }, - create_framebuffer: unsafe { - unsafe extern "system" fn create_framebuffer( - _device: crate::vk::Device, - _p_create_info: *const FramebufferCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_framebuffer: *mut Framebuffer, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_framebuffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateFramebuffer\0"); - let val = _f(cname); - if val.is_null() { - create_framebuffer - } else { - ::core::mem::transmute(val) - } - }, - destroy_framebuffer: unsafe { - unsafe extern "system" fn destroy_framebuffer( - _device: crate::vk::Device, - _framebuffer: Framebuffer, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_framebuffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyFramebuffer\0"); - let val = _f(cname); - if val.is_null() { - destroy_framebuffer - } else { - ::core::mem::transmute(val) - } - }, - create_render_pass: unsafe { - unsafe extern "system" fn create_render_pass( - _device: crate::vk::Device, - _p_create_info: *const RenderPassCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_render_pass: *mut RenderPass, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_render_pass))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass\0"); - let val = _f(cname); - if val.is_null() { - create_render_pass - } else { - ::core::mem::transmute(val) - } - }, - destroy_render_pass: unsafe { - unsafe extern "system" fn destroy_render_pass( - _device: crate::vk::Device, - _render_pass: RenderPass, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_render_pass))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyRenderPass\0"); - let val = _f(cname); - if val.is_null() { - destroy_render_pass - } else { - ::core::mem::transmute(val) - } - }, - get_render_area_granularity: unsafe { - unsafe extern "system" fn get_render_area_granularity( - _device: crate::vk::Device, - _render_pass: RenderPass, - _p_granularity: *mut Extent2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_render_area_granularity) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetRenderAreaGranularity\0"); - let val = _f(cname); - if val.is_null() { - get_render_area_granularity - } else { - ::core::mem::transmute(val) - } - }, - create_command_pool: unsafe { - unsafe extern "system" fn create_command_pool( - _device: crate::vk::Device, - _p_create_info: *const CommandPoolCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_command_pool: *mut CommandPool, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_command_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateCommandPool\0"); - let val = _f(cname); - if val.is_null() { - create_command_pool - } else { - ::core::mem::transmute(val) - } - }, - destroy_command_pool: unsafe { - unsafe extern "system" fn destroy_command_pool( - _device: crate::vk::Device, - _command_pool: CommandPool, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(destroy_command_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyCommandPool\0"); - let val = _f(cname); - if val.is_null() { - destroy_command_pool - } else { - ::core::mem::transmute(val) - } - }, - reset_command_pool: unsafe { - unsafe extern "system" fn reset_command_pool( - _device: crate::vk::Device, - _command_pool: CommandPool, - _flags: CommandPoolResetFlags, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(reset_command_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetCommandPool\0"); - let val = _f(cname); - if val.is_null() { - reset_command_pool - } else { - ::core::mem::transmute(val) - } - }, - allocate_command_buffers: unsafe { - unsafe extern "system" fn allocate_command_buffers( - _device: crate::vk::Device, - _p_allocate_info: *const CommandBufferAllocateInfo<'_>, - _p_command_buffers: *mut CommandBuffer, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(allocate_command_buffers) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkAllocateCommandBuffers\0"); - let val = _f(cname); - if val.is_null() { - allocate_command_buffers - } else { - ::core::mem::transmute(val) - } - }, - free_command_buffers: unsafe { - unsafe extern "system" fn free_command_buffers( - _device: crate::vk::Device, - _command_pool: CommandPool, - _command_buffer_count: u32, - _p_command_buffers: *const CommandBuffer, - ) { - panic!(concat!("Unable to load ", stringify!(free_command_buffers))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkFreeCommandBuffers\0"); - let val = _f(cname); - if val.is_null() { - free_command_buffers - } else { - ::core::mem::transmute(val) - } - }, - begin_command_buffer: unsafe { - unsafe extern "system" fn begin_command_buffer( - _command_buffer: CommandBuffer, - _p_begin_info: *const CommandBufferBeginInfo<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(begin_command_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBeginCommandBuffer\0"); - let val = _f(cname); - if val.is_null() { - begin_command_buffer - } else { - ::core::mem::transmute(val) - } - }, - end_command_buffer: unsafe { - unsafe extern "system" fn end_command_buffer( - _command_buffer: CommandBuffer, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(end_command_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkEndCommandBuffer\0"); - let val = _f(cname); - if val.is_null() { - end_command_buffer - } else { - ::core::mem::transmute(val) - } - }, - reset_command_buffer: unsafe { - unsafe extern "system" fn reset_command_buffer( - _command_buffer: CommandBuffer, - _flags: CommandBufferResetFlags, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(reset_command_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetCommandBuffer\0"); - let val = _f(cname); - if val.is_null() { - reset_command_buffer - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_pipeline: unsafe { - unsafe extern "system" fn cmd_bind_pipeline( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _pipeline: Pipeline, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_bind_pipeline))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindPipeline\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_pipeline - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport: unsafe { - unsafe extern "system" fn cmd_set_viewport( - _command_buffer: CommandBuffer, - _first_viewport: u32, - _viewport_count: u32, - _p_viewports: *const Viewport, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_viewport))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewport\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_scissor: unsafe { - unsafe extern "system" fn cmd_set_scissor( - _command_buffer: CommandBuffer, - _first_scissor: u32, - _scissor_count: u32, - _p_scissors: *const Rect2D, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_scissor))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissor\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_scissor - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_line_width: unsafe { - unsafe extern "system" fn cmd_set_line_width( - _command_buffer: CommandBuffer, - _line_width: f32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_line_width))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineWidth\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_line_width - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bias: unsafe { - unsafe extern "system" fn cmd_set_depth_bias( - _command_buffer: CommandBuffer, - _depth_bias_constant_factor: f32, - _depth_bias_clamp: f32, - _depth_bias_slope_factor: f32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_depth_bias))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBias\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bias - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_blend_constants: unsafe { - unsafe extern "system" fn cmd_set_blend_constants( - _command_buffer: CommandBuffer, - _blend_constants: *const [f32; 4usize], - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_blend_constants) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetBlendConstants\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_blend_constants - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bounds: unsafe { - unsafe extern "system" fn cmd_set_depth_bounds( - _command_buffer: CommandBuffer, - _min_depth_bounds: f32, - _max_depth_bounds: f32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_depth_bounds))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBounds\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bounds - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_compare_mask: unsafe { - unsafe extern "system" fn cmd_set_stencil_compare_mask( - _command_buffer: CommandBuffer, - _face_mask: StencilFaceFlags, - _compare_mask: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_compare_mask) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilCompareMask\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_compare_mask - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_write_mask: unsafe { - unsafe extern "system" fn cmd_set_stencil_write_mask( - _command_buffer: CommandBuffer, - _face_mask: StencilFaceFlags, - _write_mask: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_write_mask) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilWriteMask\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_write_mask - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_reference: unsafe { - unsafe extern "system" fn cmd_set_stencil_reference( - _command_buffer: CommandBuffer, - _face_mask: StencilFaceFlags, - _reference: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_reference) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilReference\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_reference - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_descriptor_sets: unsafe { - unsafe extern "system" fn cmd_bind_descriptor_sets( - _command_buffer: CommandBuffer, - _pipeline_bind_point: PipelineBindPoint, - _layout: PipelineLayout, - _first_set: u32, - _descriptor_set_count: u32, - _p_descriptor_sets: *const DescriptorSet, - _dynamic_offset_count: u32, - _p_dynamic_offsets: *const u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_descriptor_sets) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindDescriptorSets\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_descriptor_sets - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_index_buffer: unsafe { - unsafe extern "system" fn cmd_bind_index_buffer( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _index_type: IndexType, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_index_buffer) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindIndexBuffer\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_index_buffer - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_vertex_buffers: unsafe { - unsafe extern "system" fn cmd_bind_vertex_buffers( - _command_buffer: CommandBuffer, - _first_binding: u32, - _binding_count: u32, - _p_buffers: *const Buffer, - _p_offsets: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_vertex_buffers) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_vertex_buffers - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw: unsafe { - unsafe extern "system" fn cmd_draw( - _command_buffer: CommandBuffer, - _vertex_count: u32, - _instance_count: u32, - _first_vertex: u32, - _first_instance: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_draw))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDraw\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indexed: unsafe { - unsafe extern "system" fn cmd_draw_indexed( - _command_buffer: CommandBuffer, - _index_count: u32, - _instance_count: u32, - _first_index: u32, - _vertex_offset: i32, - _first_instance: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_draw_indexed))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexed\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indexed - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indirect: unsafe { - unsafe extern "system" fn cmd_draw_indirect( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _draw_count: u32, - _stride: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_draw_indirect))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirect\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indirect - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indexed_indirect: unsafe { - unsafe extern "system" fn cmd_draw_indexed_indirect( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indexed_indirect) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexedIndirect\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indexed_indirect - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch: unsafe { - unsafe extern "system" fn cmd_dispatch( - _command_buffer: CommandBuffer, - _group_count_x: u32, - _group_count_y: u32, - _group_count_z: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_dispatch))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatch\0"); - let val = _f(cname); - if val.is_null() { - cmd_dispatch - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch_indirect: unsafe { - unsafe extern "system" fn cmd_dispatch_indirect( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_dispatch_indirect) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchIndirect\0"); - let val = _f(cname); - if val.is_null() { - cmd_dispatch_indirect - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_buffer: unsafe { - unsafe extern "system" fn cmd_copy_buffer( - _command_buffer: CommandBuffer, - _src_buffer: Buffer, - _dst_buffer: Buffer, - _region_count: u32, - _p_regions: *const BufferCopy, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_buffer - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_image: unsafe { - unsafe extern "system" fn cmd_copy_image( - _command_buffer: CommandBuffer, - _src_image: Image, - _src_image_layout: ImageLayout, - _dst_image: Image, - _dst_image_layout: ImageLayout, - _region_count: u32, - _p_regions: *const ImageCopy, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_copy_image))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_image - } else { - ::core::mem::transmute(val) - } - }, - cmd_blit_image: unsafe { - unsafe extern "system" fn cmd_blit_image( - _command_buffer: CommandBuffer, - _src_image: Image, - _src_image_layout: ImageLayout, - _dst_image: Image, - _dst_image_layout: ImageLayout, - _region_count: u32, - _p_regions: *const ImageBlit, - _filter: Filter, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_blit_image))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage\0"); - let val = _f(cname); - if val.is_null() { - cmd_blit_image - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_buffer_to_image: unsafe { - unsafe extern "system" fn cmd_copy_buffer_to_image( - _command_buffer: CommandBuffer, - _src_buffer: Buffer, - _dst_image: Image, - _dst_image_layout: ImageLayout, - _region_count: u32, - _p_regions: *const BufferImageCopy, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_buffer_to_image) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBufferToImage\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_buffer_to_image - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_image_to_buffer: unsafe { - unsafe extern "system" fn cmd_copy_image_to_buffer( - _command_buffer: CommandBuffer, - _src_image: Image, - _src_image_layout: ImageLayout, - _dst_buffer: Buffer, - _region_count: u32, - _p_regions: *const BufferImageCopy, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_image_to_buffer) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImageToBuffer\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_image_to_buffer - } else { - ::core::mem::transmute(val) - } - }, - cmd_update_buffer: unsafe { - unsafe extern "system" fn cmd_update_buffer( - _command_buffer: CommandBuffer, - _dst_buffer: Buffer, - _dst_offset: DeviceSize, - _data_size: DeviceSize, - _p_data: *const c_void, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_update_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdUpdateBuffer\0"); - let val = _f(cname); - if val.is_null() { - cmd_update_buffer - } else { - ::core::mem::transmute(val) - } - }, - cmd_fill_buffer: unsafe { - unsafe extern "system" fn cmd_fill_buffer( - _command_buffer: CommandBuffer, - _dst_buffer: Buffer, - _dst_offset: DeviceSize, - _size: DeviceSize, - _data: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_fill_buffer))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdFillBuffer\0"); - let val = _f(cname); - if val.is_null() { - cmd_fill_buffer - } else { - ::core::mem::transmute(val) - } - }, - cmd_clear_color_image: unsafe { - unsafe extern "system" fn cmd_clear_color_image( - _command_buffer: CommandBuffer, - _image: Image, - _image_layout: ImageLayout, - _p_color: *const ClearColorValue, - _range_count: u32, - _p_ranges: *const ImageSubresourceRange, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_clear_color_image) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdClearColorImage\0"); - let val = _f(cname); - if val.is_null() { - cmd_clear_color_image - } else { - ::core::mem::transmute(val) - } - }, - cmd_clear_depth_stencil_image: unsafe { - unsafe extern "system" fn cmd_clear_depth_stencil_image( - _command_buffer: CommandBuffer, - _image: Image, - _image_layout: ImageLayout, - _p_depth_stencil: *const ClearDepthStencilValue, - _range_count: u32, - _p_ranges: *const ImageSubresourceRange, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_clear_depth_stencil_image) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdClearDepthStencilImage\0"); - let val = _f(cname); - if val.is_null() { - cmd_clear_depth_stencil_image - } else { - ::core::mem::transmute(val) - } - }, - cmd_clear_attachments: unsafe { - unsafe extern "system" fn cmd_clear_attachments( - _command_buffer: CommandBuffer, - _attachment_count: u32, - _p_attachments: *const ClearAttachment, - _rect_count: u32, - _p_rects: *const ClearRect, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_clear_attachments) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdClearAttachments\0"); - let val = _f(cname); - if val.is_null() { - cmd_clear_attachments - } else { - ::core::mem::transmute(val) - } - }, - cmd_resolve_image: unsafe { - unsafe extern "system" fn cmd_resolve_image( - _command_buffer: CommandBuffer, - _src_image: Image, - _src_image_layout: ImageLayout, - _dst_image: Image, - _dst_image_layout: ImageLayout, - _region_count: u32, - _p_regions: *const ImageResolve, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_resolve_image))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage\0"); - let val = _f(cname); - if val.is_null() { - cmd_resolve_image - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_event: unsafe { - unsafe extern "system" fn cmd_set_event( - _command_buffer: CommandBuffer, - _event: Event, - _stage_mask: PipelineStageFlags, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_event))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_event - } else { - ::core::mem::transmute(val) - } - }, - cmd_reset_event: unsafe { - unsafe extern "system" fn cmd_reset_event( - _command_buffer: CommandBuffer, - _event: Event, - _stage_mask: PipelineStageFlags, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_reset_event))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent\0"); - let val = _f(cname); - if val.is_null() { - cmd_reset_event - } else { - ::core::mem::transmute(val) - } - }, - cmd_wait_events: unsafe { - unsafe extern "system" fn cmd_wait_events( - _command_buffer: CommandBuffer, - _event_count: u32, - _p_events: *const Event, - _src_stage_mask: PipelineStageFlags, - _dst_stage_mask: PipelineStageFlags, - _memory_barrier_count: u32, - _p_memory_barriers: *const MemoryBarrier<'_>, - _buffer_memory_barrier_count: u32, - _p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>, - _image_memory_barrier_count: u32, - _p_image_memory_barriers: *const ImageMemoryBarrier<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_wait_events))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents\0"); - let val = _f(cname); - if val.is_null() { - cmd_wait_events - } else { - ::core::mem::transmute(val) - } - }, - cmd_pipeline_barrier: unsafe { - unsafe extern "system" fn cmd_pipeline_barrier( - _command_buffer: CommandBuffer, - _src_stage_mask: PipelineStageFlags, - _dst_stage_mask: PipelineStageFlags, - _dependency_flags: DependencyFlags, - _memory_barrier_count: u32, - _p_memory_barriers: *const MemoryBarrier<'_>, - _buffer_memory_barrier_count: u32, - _p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>, - _image_memory_barrier_count: u32, - _p_image_memory_barriers: *const ImageMemoryBarrier<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_pipeline_barrier))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier\0"); - let val = _f(cname); - if val.is_null() { - cmd_pipeline_barrier - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_query: unsafe { - unsafe extern "system" fn cmd_begin_query( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _query: u32, - _flags: QueryControlFlags, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_begin_query))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQuery\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_query - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_query: unsafe { - unsafe extern "system" fn cmd_end_query( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _query: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_end_query))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQuery\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_query - } else { - ::core::mem::transmute(val) - } - }, - cmd_reset_query_pool: unsafe { - unsafe extern "system" fn cmd_reset_query_pool( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _first_query: u32, - _query_count: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_reset_query_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetQueryPool\0"); - let val = _f(cname); - if val.is_null() { - cmd_reset_query_pool - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_timestamp: unsafe { - unsafe extern "system" fn cmd_write_timestamp( - _command_buffer: CommandBuffer, - _pipeline_stage: PipelineStageFlags, - _query_pool: QueryPool, - _query: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_write_timestamp))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp\0"); - let val = _f(cname); - if val.is_null() { - cmd_write_timestamp - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_query_pool_results: unsafe { - unsafe extern "system" fn cmd_copy_query_pool_results( - _command_buffer: CommandBuffer, - _query_pool: QueryPool, - _first_query: u32, - _query_count: u32, - _dst_buffer: Buffer, - _dst_offset: DeviceSize, - _stride: DeviceSize, - _flags: QueryResultFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_query_pool_results) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyQueryPoolResults\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_query_pool_results - } else { - ::core::mem::transmute(val) - } - }, - cmd_push_constants: unsafe { - unsafe extern "system" fn cmd_push_constants( - _command_buffer: CommandBuffer, - _layout: PipelineLayout, - _stage_flags: ShaderStageFlags, - _offset: u32, - _size: u32, - _p_values: *const c_void, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_push_constants))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPushConstants\0"); - let val = _f(cname); - if val.is_null() { - cmd_push_constants - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_render_pass: unsafe { - unsafe extern "system" fn cmd_begin_render_pass( - _command_buffer: CommandBuffer, - _p_render_pass_begin: *const RenderPassBeginInfo<'_>, - _contents: SubpassContents, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_render_pass) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_render_pass - } else { - ::core::mem::transmute(val) - } - }, - cmd_next_subpass: unsafe { - unsafe extern "system" fn cmd_next_subpass( - _command_buffer: CommandBuffer, - _contents: SubpassContents, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_next_subpass))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass\0"); - let val = _f(cname); - if val.is_null() { - cmd_next_subpass - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_render_pass: unsafe { - unsafe extern "system" fn cmd_end_render_pass(_command_buffer: CommandBuffer) { - panic!(concat!("Unable to load ", stringify!(cmd_end_render_pass))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_render_pass - } else { - ::core::mem::transmute(val) - } - }, - cmd_execute_commands: unsafe { - unsafe extern "system" fn cmd_execute_commands( - _command_buffer: CommandBuffer, - _command_buffer_count: u32, - _p_command_buffers: *const CommandBuffer, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_execute_commands))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdExecuteCommands\0"); - let val = _f(cname); - if val.is_null() { - cmd_execute_commands - } else { - ::core::mem::transmute(val) - } - }, - } - } -} #[allow(non_camel_case_types)] pub type PFN_vkEnumerateInstanceVersion = unsafe extern "system" fn(p_api_version: *mut u32) -> Result; -#[derive(Clone)] -#[doc = "Raw Vulkan 1.1 entry point function pointers"] -pub struct EntryFnV1_1 { - pub enumerate_instance_version: PFN_vkEnumerateInstanceVersion, -} -unsafe impl Send for EntryFnV1_1 {} -unsafe impl Sync for EntryFnV1_1 {} -impl EntryFnV1_1 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - enumerate_instance_version: unsafe { - unsafe extern "system" fn enumerate_instance_version( - _p_api_version: *mut u32, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_instance_version) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkEnumerateInstanceVersion\0"); - let val = _f(cname); - if val.is_null() { - enumerate_instance_version - } else { - ::core::mem::transmute(val) - } - }, - } - } -} -#[derive(Clone)] -#[doc = "Raw Vulkan 1.1 instance-level function pointers"] -pub struct InstanceFnV1_1 { pub enumerate_physical_device_groups : crate :: vk :: khr :: device_group_creation :: PFN_vkEnumeratePhysicalDeviceGroups , pub get_physical_device_features2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceFeatures2 , pub get_physical_device_properties2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceProperties2 , pub get_physical_device_format_properties2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceFormatProperties2 , pub get_physical_device_image_format_properties2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceImageFormatProperties2 , pub get_physical_device_queue_family_properties2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceQueueFamilyProperties2 , pub get_physical_device_memory_properties2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceMemoryProperties2 , pub get_physical_device_sparse_image_format_properties2 : crate :: vk :: khr :: get_physical_device_properties2 :: PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 , pub get_physical_device_external_buffer_properties : crate :: vk :: khr :: external_memory_capabilities :: PFN_vkGetPhysicalDeviceExternalBufferProperties , pub get_physical_device_external_fence_properties : crate :: vk :: khr :: external_fence_capabilities :: PFN_vkGetPhysicalDeviceExternalFenceProperties , pub get_physical_device_external_semaphore_properties : crate :: vk :: khr :: external_semaphore_capabilities :: PFN_vkGetPhysicalDeviceExternalSemaphoreProperties , } -unsafe impl Send for InstanceFnV1_1 {} -unsafe impl Sync for InstanceFnV1_1 {} -impl InstanceFnV1_1 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - enumerate_physical_device_groups: unsafe { - unsafe extern "system" fn enumerate_physical_device_groups( - _instance: crate::vk::Instance, - _p_physical_device_group_count: *mut u32, - _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(enumerate_physical_device_groups) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkEnumeratePhysicalDeviceGroups\0"); - let val = _f(cname); - if val.is_null() { - enumerate_physical_device_groups - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_features2: unsafe { - unsafe extern "system" fn get_physical_device_features2( - _physical_device: PhysicalDevice, - _p_features: *mut PhysicalDeviceFeatures2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_features2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFeatures2\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_features2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_properties2: unsafe { - unsafe extern "system" fn get_physical_device_properties2( - _physical_device: PhysicalDevice, - _p_properties: *mut PhysicalDeviceProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_properties2) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceProperties2\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_properties2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_format_properties2: unsafe { - unsafe extern "system" fn get_physical_device_format_properties2( - _physical_device: PhysicalDevice, - _format: Format, - _p_format_properties: *mut FormatProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_format_properties2) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceFormatProperties2\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_format_properties2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_image_format_properties2: unsafe { - unsafe extern "system" fn get_physical_device_image_format_properties2( - _physical_device: PhysicalDevice, - _p_image_format_info: *const PhysicalDeviceImageFormatInfo2<'_>, - _p_image_format_properties: *mut ImageFormatProperties2<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_image_format_properties2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceImageFormatProperties2\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_image_format_properties2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_queue_family_properties2: unsafe { - unsafe extern "system" fn get_physical_device_queue_family_properties2( - _physical_device: PhysicalDevice, - _p_queue_family_property_count: *mut u32, - _p_queue_family_properties: *mut QueueFamilyProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_queue_family_properties2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceQueueFamilyProperties2\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_queue_family_properties2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_memory_properties2: unsafe { - unsafe extern "system" fn get_physical_device_memory_properties2( - _physical_device: PhysicalDevice, - _p_memory_properties: *mut PhysicalDeviceMemoryProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_memory_properties2) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceMemoryProperties2\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_memory_properties2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_sparse_image_format_properties2: unsafe { - unsafe extern "system" fn get_physical_device_sparse_image_format_properties2( - _physical_device: PhysicalDevice, - _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2<'_>, - _p_property_count: *mut u32, - _p_properties: *mut SparseImageFormatProperties2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_sparse_image_format_properties2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceSparseImageFormatProperties2\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_sparse_image_format_properties2 - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_external_buffer_properties: unsafe { - unsafe extern "system" fn get_physical_device_external_buffer_properties( - _physical_device: PhysicalDevice, - _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo<'_>, - _p_external_buffer_properties: *mut ExternalBufferProperties<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_buffer_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalBufferProperties\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_buffer_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_external_fence_properties: unsafe { - unsafe extern "system" fn get_physical_device_external_fence_properties( - _physical_device: PhysicalDevice, - _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo<'_>, - _p_external_fence_properties: *mut ExternalFenceProperties<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_fence_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalFenceProperties\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_fence_properties - } else { - ::core::mem::transmute(val) - } - }, - get_physical_device_external_semaphore_properties: unsafe { - unsafe extern "system" fn get_physical_device_external_semaphore_properties( - _physical_device: PhysicalDevice, - _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo<'_>, - _p_external_semaphore_properties: *mut ExternalSemaphoreProperties<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_external_semaphore_properties) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetPhysicalDeviceExternalSemaphoreProperties\0", - ); - let val = _f(cname); - if val.is_null() { - get_physical_device_external_semaphore_properties - } else { - ::core::mem::transmute(val) - } - }, - } - } -} #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceQueue2 = unsafe extern "system" fn( device: crate::vk::Device, p_queue_info: *const DeviceQueueInfo2<'_>, p_queue: *mut Queue, ); -#[derive(Clone)] -#[doc = "Raw Vulkan 1.1 device-level function pointers"] -pub struct DeviceFnV1_1 { - pub bind_buffer_memory2: crate::vk::khr::bind_memory2::PFN_vkBindBufferMemory2, - pub bind_image_memory2: crate::vk::khr::bind_memory2::PFN_vkBindImageMemory2, - pub get_device_group_peer_memory_features: - crate::vk::khr::device_group::PFN_vkGetDeviceGroupPeerMemoryFeatures, - pub cmd_set_device_mask: crate::vk::khr::device_group::PFN_vkCmdSetDeviceMask, - pub cmd_dispatch_base: crate::vk::khr::device_group::PFN_vkCmdDispatchBase, - pub get_image_memory_requirements2: - crate::vk::khr::get_memory_requirements2::PFN_vkGetImageMemoryRequirements2, - pub get_buffer_memory_requirements2: - crate::vk::khr::get_memory_requirements2::PFN_vkGetBufferMemoryRequirements2, - pub get_image_sparse_memory_requirements2: - crate::vk::khr::get_memory_requirements2::PFN_vkGetImageSparseMemoryRequirements2, - pub trim_command_pool: crate::vk::khr::maintenance1::PFN_vkTrimCommandPool, - pub get_device_queue2: PFN_vkGetDeviceQueue2, - pub create_sampler_ycbcr_conversion: - crate::vk::khr::sampler_ycbcr_conversion::PFN_vkCreateSamplerYcbcrConversion, - pub destroy_sampler_ycbcr_conversion: - crate::vk::khr::sampler_ycbcr_conversion::PFN_vkDestroySamplerYcbcrConversion, - pub create_descriptor_update_template: - crate::vk::khr::descriptor_update_template::PFN_vkCreateDescriptorUpdateTemplate, - pub destroy_descriptor_update_template: - crate::vk::khr::descriptor_update_template::PFN_vkDestroyDescriptorUpdateTemplate, - pub update_descriptor_set_with_template: - crate::vk::khr::descriptor_update_template::PFN_vkUpdateDescriptorSetWithTemplate, - pub get_descriptor_set_layout_support: - crate::vk::khr::maintenance3::PFN_vkGetDescriptorSetLayoutSupport, -} -unsafe impl Send for DeviceFnV1_1 {} -unsafe impl Sync for DeviceFnV1_1 {} -impl DeviceFnV1_1 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - bind_buffer_memory2: unsafe { - unsafe extern "system" fn bind_buffer_memory2( - _device: crate::vk::Device, - _bind_info_count: u32, - _p_bind_infos: *const BindBufferMemoryInfo<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(bind_buffer_memory2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2\0"); - let val = _f(cname); - if val.is_null() { - bind_buffer_memory2 - } else { - ::core::mem::transmute(val) - } - }, - bind_image_memory2: unsafe { - unsafe extern "system" fn bind_image_memory2( - _device: crate::vk::Device, - _bind_info_count: u32, - _p_bind_infos: *const BindImageMemoryInfo<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(bind_image_memory2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2\0"); - let val = _f(cname); - if val.is_null() { - bind_image_memory2 - } else { - ::core::mem::transmute(val) - } - }, - get_device_group_peer_memory_features: unsafe { - unsafe extern "system" fn get_device_group_peer_memory_features( - _device: crate::vk::Device, - _heap_index: u32, - _local_device_index: u32, - _remote_device_index: u32, - _p_peer_memory_features: *mut PeerMemoryFeatureFlags, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_group_peer_memory_features) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceGroupPeerMemoryFeatures\0"); - let val = _f(cname); - if val.is_null() { - get_device_group_peer_memory_features - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_device_mask: unsafe { - unsafe extern "system" fn cmd_set_device_mask( - _command_buffer: CommandBuffer, - _device_mask: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_device_mask))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMask\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_device_mask - } else { - ::core::mem::transmute(val) - } - }, - cmd_dispatch_base: unsafe { - unsafe extern "system" fn cmd_dispatch_base( - _command_buffer: CommandBuffer, - _base_group_x: u32, - _base_group_y: u32, - _base_group_z: u32, - _group_count_x: u32, - _group_count_y: u32, - _group_count_z: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_dispatch_base))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBase\0"); - let val = _f(cname); - if val.is_null() { - cmd_dispatch_base - } else { - ::core::mem::transmute(val) - } - }, - get_image_memory_requirements2: unsafe { - unsafe extern "system" fn get_image_memory_requirements2( - _device: crate::vk::Device, - _p_info: *const ImageMemoryRequirementsInfo2<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_memory_requirements2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetImageMemoryRequirements2\0"); - let val = _f(cname); - if val.is_null() { - get_image_memory_requirements2 - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_memory_requirements2: unsafe { - unsafe extern "system" fn get_buffer_memory_requirements2( - _device: crate::vk::Device, - _p_info: *const BufferMemoryRequirementsInfo2<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_memory_requirements2) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetBufferMemoryRequirements2\0"); - let val = _f(cname); - if val.is_null() { - get_buffer_memory_requirements2 - } else { - ::core::mem::transmute(val) - } - }, - get_image_sparse_memory_requirements2: unsafe { - unsafe extern "system" fn get_image_sparse_memory_requirements2( - _device: crate::vk::Device, - _p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, - _p_sparse_memory_requirement_count: *mut u32, - _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_image_sparse_memory_requirements2) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetImageSparseMemoryRequirements2\0"); - let val = _f(cname); - if val.is_null() { - get_image_sparse_memory_requirements2 - } else { - ::core::mem::transmute(val) - } - }, - trim_command_pool: unsafe { - unsafe extern "system" fn trim_command_pool( - _device: crate::vk::Device, - _command_pool: CommandPool, - _flags: CommandPoolTrimFlags, - ) { - panic!(concat!("Unable to load ", stringify!(trim_command_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPool\0"); - let val = _f(cname); - if val.is_null() { - trim_command_pool - } else { - ::core::mem::transmute(val) - } - }, - get_device_queue2: unsafe { - unsafe extern "system" fn get_device_queue2( - _device: crate::vk::Device, - _p_queue_info: *const DeviceQueueInfo2<'_>, - _p_queue: *mut Queue, - ) { - panic!(concat!("Unable to load ", stringify!(get_device_queue2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceQueue2\0"); - let val = _f(cname); - if val.is_null() { - get_device_queue2 - } else { - ::core::mem::transmute(val) - } - }, - create_sampler_ycbcr_conversion: unsafe { - unsafe extern "system" fn create_sampler_ycbcr_conversion( - _device: crate::vk::Device, - _p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_ycbcr_conversion: *mut SamplerYcbcrConversion, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_sampler_ycbcr_conversion) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateSamplerYcbcrConversion\0"); - let val = _f(cname); - if val.is_null() { - create_sampler_ycbcr_conversion - } else { - ::core::mem::transmute(val) - } - }, - destroy_sampler_ycbcr_conversion: unsafe { - unsafe extern "system" fn destroy_sampler_ycbcr_conversion( - _device: crate::vk::Device, - _ycbcr_conversion: SamplerYcbcrConversion, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_sampler_ycbcr_conversion) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroySamplerYcbcrConversion\0"); - let val = _f(cname); - if val.is_null() { - destroy_sampler_ycbcr_conversion - } else { - ::core::mem::transmute(val) - } - }, - create_descriptor_update_template: unsafe { - unsafe extern "system" fn create_descriptor_update_template( - _device: crate::vk::Device, - _p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_descriptor_update_template: *mut DescriptorUpdateTemplate, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_descriptor_update_template) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCreateDescriptorUpdateTemplate\0"); - let val = _f(cname); - if val.is_null() { - create_descriptor_update_template - } else { - ::core::mem::transmute(val) - } - }, - destroy_descriptor_update_template: unsafe { - unsafe extern "system" fn destroy_descriptor_update_template( - _device: crate::vk::Device, - _descriptor_update_template: DescriptorUpdateTemplate, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_descriptor_update_template) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkDestroyDescriptorUpdateTemplate\0"); - let val = _f(cname); - if val.is_null() { - destroy_descriptor_update_template - } else { - ::core::mem::transmute(val) - } - }, - update_descriptor_set_with_template: unsafe { - unsafe extern "system" fn update_descriptor_set_with_template( - _device: crate::vk::Device, - _descriptor_set: DescriptorSet, - _descriptor_update_template: DescriptorUpdateTemplate, - _p_data: *const c_void, - ) { - panic!(concat!( - "Unable to load ", - stringify!(update_descriptor_set_with_template) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkUpdateDescriptorSetWithTemplate\0"); - let val = _f(cname); - if val.is_null() { - update_descriptor_set_with_template - } else { - ::core::mem::transmute(val) - } - }, - get_descriptor_set_layout_support: unsafe { - unsafe extern "system" fn get_descriptor_set_layout_support( - _device: crate::vk::Device, - _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, - _p_support: *mut DescriptorSetLayoutSupport<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_descriptor_set_layout_support) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDescriptorSetLayoutSupport\0"); - let val = _f(cname); - if val.is_null() { - get_descriptor_set_layout_support - } else { - ::core::mem::transmute(val) - } - }, - } - } -} -#[derive(Clone)] -#[doc = "Raw Vulkan 1.2 entry point function pointers"] -pub struct EntryFnV1_2; -#[derive(Clone)] -#[doc = "Raw Vulkan 1.2 instance-level function pointers"] -pub struct InstanceFnV1_2; -#[derive(Clone)] -#[doc = "Raw Vulkan 1.2 device-level function pointers"] -pub struct DeviceFnV1_2 { - pub cmd_draw_indirect_count: crate::vk::amd::draw_indirect_count::PFN_vkCmdDrawIndirectCount, - pub cmd_draw_indexed_indirect_count: - crate::vk::amd::draw_indirect_count::PFN_vkCmdDrawIndexedIndirectCount, - pub create_render_pass2: crate::vk::khr::create_renderpass2::PFN_vkCreateRenderPass2, - pub cmd_begin_render_pass2: crate::vk::khr::create_renderpass2::PFN_vkCmdBeginRenderPass2, - pub cmd_next_subpass2: crate::vk::khr::create_renderpass2::PFN_vkCmdNextSubpass2, - pub cmd_end_render_pass2: crate::vk::khr::create_renderpass2::PFN_vkCmdEndRenderPass2, - pub reset_query_pool: crate::vk::ext::host_query_reset::PFN_vkResetQueryPool, - pub get_semaphore_counter_value: - crate::vk::khr::timeline_semaphore::PFN_vkGetSemaphoreCounterValue, - pub wait_semaphores: crate::vk::khr::timeline_semaphore::PFN_vkWaitSemaphores, - pub signal_semaphore: crate::vk::khr::timeline_semaphore::PFN_vkSignalSemaphore, - pub get_buffer_device_address: - crate::vk::ext::buffer_device_address::PFN_vkGetBufferDeviceAddress, - pub get_buffer_opaque_capture_address: - crate::vk::khr::buffer_device_address::PFN_vkGetBufferOpaqueCaptureAddress, - pub get_device_memory_opaque_capture_address: - crate::vk::khr::buffer_device_address::PFN_vkGetDeviceMemoryOpaqueCaptureAddress, -} -unsafe impl Send for DeviceFnV1_2 {} -unsafe impl Sync for DeviceFnV1_2 {} -impl DeviceFnV1_2 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - cmd_draw_indirect_count: unsafe { - unsafe extern "system" fn cmd_draw_indirect_count( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indirect_count) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCount\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indirect_count - } else { - ::core::mem::transmute(val) - } - }, - cmd_draw_indexed_indirect_count: unsafe { - unsafe extern "system" fn cmd_draw_indexed_indirect_count( - _command_buffer: CommandBuffer, - _buffer: Buffer, - _offset: DeviceSize, - _count_buffer: Buffer, - _count_buffer_offset: DeviceSize, - _max_draw_count: u32, - _stride: u32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_draw_indexed_indirect_count) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexedIndirectCount\0"); - let val = _f(cname); - if val.is_null() { - cmd_draw_indexed_indirect_count - } else { - ::core::mem::transmute(val) - } - }, - create_render_pass2: unsafe { - unsafe extern "system" fn create_render_pass2( - _device: crate::vk::Device, - _p_create_info: *const RenderPassCreateInfo2<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_render_pass: *mut RenderPass, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(create_render_pass2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2\0"); - let val = _f(cname); - if val.is_null() { - create_render_pass2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_render_pass2: unsafe { - unsafe extern "system" fn cmd_begin_render_pass2( - _command_buffer: CommandBuffer, - _p_render_pass_begin: *const RenderPassBeginInfo<'_>, - _p_subpass_begin_info: *const SubpassBeginInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_begin_render_pass2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_render_pass2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_next_subpass2: unsafe { - unsafe extern "system" fn cmd_next_subpass2( - _command_buffer: CommandBuffer, - _p_subpass_begin_info: *const SubpassBeginInfo<'_>, - _p_subpass_end_info: *const SubpassEndInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_next_subpass2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2\0"); - let val = _f(cname); - if val.is_null() { - cmd_next_subpass2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_render_pass2: unsafe { - unsafe extern "system" fn cmd_end_render_pass2( - _command_buffer: CommandBuffer, - _p_subpass_end_info: *const SubpassEndInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_end_render_pass2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_render_pass2 - } else { - ::core::mem::transmute(val) - } - }, - reset_query_pool: unsafe { - unsafe extern "system" fn reset_query_pool( - _device: crate::vk::Device, - _query_pool: QueryPool, - _first_query: u32, - _query_count: u32, - ) { - panic!(concat!("Unable to load ", stringify!(reset_query_pool))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPool\0"); - let val = _f(cname); - if val.is_null() { - reset_query_pool - } else { - ::core::mem::transmute(val) - } - }, - get_semaphore_counter_value: unsafe { - unsafe extern "system" fn get_semaphore_counter_value( - _device: crate::vk::Device, - _semaphore: Semaphore, - _p_value: *mut u64, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_semaphore_counter_value) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreCounterValue\0"); - let val = _f(cname); - if val.is_null() { - get_semaphore_counter_value - } else { - ::core::mem::transmute(val) - } - }, - wait_semaphores: unsafe { - unsafe extern "system" fn wait_semaphores( - _device: crate::vk::Device, - _p_wait_info: *const SemaphoreWaitInfo<'_>, - _timeout: u64, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(wait_semaphores))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphores\0"); - let val = _f(cname); - if val.is_null() { - wait_semaphores - } else { - ::core::mem::transmute(val) - } - }, - signal_semaphore: unsafe { - unsafe extern "system" fn signal_semaphore( - _device: crate::vk::Device, - _p_signal_info: *const SemaphoreSignalInfo<'_>, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(signal_semaphore))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphore\0"); - let val = _f(cname); - if val.is_null() { - signal_semaphore - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_device_address: unsafe { - unsafe extern "system" fn get_buffer_device_address( - _device: crate::vk::Device, - _p_info: *const BufferDeviceAddressInfo<'_>, - ) -> DeviceAddress { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_device_address) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetBufferDeviceAddress\0"); - let val = _f(cname); - if val.is_null() { - get_buffer_device_address - } else { - ::core::mem::transmute(val) - } - }, - get_buffer_opaque_capture_address: unsafe { - unsafe extern "system" fn get_buffer_opaque_capture_address( - _device: crate::vk::Device, - _p_info: *const BufferDeviceAddressInfo<'_>, - ) -> u64 { - panic!(concat!( - "Unable to load ", - stringify!(get_buffer_opaque_capture_address) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetBufferOpaqueCaptureAddress\0"); - let val = _f(cname); - if val.is_null() { - get_buffer_opaque_capture_address - } else { - ::core::mem::transmute(val) - } - }, - get_device_memory_opaque_capture_address: unsafe { - unsafe extern "system" fn get_device_memory_opaque_capture_address( - _device: crate::vk::Device, - _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, - ) -> u64 { - panic!(concat!( - "Unable to load ", - stringify!(get_device_memory_opaque_capture_address) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceMemoryOpaqueCaptureAddress\0"); - let val = _f(cname); - if val.is_null() { - get_device_memory_opaque_capture_address - } else { - ::core::mem::transmute(val) - } - }, - } - } -} -#[derive(Clone)] -#[doc = "Raw Vulkan 1.3 entry point function pointers"] -pub struct EntryFnV1_3; -#[derive(Clone)] -#[doc = "Raw Vulkan 1.3 instance-level function pointers"] -pub struct InstanceFnV1_3 { - pub get_physical_device_tool_properties: - crate::vk::ext::tooling_info::PFN_vkGetPhysicalDeviceToolProperties, -} -unsafe impl Send for InstanceFnV1_3 {} -unsafe impl Sync for InstanceFnV1_3 {} -impl InstanceFnV1_3 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - get_physical_device_tool_properties: unsafe { - unsafe extern "system" fn get_physical_device_tool_properties( - _physical_device: PhysicalDevice, - _p_tool_count: *mut u32, - _p_tool_properties: *mut PhysicalDeviceToolProperties<'_>, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(get_physical_device_tool_properties) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetPhysicalDeviceToolProperties\0"); - let val = _f(cname); - if val.is_null() { - get_physical_device_tool_properties - } else { - ::core::mem::transmute(val) - } - }, - } - } -} -#[derive(Clone)] -#[doc = "Raw Vulkan 1.3 device-level function pointers"] -pub struct DeviceFnV1_3 { - pub create_private_data_slot: crate::vk::ext::private_data::PFN_vkCreatePrivateDataSlot, - pub destroy_private_data_slot: crate::vk::ext::private_data::PFN_vkDestroyPrivateDataSlot, - pub set_private_data: crate::vk::ext::private_data::PFN_vkSetPrivateData, - pub get_private_data: crate::vk::ext::private_data::PFN_vkGetPrivateData, - pub cmd_set_event2: crate::vk::khr::synchronization2::PFN_vkCmdSetEvent2, - pub cmd_reset_event2: crate::vk::khr::synchronization2::PFN_vkCmdResetEvent2, - pub cmd_wait_events2: crate::vk::khr::synchronization2::PFN_vkCmdWaitEvents2, - pub cmd_pipeline_barrier2: crate::vk::khr::synchronization2::PFN_vkCmdPipelineBarrier2, - pub cmd_write_timestamp2: crate::vk::khr::synchronization2::PFN_vkCmdWriteTimestamp2, - pub queue_submit2: crate::vk::khr::synchronization2::PFN_vkQueueSubmit2, - pub cmd_copy_buffer2: crate::vk::khr::copy_commands2::PFN_vkCmdCopyBuffer2, - pub cmd_copy_image2: crate::vk::khr::copy_commands2::PFN_vkCmdCopyImage2, - pub cmd_copy_buffer_to_image2: crate::vk::khr::copy_commands2::PFN_vkCmdCopyBufferToImage2, - pub cmd_copy_image_to_buffer2: crate::vk::khr::copy_commands2::PFN_vkCmdCopyImageToBuffer2, - pub cmd_blit_image2: crate::vk::khr::copy_commands2::PFN_vkCmdBlitImage2, - pub cmd_resolve_image2: crate::vk::khr::copy_commands2::PFN_vkCmdResolveImage2, - pub cmd_begin_rendering: crate::vk::khr::dynamic_rendering::PFN_vkCmdBeginRendering, - pub cmd_end_rendering: crate::vk::khr::dynamic_rendering::PFN_vkCmdEndRendering, - pub cmd_set_cull_mode: crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetCullMode, - pub cmd_set_front_face: crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetFrontFace, - pub cmd_set_primitive_topology: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetPrimitiveTopology, - pub cmd_set_viewport_with_count: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetViewportWithCount, - pub cmd_set_scissor_with_count: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetScissorWithCount, - pub cmd_bind_vertex_buffers2: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdBindVertexBuffers2, - pub cmd_set_depth_test_enable: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetDepthTestEnable, - pub cmd_set_depth_write_enable: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetDepthWriteEnable, - pub cmd_set_depth_compare_op: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetDepthCompareOp, - pub cmd_set_depth_bounds_test_enable: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetDepthBoundsTestEnable, - pub cmd_set_stencil_test_enable: - crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetStencilTestEnable, - pub cmd_set_stencil_op: crate::vk::ext::extended_dynamic_state::PFN_vkCmdSetStencilOp, - pub cmd_set_rasterizer_discard_enable: - crate::vk::ext::extended_dynamic_state2::PFN_vkCmdSetRasterizerDiscardEnable, - pub cmd_set_depth_bias_enable: - crate::vk::ext::extended_dynamic_state2::PFN_vkCmdSetDepthBiasEnable, - pub cmd_set_primitive_restart_enable: - crate::vk::ext::extended_dynamic_state2::PFN_vkCmdSetPrimitiveRestartEnable, - pub get_device_buffer_memory_requirements: - crate::vk::khr::maintenance4::PFN_vkGetDeviceBufferMemoryRequirements, - pub get_device_image_memory_requirements: - crate::vk::khr::maintenance4::PFN_vkGetDeviceImageMemoryRequirements, - pub get_device_image_sparse_memory_requirements: - crate::vk::khr::maintenance4::PFN_vkGetDeviceImageSparseMemoryRequirements, -} -unsafe impl Send for DeviceFnV1_3 {} -unsafe impl Sync for DeviceFnV1_3 {} -impl DeviceFnV1_3 { - pub fn load(mut _f: F) -> Self - where - F: FnMut(&CStr) -> *const c_void, - { - Self { - create_private_data_slot: unsafe { - unsafe extern "system" fn create_private_data_slot( - _device: crate::vk::Device, - _p_create_info: *const PrivateDataSlotCreateInfo<'_>, - _p_allocator: *const AllocationCallbacks<'_>, - _p_private_data_slot: *mut PrivateDataSlot, - ) -> Result { - panic!(concat!( - "Unable to load ", - stringify!(create_private_data_slot) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCreatePrivateDataSlot\0"); - let val = _f(cname); - if val.is_null() { - create_private_data_slot - } else { - ::core::mem::transmute(val) - } - }, - destroy_private_data_slot: unsafe { - unsafe extern "system" fn destroy_private_data_slot( - _device: crate::vk::Device, - _private_data_slot: PrivateDataSlot, - _p_allocator: *const AllocationCallbacks<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(destroy_private_data_slot) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkDestroyPrivateDataSlot\0"); - let val = _f(cname); - if val.is_null() { - destroy_private_data_slot - } else { - ::core::mem::transmute(val) - } - }, - set_private_data: unsafe { - unsafe extern "system" fn set_private_data( - _device: crate::vk::Device, - _object_type: ObjectType, - _object_handle: u64, - _private_data_slot: PrivateDataSlot, - _data: u64, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(set_private_data))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateData\0"); - let val = _f(cname); - if val.is_null() { - set_private_data - } else { - ::core::mem::transmute(val) - } - }, - get_private_data: unsafe { - unsafe extern "system" fn get_private_data( - _device: crate::vk::Device, - _object_type: ObjectType, - _object_handle: u64, - _private_data_slot: PrivateDataSlot, - _p_data: *mut u64, - ) { - panic!(concat!("Unable to load ", stringify!(get_private_data))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateData\0"); - let val = _f(cname); - if val.is_null() { - get_private_data - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_event2: unsafe { - unsafe extern "system" fn cmd_set_event2( - _command_buffer: CommandBuffer, - _event: Event, - _p_dependency_info: *const DependencyInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_event2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_event2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_reset_event2: unsafe { - unsafe extern "system" fn cmd_reset_event2( - _command_buffer: CommandBuffer, - _event: Event, - _stage_mask: PipelineStageFlags2, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_reset_event2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2\0"); - let val = _f(cname); - if val.is_null() { - cmd_reset_event2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_wait_events2: unsafe { - unsafe extern "system" fn cmd_wait_events2( - _command_buffer: CommandBuffer, - _event_count: u32, - _p_events: *const Event, - _p_dependency_infos: *const DependencyInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_wait_events2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2\0"); - let val = _f(cname); - if val.is_null() { - cmd_wait_events2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_pipeline_barrier2: unsafe { - unsafe extern "system" fn cmd_pipeline_barrier2( - _command_buffer: CommandBuffer, - _p_dependency_info: *const DependencyInfo<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_pipeline_barrier2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2\0"); - let val = _f(cname); - if val.is_null() { - cmd_pipeline_barrier2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_write_timestamp2: unsafe { - unsafe extern "system" fn cmd_write_timestamp2( - _command_buffer: CommandBuffer, - _stage: PipelineStageFlags2, - _query_pool: QueryPool, - _query: u32, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_write_timestamp2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2\0"); - let val = _f(cname); - if val.is_null() { - cmd_write_timestamp2 - } else { - ::core::mem::transmute(val) - } - }, - queue_submit2: unsafe { - unsafe extern "system" fn queue_submit2( - _queue: Queue, - _submit_count: u32, - _p_submits: *const SubmitInfo2<'_>, - _fence: Fence, - ) -> Result { - panic!(concat!("Unable to load ", stringify!(queue_submit2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2\0"); - let val = _f(cname); - if val.is_null() { - queue_submit2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_buffer2: unsafe { - unsafe extern "system" fn cmd_copy_buffer2( - _command_buffer: CommandBuffer, - _p_copy_buffer_info: *const CopyBufferInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_buffer2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_image2: unsafe { - unsafe extern "system" fn cmd_copy_image2( - _command_buffer: CommandBuffer, - _p_copy_image_info: *const CopyImageInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_copy_image2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_image2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_buffer_to_image2: unsafe { - unsafe extern "system" fn cmd_copy_buffer_to_image2( - _command_buffer: CommandBuffer, - _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_buffer_to_image2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBufferToImage2\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_buffer_to_image2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_copy_image_to_buffer2: unsafe { - unsafe extern "system" fn cmd_copy_image_to_buffer2( - _command_buffer: CommandBuffer, - _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_copy_image_to_buffer2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImageToBuffer2\0"); - let val = _f(cname); - if val.is_null() { - cmd_copy_image_to_buffer2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_blit_image2: unsafe { - unsafe extern "system" fn cmd_blit_image2( - _command_buffer: CommandBuffer, - _p_blit_image_info: *const BlitImageInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_blit_image2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2\0"); - let val = _f(cname); - if val.is_null() { - cmd_blit_image2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_resolve_image2: unsafe { - unsafe extern "system" fn cmd_resolve_image2( - _command_buffer: CommandBuffer, - _p_resolve_image_info: *const ResolveImageInfo2<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_resolve_image2))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2\0"); - let val = _f(cname); - if val.is_null() { - cmd_resolve_image2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_begin_rendering: unsafe { - unsafe extern "system" fn cmd_begin_rendering( - _command_buffer: CommandBuffer, - _p_rendering_info: *const RenderingInfo<'_>, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_begin_rendering))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRendering\0"); - let val = _f(cname); - if val.is_null() { - cmd_begin_rendering - } else { - ::core::mem::transmute(val) - } - }, - cmd_end_rendering: unsafe { - unsafe extern "system" fn cmd_end_rendering(_command_buffer: CommandBuffer) { - panic!(concat!("Unable to load ", stringify!(cmd_end_rendering))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRendering\0"); - let val = _f(cname); - if val.is_null() { - cmd_end_rendering - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_cull_mode: unsafe { - unsafe extern "system" fn cmd_set_cull_mode( - _command_buffer: CommandBuffer, - _cull_mode: CullModeFlags, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_cull_mode))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullMode\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_cull_mode - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_front_face: unsafe { - unsafe extern "system" fn cmd_set_front_face( - _command_buffer: CommandBuffer, - _front_face: FrontFace, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_front_face))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFace\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_front_face - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_primitive_topology: unsafe { - unsafe extern "system" fn cmd_set_primitive_topology( - _command_buffer: CommandBuffer, - _primitive_topology: PrimitiveTopology, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_primitive_topology) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveTopology\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_primitive_topology - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_viewport_with_count: unsafe { - unsafe extern "system" fn cmd_set_viewport_with_count( - _command_buffer: CommandBuffer, - _viewport_count: u32, - _p_viewports: *const Viewport, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_viewport_with_count) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewportWithCount\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_viewport_with_count - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_scissor_with_count: unsafe { - unsafe extern "system" fn cmd_set_scissor_with_count( - _command_buffer: CommandBuffer, - _scissor_count: u32, - _p_scissors: *const Rect2D, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_scissor_with_count) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissorWithCount\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_scissor_with_count - } else { - ::core::mem::transmute(val) - } - }, - cmd_bind_vertex_buffers2: unsafe { - unsafe extern "system" fn cmd_bind_vertex_buffers2( - _command_buffer: CommandBuffer, - _first_binding: u32, - _binding_count: u32, - _p_buffers: *const Buffer, - _p_offsets: *const DeviceSize, - _p_sizes: *const DeviceSize, - _p_strides: *const DeviceSize, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_bind_vertex_buffers2) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdBindVertexBuffers2\0"); - let val = _f(cname); - if val.is_null() { - cmd_bind_vertex_buffers2 - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_test_enable: unsafe { - unsafe extern "system" fn cmd_set_depth_test_enable( - _command_buffer: CommandBuffer, - _depth_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_test_enable) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthTestEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_test_enable - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_write_enable: unsafe { - unsafe extern "system" fn cmd_set_depth_write_enable( - _command_buffer: CommandBuffer, - _depth_write_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_write_enable) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthWriteEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_write_enable - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_compare_op: unsafe { - unsafe extern "system" fn cmd_set_depth_compare_op( - _command_buffer: CommandBuffer, - _depth_compare_op: CompareOp, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_compare_op) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOp\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_compare_op - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bounds_test_enable: unsafe { - unsafe extern "system" fn cmd_set_depth_bounds_test_enable( - _command_buffer: CommandBuffer, - _depth_bounds_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bounds_test_enable) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBoundsTestEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bounds_test_enable - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_test_enable: unsafe { - unsafe extern "system" fn cmd_set_stencil_test_enable( - _command_buffer: CommandBuffer, - _stencil_test_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_stencil_test_enable) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilTestEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_test_enable - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_stencil_op: unsafe { - unsafe extern "system" fn cmd_set_stencil_op( - _command_buffer: CommandBuffer, - _face_mask: StencilFaceFlags, - _fail_op: StencilOp, - _pass_op: StencilOp, - _depth_fail_op: StencilOp, - _compare_op: CompareOp, - ) { - panic!(concat!("Unable to load ", stringify!(cmd_set_stencil_op))) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOp\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_stencil_op - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_rasterizer_discard_enable: unsafe { - unsafe extern "system" fn cmd_set_rasterizer_discard_enable( - _command_buffer: CommandBuffer, - _rasterizer_discard_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_rasterizer_discard_enable) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetRasterizerDiscardEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_rasterizer_discard_enable - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_depth_bias_enable: unsafe { - unsafe extern "system" fn cmd_set_depth_bias_enable( - _command_buffer: CommandBuffer, - _depth_bias_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_depth_bias_enable) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBiasEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_depth_bias_enable - } else { - ::core::mem::transmute(val) - } - }, - cmd_set_primitive_restart_enable: unsafe { - unsafe extern "system" fn cmd_set_primitive_restart_enable( - _command_buffer: CommandBuffer, - _primitive_restart_enable: Bool32, - ) { - panic!(concat!( - "Unable to load ", - stringify!(cmd_set_primitive_restart_enable) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkCmdSetPrimitiveRestartEnable\0"); - let val = _f(cname); - if val.is_null() { - cmd_set_primitive_restart_enable - } else { - ::core::mem::transmute(val) - } - }, - get_device_buffer_memory_requirements: unsafe { - unsafe extern "system" fn get_device_buffer_memory_requirements( - _device: crate::vk::Device, - _p_info: *const DeviceBufferMemoryRequirements<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_buffer_memory_requirements) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceBufferMemoryRequirements\0"); - let val = _f(cname); - if val.is_null() { - get_device_buffer_memory_requirements - } else { - ::core::mem::transmute(val) - } - }, - get_device_image_memory_requirements: unsafe { - unsafe extern "system" fn get_device_image_memory_requirements( - _device: crate::vk::Device, - _p_info: *const DeviceImageMemoryRequirements<'_>, - _p_memory_requirements: *mut MemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_image_memory_requirements) - )) - } - let cname = - CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceImageMemoryRequirements\0"); - let val = _f(cname); - if val.is_null() { - get_device_image_memory_requirements - } else { - ::core::mem::transmute(val) - } - }, - get_device_image_sparse_memory_requirements: unsafe { - unsafe extern "system" fn get_device_image_sparse_memory_requirements( - _device: crate::vk::Device, - _p_info: *const DeviceImageMemoryRequirements<'_>, - _p_sparse_memory_requirement_count: *mut u32, - _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, - ) { - panic!(concat!( - "Unable to load ", - stringify!(get_device_image_sparse_memory_requirements) - )) - } - let cname = CStr::from_bytes_with_nul_unchecked( - b"vkGetDeviceImageSparseMemoryRequirements\0", - ); - let val = _f(cname); - if val.is_null() { - get_device_image_sparse_memory_requirements - } else { - ::core::mem::transmute(val) - } - }, - } - } -} diff --git a/generator/src/lib.rs b/generator/src/lib.rs index 2955bf8a..fb863527 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -914,15 +914,15 @@ impl FieldExt for vk_parse::CommandParam { pub type CommandMap<'a> = HashMap; +/// Returns (raw bindings, function pointer table) fn generate_function_pointers<'a>( ident: Ident, - module: Option<(&str, &Ident)>, commands: &[&'a vk_parse::CommandDefinition], rename_commands: &HashMap<&'a str, &'a str>, - fn_cache: &mut HashMap<&'a str, (Ident, Ident)>, + fn_cache: &mut HashSet<&'a str>, has_lifetimes: &HashSet, doc: &str, -) -> TokenStream { +) -> (TokenStream, TokenStream) { // Commands can have duplicates inside them because they are declared per features. But we only // really want to generate one function pointer. let commands = commands @@ -931,7 +931,7 @@ fn generate_function_pointers<'a>( .collect::>(); struct Command<'a> { - type_in_module: Option<(Ident, Ident)>, + define_pfn: bool, type_name: Ident, pfn_type_name: Ident, function_name_c: &'a str, @@ -997,21 +997,14 @@ fn generate_function_pointers<'a>( .as_ref() .expect("Command must have return type"); - let type_in_module = fn_cache.get(name.as_str()).cloned(); + let define_pfn = !fn_cache.contains(name.as_str()); - if let Some((vendor, ident)) = module { - if type_in_module.is_none() { - fn_cache.insert( - name, - (format_ident!("{}", vendor.to_lowercase()), ident.clone()), - ); - } + if define_pfn { + fn_cache.insert(name); } Command { - // PFN function pointers are global and can not have duplicates. - // This can happen because there are aliases to commands - type_in_module, + define_pfn, type_name, pfn_type_name, function_name_c, @@ -1081,13 +1074,6 @@ fn generate_function_pointers<'a>( impl<'a> quote::ToTokens for CommandToMember<'a> { fn to_tokens(&self, tokens: &mut TokenStream) { let type_name = &self.0.pfn_type_name; - let type_name = if let Some((vendor, ext)) = &self.0.type_in_module { - // Type is defined in another module - quote!(crate::vk::#vendor::#ext::#type_name) - } else { - // Type is defined in local scope - quote!(#type_name) - }; let function_name_rust = &self.0.function_name_rust; quote!(pub #function_name_rust: #type_name).to_tokens(tokens) } @@ -1139,7 +1125,7 @@ fn generate_function_pointers<'a>( let param_traits = commands.iter().map(CommandToParamTraits); let pfn_typedefs = commands .iter() - .filter(|pfn| pfn.type_in_module.is_none()) + .filter(|pfn| pfn.define_pfn) .map(CommandToType); let members = commands.iter().map(CommandToMember); @@ -1156,16 +1142,21 @@ fn generate_function_pointers<'a>( } }; - quote! { - #(#param_traits)* - #(#pfn_typedefs)* + ( + quote! { + #(#pfn_typedefs)* + }, + quote! { + #(#param_traits)* + + #[derive(Clone)] + #[doc = #doc] + #struct_contents - #[derive(Clone)] - #[doc = #doc] - #struct_contents + #loader - #loader - } + }, + ) } pub struct ExtensionConstant<'a> { pub name: &'a str, @@ -1265,14 +1256,33 @@ pub fn generate_extension_constants<'a>( }); quote!(#(#enum_tokens)*) } + +pub struct ExtensionCommands<'a> { + vendor: &'a str, + raw: TokenStream, + high_level: TokenStream, +} + pub fn generate_extension_commands<'a>( full_extension_name: &'a str, items: &'a [vk_parse::ExtensionChild], cmd_map: &CommandMap<'a>, cmd_aliases: &HashMap<&'a str, &'a str>, - fn_cache: &mut HashMap<&'a str, (Ident, Ident)>, + fn_cache: &mut HashSet<&'a str>, has_lifetimes: &HashSet, -) -> (&'a str, TokenStream) { +) -> ExtensionCommands<'a> { + let byte_name_ident = Literal::byte_string(format!("{full_extension_name}\0").as_bytes()); + + let extension_name = full_extension_name.strip_prefix("VK_").unwrap(); + let (vendor, extension_ident) = extension_name.split_once('_').unwrap(); + let extension_ident = match extension_ident.chars().next().unwrap().is_ascii_digit() { + false => format_ident!("{}", extension_ident.to_lowercase()), + // Some extension names start with a digit, which is not a valid identifier in Rust. Prefix those with _: + true => format_ident!("_{}", extension_ident.to_lowercase()), + }; + + let name_ident = format_ident!("{}_NAME", extension_name.to_uppercase()); + let spec_version_ident = format_ident!("{}_SPEC_VERSION", extension_name.to_uppercase()); let spec_version = items .iter() .filter_map(get_variant!(vk_parse::ExtensionChild::Require { items })) @@ -1282,22 +1292,12 @@ pub fn generate_extension_commands<'a>( .and_then(|e| { if let vk_parse::EnumSpec::Value { value, .. } = &e.spec { let v: u32 = str::parse(value).unwrap(); - Some(quote!(pub const SPEC_VERSION: u32 = #v;)) + Some(quote!(pub const #spec_version_ident: u32 = #v;)) } else { None } }); - let byte_name_ident = Literal::byte_string(format!("{full_extension_name}\0").as_bytes()); - - let extension_name = full_extension_name.strip_prefix("VK_").unwrap(); - let (vendor, extension_ident) = extension_name.split_once('_').unwrap(); - let extension_ident = match extension_ident.chars().next().unwrap().is_ascii_digit() { - false => format_ident!("{}", extension_ident.to_lowercase()), - // Some extension names start with a digit, which is not a valid identifier in Rust. Prefix those with _: - true => format_ident!("_{}", extension_ident.to_lowercase()), - }; - let mut instance_commands = Vec::new(); let mut device_commands = Vec::new(); @@ -1333,9 +1333,8 @@ pub fn generate_extension_commands<'a>( let instance_fp = (!instance_commands.is_empty()).then(|| { let instance_ident = format_ident!("InstanceFn"); - let fp = generate_function_pointers( + let (fp, table) = generate_function_pointers( instance_ident, - Some((&vendor, &extension_ident)), &instance_commands, &rename_commands, fn_cache, @@ -1347,9 +1346,7 @@ pub fn generate_extension_commands<'a>( ); let doc = format!("{} instance-level functions", full_extension_name); - quote! { - #fp - + (fp, quote! { #[doc = #doc] pub struct Instance { pub(crate) fp: InstanceFn, @@ -1375,15 +1372,16 @@ pub fn generate_extension_commands<'a>( self.handle } } - } + + #table + }) }); let device_fp = (!device_commands.is_empty()).then(|| { let device_ident = format_ident!("DeviceFn"); - let fp = generate_function_pointers( + let (fp, table) = generate_function_pointers( device_ident, - Some((&vendor, &extension_ident)), &device_commands, &rename_commands, fn_cache, @@ -1392,9 +1390,7 @@ pub fn generate_extension_commands<'a>( ); let doc = format!("{} device-level functions", full_extension_name); - quote! { - #fp - + (fp, quote! { #[doc = #doc] pub struct Device { pub(crate) fp: DeviceFn, @@ -1420,26 +1416,37 @@ pub fn generate_extension_commands<'a>( self.handle } } - } + + #table + }) }); - ( + let (raw_device_fp, hl_device_fp) = device_fp.map_or((None, None), |(a, b)| (Some(a), Some(b))); + let (raw_instance_fp, hl_instance_fp) = + instance_fp.map_or((None, None), |(a, b)| (Some(a), Some(b))); + + ExtensionCommands { vendor, - quote! { + raw: quote! { + pub const #name_ident: &CStr = unsafe { + CStr::from_bytes_with_nul_unchecked(#byte_name_ident) + }; + #spec_version + #raw_instance_fp + #raw_device_fp + }, + high_level: quote! { #[doc = #full_extension_name] pub mod #extension_ident { use super::super::*; // Use global imports (i.e. Vulkan structs and enums) from the root module defined by this file - pub const NAME: &CStr = unsafe { - CStr::from_bytes_with_nul_unchecked(#byte_name_ident) - }; - #spec_version + pub use {crate::vk::#spec_version_ident as SPEC_VERSION, crate::vk::#name_ident as NAME}; - #instance_fp - #device_fp + #hl_instance_fp + #hl_device_fp } }, - ) + } } pub fn generate_define( @@ -2748,11 +2755,11 @@ pub fn generate_definition( pub fn generate_feature<'a>( feature: &vkxml::Feature, commands: &CommandMap<'a>, - fn_cache: &mut HashMap<&'a str, (Ident, Ident)>, + fn_cache: &mut HashSet<&'a str>, has_lifetimes: &HashSet, -) -> TokenStream { +) -> (TokenStream, TokenStream) { if !contains_desired_api(&feature.api) { - return quote!(); + return (quote!(), quote!()); } let (static_commands, entry_commands, device_commands, instance_commands) = feature @@ -2776,10 +2783,9 @@ pub fn generate_feature<'a>( }, ); let version = feature.version_string(); - let static_fn = if feature.is_version(1, 0) { + let (static_fn_fp, static_fn_table) = if feature.is_version(1, 0) { generate_function_pointers( format_ident!("{}", "StaticFn"), - None, &static_commands, &HashMap::new(), fn_cache, @@ -2787,11 +2793,10 @@ pub fn generate_feature<'a>( "Raw Vulkan 1 static function pointers", ) } else { - quote! {} + (quote! {}, quote! {}) }; - let entry = generate_function_pointers( + let (entry_fp, entry_table) = generate_function_pointers( format_ident!("EntryFnV{}", version), - None, &entry_commands, &HashMap::new(), fn_cache, @@ -2801,9 +2806,8 @@ pub fn generate_feature<'a>( feature.version ), ); - let instance = generate_function_pointers( + let (instance_fp, instance_table) = generate_function_pointers( format_ident!("InstanceFnV{}", version), - None, &instance_commands, &HashMap::new(), fn_cache, @@ -2813,9 +2817,8 @@ pub fn generate_feature<'a>( feature.version ), ); - let device = generate_function_pointers( + let (device_fp, device_table) = generate_function_pointers( format_ident!("DeviceFnV{}", version), - None, &device_commands, &HashMap::new(), fn_cache, @@ -2825,12 +2828,20 @@ pub fn generate_feature<'a>( feature.version ), ); - quote! { - #static_fn - #entry - #instance - #device - } + ( + quote! { + #static_fn_fp + #entry_fp + #instance_fp + #device_fp + }, + quote! { + #static_fn_table + #entry_table + #instance_table + #device_table + }, + ) } pub fn constant_name(name: &str) -> &str { @@ -3145,7 +3156,7 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { .map(|(name, alias)| (name.as_str(), alias.as_str())) .collect(); - let mut fn_cache = HashMap::new(); + let mut fn_cache = HashSet::new(); let mut bitflags_cache = HashSet::new(); let mut const_cache = HashSet::new(); @@ -3242,9 +3253,10 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { }) .collect_vec(); - let mut extension_cmds = BTreeMap::<&str, Vec>::new(); + let mut high_level_extension_cmds = BTreeMap::<&str, Vec>::new(); + let mut extension_cmds = Vec::::new(); for ext in extensions.iter() { - let (vendor, code) = generate_extension_commands( + let cmds = generate_extension_commands( &ext.name, &ext.children, &commands, @@ -3252,9 +3264,13 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { &mut fn_cache, &has_lifetimes, ); - extension_cmds.entry(vendor).or_default().push(code); + high_level_extension_cmds + .entry(cmds.vendor) + .or_default() + .push(cmds.high_level); + extension_cmds.push(cmds.raw); } - let extension_cmds = extension_cmds.into_iter().map(|(vendor, code)| { + let high_level_extension_cmds = high_level_extension_cmds.into_iter().map(|(vendor, code)| { let vendor_ident = format_ident!("{}", vendor.to_lowercase()); let doc = format!("Extensions tagged {}", vendor); quote! { @@ -3312,10 +3328,10 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { .map(|ty| generate_aliases_of_types(ty, &required_types, &has_lifetimes, &mut ty_cache)) .collect(); - let feature_code: Vec<_> = features + let (feature_fp_code, feature_table_code): (Vec<_>, Vec<_>) = features .iter() .map(|feature| generate_feature(feature, &commands, &mut fn_cache, &has_lifetimes)) - .collect(); + .multiunzip(); let feature_extensions_code = generate_feature_extension(&spec2, &mut const_cache, &mut const_values); @@ -3341,13 +3357,16 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { let vk_const_debugs_file = File::create(vk_dir.join("const_debugs.rs")).expect("vk/const_debugs.rs"); let vk_aliases_file = File::create(vk_dir.join("aliases.rs")).expect("vk/aliases.rs"); + let high_level_extensions_file = + File::create(src_dir.join("extensions_generated.rs")).expect("extensions_generated.rs"); + let tables_file = File::create(src_dir.join("tables.rs")).expect("tables.rs"); let feature_code = quote! { use core::ffi::*; use crate::vk::bitflags::*; use crate::vk::definitions::*; use crate::vk::enums::*; - #(#feature_code)* + #(#feature_fp_code)* }; let definition_code = quote! { @@ -3382,8 +3401,7 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { }; let extension_code = quote! { - #![allow(unused_qualifications)] // Because we do not know in what file the PFNs are defined - #![allow(unused_imports)] // for sometimes-dead `use` in extension modules + #![allow(unused_qualifications)] // For simplicity, we always generate absolute paths for `Device`/`Instance` use core::ffi::*; use crate::vk::platform_types::*; @@ -3417,6 +3435,24 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { #(#aliases)* }; + let high_level_extensions = quote! { + #![allow(unused_imports)] // for sometimes-dead `use` in extension modules + + use core::ffi::*; + + use crate::vk::*; + #(#high_level_extension_cmds)* + }; + + let tables = quote! { + #![allow(unused_qualifications)] // For simplicity, we always generate absolute paths for `Device`/`Instance` + + use core::ffi::*; + + use crate::vk::*; + #(#feature_table_code)* + }; + fn write_formatted(text: &[u8], out: File) -> std::process::Child { let mut child = std::process::Command::new("rustfmt") .stdin(std::process::Stdio::piped()) @@ -3442,6 +3478,11 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { ), write_formatted(const_debugs.to_string().as_bytes(), vk_const_debugs_file), write_formatted(aliases.to_string().as_bytes(), vk_aliases_file), + write_formatted( + high_level_extensions.to_string().as_bytes(), + high_level_extensions_file, + ), + write_formatted(tables.to_string().as_bytes(), tables_file), ]; for mut p in processes { let status = p.wait().unwrap();