From ae27fe42cd8099d9dba20190604d35a21f698edd Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Mon, 25 Mar 2024 19:39:51 -0700 Subject: [PATCH 1/4] Unify extension module hierarchies --- ash-examples/src/lib.rs | 2 +- ash-window/examples/winit.rs | 2 +- ash-window/src/lib.rs | 7 +- ash/src/entry.rs | 4 +- ash/src/extensions/amd/buffer_marker.rs | 21 +- ash/src/extensions/amd/shader_info.rs | 27 +- ash/src/extensions/amdx/shader_enqueue.rs | 27 +- ...external_memory_android_hardware_buffer.rs | 28 +- ash/src/extensions/ext/acquire_drm_display.rs | 21 +- .../extensions/ext/buffer_device_address.rs | 28 +- .../extensions/ext/calibrated_timestamps.rs | 49 +- ash/src/extensions/ext/debug_marker.rs | 28 +- ash/src/extensions/ext/debug_report.rs | 27 +- ash/src/extensions/ext/debug_utils.rs | 55 +- ash/src/extensions/ext/descriptor_buffer.rs | 27 +- .../extensions/ext/extended_dynamic_state.rs | 21 +- .../extensions/ext/extended_dynamic_state2.rs | 21 +- .../extensions/ext/extended_dynamic_state3.rs | 21 +- .../extensions/ext/full_screen_exclusive.rs | 49 +- ash/src/extensions/ext/hdr_metadata.rs | 28 +- ash/src/extensions/ext/headless_surface.rs | 27 +- ash/src/extensions/ext/host_image_copy.rs | 34 +- .../ext/image_compression_control.rs | 34 +- .../ext/image_drm_format_modifier.rs | 28 +- ash/src/extensions/ext/mesh_shader.rs | 21 +- ash/src/extensions/ext/metal_surface.rs | 27 +- ash/src/extensions/ext/pipeline_properties.rs | 28 +- ash/src/extensions/ext/private_data.rs | 27 +- ash/src/extensions/ext/sample_locations.rs | 42 +- ash/src/extensions/ext/shader_object.rs | 28 +- .../extensions/ext/swapchain_maintenance1.rs | 28 +- ash/src/extensions/ext/tooling_info.rs | 21 +- .../ext/vertex_input_dynamic_state.rs | 21 +- ash/src/extensions/google/display_timing.rs | 27 +- .../extensions/khr/acceleration_structure.rs | 27 +- ash/src/extensions/khr/android_surface.rs | 27 +- .../extensions/khr/buffer_device_address.rs | 28 +- .../extensions/khr/calibrated_timestamps.rs | 43 +- ash/src/extensions/khr/cooperative_matrix.rs | 22 +- ash/src/extensions/khr/copy_commands2.rs | 21 +- ash/src/extensions/khr/create_render_pass2.rs | 29 +- .../khr/deferred_host_operations.rs | 27 +- ash/src/extensions/khr/device_group.rs | 59 +- .../extensions/khr/device_group_creation.rs | 27 +- ash/src/extensions/khr/display.rs | 27 +- ash/src/extensions/khr/display_swapchain.rs | 28 +- ash/src/extensions/khr/draw_indirect_count.rs | 21 +- ash/src/extensions/khr/dynamic_rendering.rs | 21 +- .../khr/dynamic_rendering_local_read.rs | 21 +- ash/src/extensions/khr/external_fence_fd.rs | 27 +- .../extensions/khr/external_fence_win32.rs | 27 +- ash/src/extensions/khr/external_memory_fd.rs | 27 +- .../extensions/khr/external_memory_win32.rs | 27 +- .../extensions/khr/external_semaphore_fd.rs | 27 +- .../khr/external_semaphore_win32.rs | 27 +- .../khr/get_memory_requirements2.rs | 27 +- .../khr/get_physical_device_properties2.rs | 20 +- .../khr/get_surface_capabilities2.rs | 20 +- ash/src/extensions/khr/line_rasterization.rs | 21 +- ash/src/extensions/khr/maintenance1.rs | 28 +- ash/src/extensions/khr/maintenance3.rs | 28 +- ash/src/extensions/khr/maintenance4.rs | 27 +- ash/src/extensions/khr/maintenance5.rs | 33 +- ash/src/extensions/khr/maintenance6.rs | 22 +- ash/src/extensions/khr/performance_query.rs | 48 +- .../khr/pipeline_executable_properties.rs | 28 +- ash/src/extensions/khr/present_wait.rs | 28 +- ash/src/extensions/khr/push_descriptor.rs | 21 +- .../khr/ray_tracing_maintenance1.rs | 22 +- .../extensions/khr/ray_tracing_pipeline.rs | 28 +- .../khr/sampler_ycbcr_conversion.rs | 27 +- ash/src/extensions/khr/surface.rs | 27 +- ash/src/extensions/khr/swapchain.rs | 58 +- ash/src/extensions/khr/synchronization2.rs | 21 +- ash/src/extensions/khr/timeline_semaphore.rs | 27 +- ash/src/extensions/khr/wayland_surface.rs | 27 +- ash/src/extensions/khr/win32_surface.rs | 27 +- ash/src/extensions/khr/xcb_surface.rs | 27 +- ash/src/extensions/khr/xlib_surface.rs | 27 +- ash/src/extensions/mvk/ios_surface.rs | 27 +- ash/src/extensions/mvk/macos_surface.rs | 27 +- ash/src/extensions/nn/vi_surface.rs | 27 +- ash/src/extensions/nv/copy_memory_indirect.rs | 22 +- .../extensions/nv/coverage_reduction_mode.rs | 20 +- ash/src/extensions/nv/cuda_kernel_launch.rs | 27 +- .../nv/device_diagnostic_checkpoints.rs | 20 +- .../nv/device_generated_commands_compute.rs | 28 +- ash/src/extensions/nv/low_latency2.rs | 28 +- ash/src/extensions/nv/memory_decompression.rs | 21 +- ash/src/extensions/nv/mesh_shader.rs | 21 +- ash/src/extensions/nv/ray_tracing.rs | 27 +- ash/src/lib.rs | 3 +- ash/src/vk.rs | 3 +- ash/src/vk/extensions.rs | 4646 +++++++++++++++-- ash/src/vk/features.rs | 414 +- generator/src/lib.rs | 103 +- 96 files changed, 4625 insertions(+), 2984 deletions(-) diff --git a/ash-examples/src/lib.rs b/ash-examples/src/lib.rs index a8c159865..be2a0a03a 100644 --- a/ash-examples/src/lib.rs +++ b/ash-examples/src/lib.rs @@ -11,7 +11,7 @@ use std::{ borrow::Cow, cell::RefCell, default::Default, error::Error, ffi, ops::Drop, os::raw::c_char, }; -use ash::extensions::{ +use ash::vk::{ ext::debug_utils, khr::{surface, swapchain}, }; diff --git a/ash-window/examples/winit.rs b/ash-window/examples/winit.rs index 5ceb1e04b..e641dd7a2 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 = ash::extensions::khr::surface::Instance::new(&entry, &instance); + let surface_fn = vk::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 c6d17662d..bfab2f238 100644 --- a/ash-window/src/lib.rs +++ b/ash-window/src/lib.rs @@ -3,14 +3,15 @@ use std::os::raw::c_char; use ash::{ - extensions::{ + prelude::*, + vk, + vk::{ ext::metal_surface, khr::{ android_surface, surface, wayland_surface, win32_surface, xcb_surface, xlib_surface, }, }, - prelude::*, - vk, Entry, Instance, + Entry, Instance, }; use raw_window_handle::{RawDisplayHandle, RawWindowHandle}; diff --git a/ash/src/entry.rs b/ash/src/entry.rs index dfe138f3d..6148399a8 100644 --- a/ash/src/entry.rs +++ b/ash/src/entry.rs @@ -235,8 +235,8 @@ impl Entry { /// # Safety /// /// The resulting [`Instance`] and any function-pointer objects (e.g. [`Device`][crate::Device] - /// and [extensions][crate::extensions]) loaded from it may not be used after this [`Entry`] - /// object is dropped, unless it was crated using [`Entry::linked()`] or + /// and extensions like [`vk::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()`]. /// /// [`Instance`] does _not_ implement [drop][drop()] semantics and can only be destroyed via diff --git a/ash/src/extensions/amd/buffer_marker.rs b/ash/src/extensions/amd/buffer_marker.rs index c05cf5e76..f95ecb20b 100644 --- a/ash/src/extensions/amd/buffer_marker.rs +++ b/ash/src/extensions/amd/buffer_marker.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::amd::buffer_marker::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::amd::buffer_marker::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::amd::buffer_marker::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::amd::buffer_marker::Device { /// #[inline] pub unsafe fn cmd_write_buffer_marker( @@ -35,9 +21,4 @@ impl Device { marker, ) } - - #[inline] - pub fn fp(&self) -> &vk::amd::buffer_marker::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/amd/shader_info.rs b/ash/src/extensions/amd/shader_info.rs index e3f36e8aa..e573721a1 100644 --- a/ash/src/extensions/amd/shader_info.rs +++ b/ash/src/extensions/amd/shader_info.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -pub use vk::amd::shader_info::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::amd::shader_info::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::amd::shader_info::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::amd::shader_info::Device { /// #[inline] pub unsafe fn get_shader_info( @@ -64,16 +49,6 @@ impl Device { x => unimplemented!("ShaderInfoTypeAMD {}", x.0), } } - - #[inline] - pub fn fp(&self) -> &vk::amd::shader_info::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } #[derive(Clone)] diff --git a/ash/src/extensions/amdx/shader_enqueue.rs b/ash/src/extensions/amdx/shader_enqueue.rs index 6d792b514..ac800db08 100644 --- a/ash/src/extensions/amdx/shader_enqueue.rs +++ b/ash/src/extensions/amdx/shader_enqueue.rs @@ -5,23 +5,8 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::amdx::shader_enqueue::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::amdx::shader_enqueue::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::amdx::shader_enqueue::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::amdx::shader_enqueue::Device { /// #[inline] pub unsafe fn create_execution_graph_pipelines( @@ -116,14 +101,4 @@ impl Device { ) { (self.fp.cmd_dispatch_graph_indirect_count_amdx)(command_buffer, scratch, count_info) } - - #[inline] - pub fn fp(&self) -> &vk::amdx::shader_enqueue::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } 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 f9988545b..594cc6946 100644 --- a/ash/src/extensions/android/external_memory_android_hardware_buffer.rs +++ b/ash/src/extensions/android/external_memory_android_hardware_buffer.rs @@ -3,24 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::android::external_memory_android_hardware_buffer::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::android::external_memory_android_hardware_buffer::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = - vk::android::external_memory_android_hardware_buffer::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::android::external_memory_android_hardware_buffer::Device { /// #[inline] pub unsafe fn get_android_hardware_buffer_properties( @@ -42,14 +26,4 @@ impl Device { (self.fp.get_memory_android_hardware_buffer_android)(self.handle, info, buffer.as_mut_ptr()) .assume_init_on_success(buffer) } - - #[inline] - pub fn fp(&self) -> &vk::android::external_memory_android_hardware_buffer::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/acquire_drm_display.rs b/ash/src/extensions/ext/acquire_drm_display.rs index 5f82d9b7f..959c60ad9 100644 --- a/ash/src/extensions/ext/acquire_drm_display.rs +++ b/ash/src/extensions/ext/acquire_drm_display.rs @@ -3,22 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::ext::acquire_drm_display::NAME; - -#[derive(Clone)] -pub struct Instance { - fp: vk::ext::acquire_drm_display::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::acquire_drm_display::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::acquire_drm_display::Instance { /// #[inline] pub unsafe fn acquire_drm_display( @@ -42,9 +28,4 @@ impl Instance { (self.fp.get_drm_display_ext)(physical_device, drm_fd, connector_id, display.as_mut_ptr()) .assume_init_on_success(display) } - - #[inline] - pub fn fp(&self) -> &vk::ext::acquire_drm_display::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/buffer_device_address.rs b/ash/src/extensions/ext/buffer_device_address.rs index 2a6a08339..89d4cf540 100644 --- a/ash/src/extensions/ext/buffer_device_address.rs +++ b/ash/src/extensions/ext/buffer_device_address.rs @@ -1,24 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::buffer_device_address::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::buffer_device_address::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::buffer_device_address::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::buffer_device_address::Device { /// #[inline] pub unsafe fn get_buffer_device_address( @@ -27,14 +11,4 @@ impl Device { ) -> vk::DeviceAddress { (self.fp.get_buffer_device_address_ext)(self.handle, info) } - - #[inline] - pub fn fp(&self) -> &vk::ext::buffer_device_address::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/calibrated_timestamps.rs b/ash/src/extensions/ext/calibrated_timestamps.rs index 475eb5b39..52da074a8 100644 --- a/ash/src/extensions/ext/calibrated_timestamps.rs +++ b/ash/src/extensions/ext/calibrated_timestamps.rs @@ -4,24 +4,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -pub use vk::ext::calibrated_timestamps::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::calibrated_timestamps::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::calibrated_timestamps::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::calibrated_timestamps::Device { /// /// /// Returns a tuple containing `(timestamps, max_deviation)` @@ -43,33 +27,9 @@ impl Device { timestamps.set_len(info.len()); Ok((timestamps, max_deviation)) } - - #[inline] - pub fn fp(&self) -> &vk::ext::calibrated_timestamps::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } -} - -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::ext::calibrated_timestamps::InstanceFn, } -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::calibrated_timestamps::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } - +impl vk::ext::calibrated_timestamps::Instance { /// #[inline] pub unsafe fn get_physical_device_calibrateable_time_domains( @@ -84,9 +44,4 @@ impl Instance { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::ext::calibrated_timestamps::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/debug_marker.rs b/ash/src/extensions/ext/debug_marker.rs index 144c8b0ad..83697a794 100755 --- a/ash/src/extensions/ext/debug_marker.rs +++ b/ash/src/extensions/ext/debug_marker.rs @@ -2,24 +2,8 @@ use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::ext::debug_marker::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::debug_marker::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::debug_marker::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::debug_marker::Device { /// #[inline] pub unsafe fn debug_marker_set_object_name( @@ -54,14 +38,4 @@ impl Device { ) { (self.fp.cmd_debug_marker_insert_ext)(command_buffer, marker_info); } - - #[inline] - pub fn fp(&self) -> &vk::ext::debug_marker::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/debug_report.rs b/ash/src/extensions/ext/debug_report.rs index 6cdc24d82..077745f8a 100755 --- a/ash/src/extensions/ext/debug_report.rs +++ b/ash/src/extensions/ext/debug_report.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::ext::debug_report::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::ext::debug_report::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::debug_report::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::debug_report::Instance { /// #[inline] pub unsafe fn destroy_debug_report_callback( @@ -51,14 +36,4 @@ impl Instance { ) .assume_init_on_success(debug_cb) } - - #[inline] - pub fn fp(&self) -> &vk::ext::debug_report::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/ext/debug_utils.rs b/ash/src/extensions/ext/debug_utils.rs index 1cbabc137..fd8e3e8f8 100755 --- a/ash/src/extensions/ext/debug_utils.rs +++ b/ash/src/extensions/ext/debug_utils.rs @@ -4,24 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::ext::debug_utils::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::debug_utils::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::debug_utils::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::debug_utils::Device { /// #[inline] pub unsafe fn set_debug_utils_object_name( @@ -91,34 +75,9 @@ impl Device { ) { (self.fp.queue_insert_debug_utils_label_ext)(queue, label); } - - #[inline] - pub fn fp(&self) -> &vk::ext::debug_utils::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::ext::debug_utils::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::debug_utils::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } - +impl vk::ext::debug_utils::Instance { /// #[inline] pub unsafe fn create_debug_utils_messenger( @@ -161,14 +120,4 @@ impl Instance { callback_data, ); } - - #[inline] - pub fn fp(&self) -> &vk::ext::debug_utils::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/ext/descriptor_buffer.rs b/ash/src/extensions/ext/descriptor_buffer.rs index 19a1a4767..fc09c2730 100644 --- a/ash/src/extensions/ext/descriptor_buffer.rs +++ b/ash/src/extensions/ext/descriptor_buffer.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::ext::descriptor_buffer::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::descriptor_buffer::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::descriptor_buffer::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::descriptor_buffer::Device { /// #[inline] pub unsafe fn get_descriptor_set_layout_size( @@ -193,14 +178,4 @@ impl Device { ) .result() } - - #[inline] - pub fn fp(&self) -> &vk::ext::descriptor_buffer::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/extended_dynamic_state.rs b/ash/src/extensions/ext/extended_dynamic_state.rs index 6928d0a47..fa212e51d 100644 --- a/ash/src/extensions/ext/extended_dynamic_state.rs +++ b/ash/src/extensions/ext/extended_dynamic_state.rs @@ -1,23 +1,9 @@ //! use crate::vk; -use core::mem; use core::ptr; -pub use vk::ext::extended_dynamic_state::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::ext::extended_dynamic_state::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::ext::extended_dynamic_state::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::extended_dynamic_state::Device { /// #[inline] pub unsafe fn cmd_set_cull_mode( @@ -184,9 +170,4 @@ impl Device { compare_op, ) } - - #[inline] - pub fn fp(&self) -> &vk::ext::extended_dynamic_state::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/extended_dynamic_state2.rs b/ash/src/extensions/ext/extended_dynamic_state2.rs index ac10cd02d..fc28de45c 100644 --- a/ash/src/extensions/ext/extended_dynamic_state2.rs +++ b/ash/src/extensions/ext/extended_dynamic_state2.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::extended_dynamic_state2::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::ext::extended_dynamic_state2::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::ext::extended_dynamic_state2::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::extended_dynamic_state2::Device { /// #[inline] pub unsafe fn cmd_set_patch_control_points( @@ -72,9 +58,4 @@ impl Device { primitive_restart_enable.into(), ) } - - #[inline] - pub fn fp(&self) -> &vk::ext::extended_dynamic_state2::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/extended_dynamic_state3.rs b/ash/src/extensions/ext/extended_dynamic_state3.rs index d9f283343..858bd7d2a 100644 --- a/ash/src/extensions/ext/extended_dynamic_state3.rs +++ b/ash/src/extensions/ext/extended_dynamic_state3.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::extended_dynamic_state3::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::ext::extended_dynamic_state3::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::ext::extended_dynamic_state3::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::extended_dynamic_state3::Device { /// #[inline] pub unsafe fn cmd_set_tessellation_domain_origin( @@ -396,9 +382,4 @@ impl Device { ) { (self.fp.cmd_set_coverage_reduction_mode_nv)(command_buffer, coverage_reduction_mode) } - - #[inline] - pub fn fp(&self) -> &vk::ext::extended_dynamic_state3::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/full_screen_exclusive.rs b/ash/src/extensions/ext/full_screen_exclusive.rs index eb20135b2..ebe596d6c 100644 --- a/ash/src/extensions/ext/full_screen_exclusive.rs +++ b/ash/src/extensions/ext/full_screen_exclusive.rs @@ -4,24 +4,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -pub use vk::ext::full_screen_exclusive::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::full_screen_exclusive::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::full_screen_exclusive::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::full_screen_exclusive::Device { /// #[inline] pub unsafe fn acquire_full_screen_exclusive_mode( @@ -54,33 +38,9 @@ impl Device { ) .assume_init_on_success(present_modes) } - - #[inline] - pub fn fp(&self) -> &vk::ext::full_screen_exclusive::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } -} - -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::ext::full_screen_exclusive::InstanceFn, } -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::full_screen_exclusive::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } - +impl vk::ext::full_screen_exclusive::Instance { /// #[inline] pub unsafe fn get_physical_device_surface_present_modes2( @@ -97,9 +57,4 @@ impl Instance { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::ext::full_screen_exclusive::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/hdr_metadata.rs b/ash/src/extensions/ext/hdr_metadata.rs index e6f12ae84..c44b05c6f 100644 --- a/ash/src/extensions/ext/hdr_metadata.rs +++ b/ash/src/extensions/ext/hdr_metadata.rs @@ -1,24 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::hdr_metadata::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::hdr_metadata::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::hdr_metadata::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::hdr_metadata::Device { /// #[inline] pub unsafe fn set_hdr_metadata( @@ -34,14 +18,4 @@ impl Device { metadata.as_ptr(), ) } - - #[inline] - pub fn fp(&self) -> &vk::ext::hdr_metadata::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/headless_surface.rs b/ash/src/extensions/ext/headless_surface.rs index 023e048dd..68fe9439b 100644 --- a/ash/src/extensions/ext/headless_surface.rs +++ b/ash/src/extensions/ext/headless_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::ext::headless_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::ext::headless_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::headless_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::headless_surface::Instance { /// #[inline] pub unsafe fn create_headless_surface( @@ -37,14 +22,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::ext::headless_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/ext/host_image_copy.rs b/ash/src/extensions/ext/host_image_copy.rs index 9e0eb4f5d..6af4caa62 100644 --- a/ash/src/extensions/ext/host_image_copy.rs +++ b/ash/src/extensions/ext/host_image_copy.rs @@ -1,27 +1,9 @@ //! -#[cfg(doc)] -use super::{super::khr::maintenance5, image_compression_control}; use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::ext::host_image_copy::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::host_image_copy::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::host_image_copy::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::host_image_copy::Device { /// #[inline] pub unsafe fn copy_memory_to_image( @@ -65,10 +47,10 @@ impl Device { /// /// - /// Also available as [`maintenance5::Device::get_image_subresource_layout2()`] + /// Also available as [`vk::khr::maintenance5::Device::get_image_subresource_layout2()`] /// when [`VK_KHR_maintenance5`] is enabled. /// - /// Also available as [`image_compression_control::Device::get_image_subresource_layout2()`] + /// Also available as [`vk::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 @@ -82,14 +64,4 @@ impl Device { ) { (self.fp.get_image_subresource_layout2_ext)(self.handle, image, subresource, layout) } - - #[inline] - pub fn fp(&self) -> &vk::ext::host_image_copy::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/image_compression_control.rs b/ash/src/extensions/ext/image_compression_control.rs index e1293b656..a849cf0a1 100644 --- a/ash/src/extensions/ext/image_compression_control.rs +++ b/ash/src/extensions/ext/image_compression_control.rs @@ -1,32 +1,14 @@ //! -#[cfg(doc)] -use super::{super::khr::maintenance5, host_image_copy}; use crate::vk; -use core::mem; -pub use vk::ext::image_compression_control::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::image_compression_control::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::image_compression_control::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::image_compression_control::Device { /// /// - /// Also available as [`maintenance5::Device::get_image_subresource_layout2()`] + /// Also available as [`vk::khr::maintenance5::Device::get_image_subresource_layout2()`] /// when [`VK_KHR_maintenance5`] is enabled. /// - /// Also available as [`host_image_copy::Device::get_image_subresource_layout2()`] + /// Also available as [`vk::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 @@ -40,14 +22,4 @@ impl Device { ) { (self.fp.get_image_subresource_layout2_ext)(self.handle, image, subresource, layout) } - - #[inline] - pub fn fp(&self) -> &vk::ext::image_compression_control::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/image_drm_format_modifier.rs b/ash/src/extensions/ext/image_drm_format_modifier.rs index 558581a68..e6233177e 100644 --- a/ash/src/extensions/ext/image_drm_format_modifier.rs +++ b/ash/src/extensions/ext/image_drm_format_modifier.rs @@ -2,24 +2,8 @@ use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::ext::image_drm_format_modifier::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::image_drm_format_modifier::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::image_drm_format_modifier::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::image_drm_format_modifier::Device { /// #[inline] pub unsafe fn get_image_drm_format_modifier_properties( @@ -30,14 +14,4 @@ impl Device { (self.fp.get_image_drm_format_modifier_properties_ext)(self.handle, image, properties) .result() } - - #[inline] - pub fn fp(&self) -> &vk::ext::image_drm_format_modifier::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/mesh_shader.rs b/ash/src/extensions/ext/mesh_shader.rs index 2440fd4a0..a87451eee 100644 --- a/ash/src/extensions/ext/mesh_shader.rs +++ b/ash/src/extensions/ext/mesh_shader.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::mesh_shader::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::ext::mesh_shader::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::ext::mesh_shader::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::mesh_shader::Device { /// #[inline] pub unsafe fn cmd_draw_mesh_tasks( @@ -81,9 +67,4 @@ impl Device { stride, ) } - - #[inline] - pub fn fp(&self) -> &vk::ext::mesh_shader::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/metal_surface.rs b/ash/src/extensions/ext/metal_surface.rs index 3a7cf84ce..e11730c3d 100644 --- a/ash/src/extensions/ext/metal_surface.rs +++ b/ash/src/extensions/ext/metal_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::ext::metal_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::ext::metal_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::ext::metal_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::metal_surface::Instance { /// #[inline] pub unsafe fn create_metal_surface( @@ -37,14 +22,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::ext::metal_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/ext/pipeline_properties.rs b/ash/src/extensions/ext/pipeline_properties.rs index c6e3cebbe..e8603b55b 100644 --- a/ash/src/extensions/ext/pipeline_properties.rs +++ b/ash/src/extensions/ext/pipeline_properties.rs @@ -2,24 +2,8 @@ use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::ext::pipeline_properties::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::pipeline_properties::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::pipeline_properties::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::pipeline_properties::Device { /// #[inline] pub unsafe fn get_pipeline_properties( @@ -34,14 +18,4 @@ impl Device { ) .result() } - - #[inline] - pub fn fp(&self) -> &vk::ext::pipeline_properties::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/private_data.rs b/ash/src/extensions/ext/private_data.rs index 4dbafc700..1181bd4b1 100644 --- a/ash/src/extensions/ext/private_data.rs +++ b/ash/src/extensions/ext/private_data.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::ext::private_data::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::private_data::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::private_data::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::private_data::Device { /// #[inline] pub unsafe fn create_private_data_slot( @@ -87,14 +72,4 @@ impl Device { ); data.assume_init() } - - #[inline] - pub fn fp(&self) -> &vk::ext::private_data::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/sample_locations.rs b/ash/src/extensions/ext/sample_locations.rs index 116858505..df699f8e6 100644 --- a/ash/src/extensions/ext/sample_locations.rs +++ b/ash/src/extensions/ext/sample_locations.rs @@ -1,23 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::sample_locations::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - fp: vk::ext::sample_locations::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::ext::sample_locations::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::sample_locations::Device { /// #[inline] pub unsafe fn cmd_set_sample_locations( @@ -27,27 +12,9 @@ impl Device { ) { (self.fp.cmd_set_sample_locations_ext)(command_buffer, sample_locations_info) } - - #[inline] - pub fn fp(&self) -> &vk::ext::sample_locations::DeviceFn { - &self.fp - } } -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::ext::sample_locations::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::ext::sample_locations::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } - +impl vk::ext::sample_locations::Instance { /// #[inline] pub unsafe fn get_physical_device_multisample_properties( @@ -62,9 +29,4 @@ impl Instance { multisample_properties, ) } - - #[inline] - pub fn fp(&self) -> &vk::ext::sample_locations::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/shader_object.rs b/ash/src/extensions/ext/shader_object.rs index c9b6cb685..5416080e7 100644 --- a/ash/src/extensions/ext/shader_object.rs +++ b/ash/src/extensions/ext/shader_object.rs @@ -4,25 +4,9 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use alloc::vec::Vec; -use core::mem; use core::ptr; -pub use vk::ext::shader_object::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::shader_object::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::shader_object::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::shader_object::Device { /// #[inline] pub unsafe fn create_shaders( @@ -701,14 +685,4 @@ impl Device { ) { (self.fp.cmd_set_coverage_reduction_mode_nv)(command_buffer, coverage_reduction_mode) } - - #[inline] - pub fn fp(&self) -> &vk::ext::shader_object::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/swapchain_maintenance1.rs b/ash/src/extensions/ext/swapchain_maintenance1.rs index 8a0be08e6..42f7a6e62 100644 --- a/ash/src/extensions/ext/swapchain_maintenance1.rs +++ b/ash/src/extensions/ext/swapchain_maintenance1.rs @@ -2,24 +2,8 @@ use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::ext::swapchain_maintenance1::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::ext::swapchain_maintenance1::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::ext::swapchain_maintenance1::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::ext::swapchain_maintenance1::Device { /// #[inline] pub unsafe fn release_swapchain_images( @@ -28,14 +12,4 @@ impl Device { ) -> VkResult<()> { (self.fp.release_swapchain_images_ext)(self.handle, release_info).result() } - - #[inline] - pub fn fp(&self) -> &vk::ext::swapchain_maintenance1::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/ext/tooling_info.rs b/ash/src/extensions/ext/tooling_info.rs index dc483f672..592f1aaa7 100644 --- a/ash/src/extensions/ext/tooling_info.rs +++ b/ash/src/extensions/ext/tooling_info.rs @@ -3,22 +3,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; -use core::mem; -pub use vk::ext::tooling_info::NAME; - -#[derive(Clone)] -pub struct Instance { - fp: vk::ext::tooling_info::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::ext::tooling_info::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::tooling_info::Instance { /// #[inline] pub unsafe fn get_physical_device_tool_properties( @@ -29,9 +15,4 @@ impl Instance { (self.fp.get_physical_device_tool_properties_ext)(physical_device, count, data) }) } - - #[inline] - pub fn fp(&self) -> &vk::ext::tooling_info::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/ext/vertex_input_dynamic_state.rs b/ash/src/extensions/ext/vertex_input_dynamic_state.rs index 8e255c585..796b81bdc 100644 --- a/ash/src/extensions/ext/vertex_input_dynamic_state.rs +++ b/ash/src/extensions/ext/vertex_input_dynamic_state.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::ext::vertex_input_dynamic_state::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::ext::vertex_input_dynamic_state::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::ext::vertex_input_dynamic_state::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::ext::vertex_input_dynamic_state::Device { /// #[inline] pub unsafe fn cmd_set_vertex_input( @@ -33,9 +19,4 @@ impl Device { vertex_attribute_descriptions.as_ptr(), ) } - - #[inline] - pub fn fp(&self) -> &vk::ext::vertex_input_dynamic_state::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/google/display_timing.rs b/ash/src/extensions/google/display_timing.rs index dbedfc80d..b95437da1 100644 --- a/ash/src/extensions/google/display_timing.rs +++ b/ash/src/extensions/google/display_timing.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -pub use vk::google::display_timing::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::google::display_timing::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::google::display_timing::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::google::display_timing::Device { /// #[inline] pub unsafe fn get_past_presentation_timing( @@ -42,14 +27,4 @@ impl Device { (self.fp.get_refresh_cycle_duration_google)(self.handle, swapchain, properties.as_mut_ptr()) .assume_init_on_success(properties) } - - #[inline] - pub fn fp(&self) -> &vk::google::display_timing::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/acceleration_structure.rs b/ash/src/extensions/khr/acceleration_structure.rs index 39468543f..07c4e7069 100644 --- a/ash/src/extensions/khr/acceleration_structure.rs +++ b/ash/src/extensions/khr/acceleration_structure.rs @@ -5,23 +5,8 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::khr::acceleration_structure::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::acceleration_structure::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::acceleration_structure::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::acceleration_structure::Device { /// #[inline] pub unsafe fn create_acceleration_structure( @@ -288,14 +273,4 @@ impl Device { size_info, ) } - - #[inline] - pub fn fp(&self) -> &vk::khr::acceleration_structure::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/android_surface.rs b/ash/src/extensions/khr/android_surface.rs index c0ae280eb..dcf54707d 100755 --- a/ash/src/extensions/khr/android_surface.rs +++ b/ash/src/extensions/khr/android_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::android_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::android_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::android_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::android_surface::Instance { /// #[inline] pub unsafe fn create_android_surface( @@ -37,14 +22,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::khr::android_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/buffer_device_address.rs b/ash/src/extensions/khr/buffer_device_address.rs index 5db3207ff..be260f895 100644 --- a/ash/src/extensions/khr/buffer_device_address.rs +++ b/ash/src/extensions/khr/buffer_device_address.rs @@ -1,24 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::buffer_device_address::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::buffer_device_address::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::buffer_device_address::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::buffer_device_address::Device { /// #[inline] pub unsafe fn get_buffer_device_address( @@ -45,14 +29,4 @@ impl Device { ) -> u64 { (self.fp.get_device_memory_opaque_capture_address_khr)(self.handle, info) } - - #[inline] - pub fn fp(&self) -> &vk::khr::buffer_device_address::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/calibrated_timestamps.rs b/ash/src/extensions/khr/calibrated_timestamps.rs index fc8f31ff6..7cc6b9290 100644 --- a/ash/src/extensions/khr/calibrated_timestamps.rs +++ b/ash/src/extensions/khr/calibrated_timestamps.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -pub use vk::khr::calibrated_timestamps::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - fp: vk::khr::calibrated_timestamps::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::calibrated_timestamps::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::calibrated_timestamps::Device { /// /// /// Returns a tuple containing `(timestamps, max_deviation)` @@ -43,28 +28,9 @@ impl Device { timestamps.set_len(info.len()); Ok((timestamps, max_deviation)) } - - #[inline] - pub fn fp(&self) -> &vk::khr::calibrated_timestamps::DeviceFn { - &self.fp - } } -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::calibrated_timestamps::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::calibrated_timestamps::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } - +impl vk::khr::calibrated_timestamps::Instance { /// #[inline] pub unsafe fn get_physical_device_calibrateable_time_domains( @@ -79,9 +45,4 @@ impl Instance { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::khr::calibrated_timestamps::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/cooperative_matrix.rs b/ash/src/extensions/khr/cooperative_matrix.rs index 388e99357..1524e1de1 100644 --- a/ash/src/extensions/khr/cooperative_matrix.rs +++ b/ash/src/extensions/khr/cooperative_matrix.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; -use core::mem; -pub use vk::khr::cooperative_matrix::NAME; - -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::cooperative_matrix::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::cooperative_matrix::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::cooperative_matrix::Instance { /// #[inline] pub unsafe fn get_physical_device_cooperative_matrix_properties( @@ -36,9 +21,4 @@ impl Instance { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::khr::cooperative_matrix::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/copy_commands2.rs b/ash/src/extensions/khr/copy_commands2.rs index a3daa5e55..c2a47b531 100644 --- a/ash/src/extensions/khr/copy_commands2.rs +++ b/ash/src/extensions/khr/copy_commands2.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::copy_commands2::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::copy_commands2::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::copy_commands2::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::copy_commands2::Device { /// #[inline] pub unsafe fn cmd_copy_buffer2( @@ -71,9 +57,4 @@ impl Device { ) { (self.fp.cmd_resolve_image2_khr)(command_buffer, resolve_image_info) } - - #[inline] - pub fn fp(&self) -> &vk::khr::copy_commands2::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/create_render_pass2.rs b/ash/src/extensions/khr/create_render_pass2.rs index fa3615573..f85b7e00d 100644 --- a/ash/src/extensions/khr/create_render_pass2.rs +++ b/ash/src/extensions/khr/create_render_pass2.rs @@ -1,26 +1,11 @@ -//! +//! use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::create_renderpass2::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::create_renderpass2::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::create_renderpass2::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::create_renderpass2::Device { /// #[inline] pub unsafe fn create_render_pass2( @@ -73,14 +58,4 @@ impl Device { ) { (self.fp.cmd_end_render_pass2_khr)(command_buffer, subpass_end_info); } - - #[inline] - pub fn fp(&self) -> &vk::khr::create_renderpass2::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/deferred_host_operations.rs b/ash/src/extensions/khr/deferred_host_operations.rs index b6f30ee6f..a84631512 100644 --- a/ash/src/extensions/khr/deferred_host_operations.rs +++ b/ash/src/extensions/khr/deferred_host_operations.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::deferred_host_operations::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::deferred_host_operations::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::deferred_host_operations::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::deferred_host_operations::Device { /// #[inline] pub unsafe fn create_deferred_operation( @@ -76,14 +61,4 @@ impl Device { ) -> VkResult<()> { (self.fp.get_deferred_operation_result_khr)(self.handle, operation).result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::deferred_host_operations::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/device_group.rs b/ash/src/extensions/khr/device_group.rs index 48c3bc075..9f1278fc1 100644 --- a/ash/src/extensions/khr/device_group.rs +++ b/ash/src/extensions/khr/device_group.rs @@ -1,29 +1,11 @@ //! -#[cfg(doc)] -use super::swapchain; use crate::prelude::*; use crate::vk; use alloc::vec::Vec; use core::mem; -pub use vk::khr::device_group::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::device_group::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::device_group::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::device_group::Device { /// #[inline] pub unsafe fn get_device_group_peer_memory_features( @@ -70,7 +52,7 @@ impl Device { /// Requires [`VK_KHR_surface`] to be enabled. /// - /// Also available as [`swapchain::Device::get_device_group_present_capabilities()`] since [Vulkan 1.1]. + /// Also available as [`vk::khr::swapchain::Device::get_device_group_present_capabilities()`] since [Vulkan 1.1]. /// /// /// @@ -90,7 +72,7 @@ impl Device { /// Requires [`VK_KHR_surface`] to be enabled. /// - /// Also available as [`swapchain::Device::get_device_group_surface_present_modes()`] since [Vulkan 1.1]. + /// Also available as [`vk::khr::swapchain::Device::get_device_group_surface_present_modes()`] since [Vulkan 1.1]. /// /// /// @@ -114,7 +96,7 @@ impl Device { /// /// Requires [`VK_KHR_swapchain`] to be enabled. /// - /// Also available as [`swapchain::Device::acquire_next_image2()`] since [Vulkan 1.1]. + /// Also available as [`vk::khr::swapchain::Device::acquire_next_image2()`] since [Vulkan 1.1]. /// /// /// @@ -134,36 +116,12 @@ impl Device { _ => Err(err_code), } } - - #[inline] - pub fn fp(&self) -> &vk::khr::device_group::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } -} - -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::device_group::InstanceFn, } -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::device_group::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } - +impl vk::khr::device_group::Instance { /// Requires [`VK_KHR_surface`] to be enabled. /// - /// Also available as [`swapchain::Instance::get_physical_device_present_rectangles()`] since [Vulkan 1.1]. + /// Also available as [`vk::khr::swapchain::Instance::get_physical_device_present_rectangles()`] since [Vulkan 1.1]. /// /// /// @@ -184,9 +142,4 @@ impl Instance { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::khr::device_group::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/device_group_creation.rs b/ash/src/extensions/khr/device_group_creation.rs index 9233cbb35..fbcd8ef7b 100644 --- a/ash/src/extensions/khr/device_group_creation.rs +++ b/ash/src/extensions/khr/device_group_creation.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use core::mem; use core::ptr; -pub use vk::khr::device_group_creation::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::device_group_creation::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::device_group_creation::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::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 { @@ -49,14 +34,4 @@ impl Instance { assert_eq!(count as usize, out.len()); Ok(()) } - - #[inline] - pub fn fp(&self) -> &vk::khr::device_group_creation::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/display.rs b/ash/src/extensions/khr/display.rs index baa97fe4a..79d1ff704 100755 --- a/ash/src/extensions/khr/display.rs +++ b/ash/src/extensions/khr/display.rs @@ -5,23 +5,8 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::khr::display::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::display::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::display::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::display::Instance { /// #[inline] pub unsafe fn get_physical_device_display_properties( @@ -127,14 +112,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::khr::display::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/display_swapchain.rs b/ash/src/extensions/khr/display_swapchain.rs index 8a6e8d94c..eef4ec7ba 100755 --- a/ash/src/extensions/khr/display_swapchain.rs +++ b/ash/src/extensions/khr/display_swapchain.rs @@ -4,24 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use alloc::vec::Vec; -use core::mem; -pub use vk::khr::display_swapchain::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::display_swapchain::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::display_swapchain::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::display_swapchain::Device { /// #[inline] pub unsafe fn create_shared_swapchains( @@ -39,14 +23,4 @@ impl Device { ) .set_vec_len_on_success(swapchains, create_infos.len()) } - - #[inline] - pub fn fp(&self) -> &vk::khr::display_swapchain::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/draw_indirect_count.rs b/ash/src/extensions/khr/draw_indirect_count.rs index 451363694..d137da3c3 100644 --- a/ash/src/extensions/khr/draw_indirect_count.rs +++ b/ash/src/extensions/khr/draw_indirect_count.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::draw_indirect_count::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::draw_indirect_count::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::draw_indirect_count::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::draw_indirect_count::Device { /// #[inline] pub unsafe fn cmd_draw_indexed_indirect_count( @@ -62,9 +48,4 @@ impl Device { stride, ); } - - #[inline] - pub fn fp(&self) -> &vk::khr::draw_indirect_count::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/dynamic_rendering.rs b/ash/src/extensions/khr/dynamic_rendering.rs index 2988dd2d2..3bf81dc8c 100644 --- a/ash/src/extensions/khr/dynamic_rendering.rs +++ b/ash/src/extensions/khr/dynamic_rendering.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::dynamic_rendering::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::dynamic_rendering::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::dynamic_rendering::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::dynamic_rendering::Device { /// #[inline] pub unsafe fn cmd_begin_rendering( @@ -32,9 +18,4 @@ impl Device { pub unsafe fn cmd_end_rendering(&self, command_buffer: vk::CommandBuffer) { (self.fp.cmd_end_rendering_khr)(command_buffer) } - - #[inline] - pub fn fp(&self) -> &vk::khr::dynamic_rendering::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/dynamic_rendering_local_read.rs b/ash/src/extensions/khr/dynamic_rendering_local_read.rs index 116afb1c5..5586785cb 100644 --- a/ash/src/extensions/khr/dynamic_rendering_local_read.rs +++ b/ash/src/extensions/khr/dynamic_rendering_local_read.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::dynamic_rendering_local_read::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::dynamic_rendering_local_read::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::dynamic_rendering_local_read::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::dynamic_rendering_local_read::Device { /// #[inline] pub unsafe fn cmd_set_rendering_attachment_locations( @@ -36,9 +22,4 @@ impl Device { ) { (self.fp.cmd_set_rendering_input_attachment_indices_khr)(command_buffer, location_info) } - - #[inline] - pub fn fp(&self) -> &vk::khr::dynamic_rendering_local_read::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/external_fence_fd.rs b/ash/src/extensions/khr/external_fence_fd.rs index 5fbf5d0e9..612ad0a1d 100644 --- a/ash/src/extensions/khr/external_fence_fd.rs +++ b/ash/src/extensions/khr/external_fence_fd.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::external_fence_fd::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::external_fence_fd::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::external_fence_fd::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::external_fence_fd::Device { /// #[inline] pub unsafe fn import_fence_fd( @@ -36,14 +21,4 @@ impl Device { (self.fp.get_fence_fd_khr)(self.handle, get_info, fd.as_mut_ptr()) .assume_init_on_success(fd) } - - #[inline] - pub fn fp(&self) -> &vk::khr::external_fence_fd::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/external_fence_win32.rs b/ash/src/extensions/khr/external_fence_win32.rs index faaf549de..edd87382b 100644 --- a/ash/src/extensions/khr/external_fence_win32.rs +++ b/ash/src/extensions/khr/external_fence_win32.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::external_fence_win32::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::external_fence_win32::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::external_fence_win32::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::external_fence_win32::Device { /// #[inline] pub unsafe fn import_fence_win32_handle( @@ -39,14 +24,4 @@ impl Device { (self.fp.get_fence_win32_handle_khr)(self.handle, get_info, handle.as_mut_ptr()) .assume_init_on_success(handle) } - - #[inline] - pub fn fp(&self) -> &vk::khr::external_fence_win32::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/external_memory_fd.rs b/ash/src/extensions/khr/external_memory_fd.rs index a053570af..5035502e3 100644 --- a/ash/src/extensions/khr/external_memory_fd.rs +++ b/ash/src/extensions/khr/external_memory_fd.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::external_memory_fd::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::external_memory_fd::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::external_memory_fd::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::external_memory_fd::Device { /// #[inline] pub unsafe fn get_memory_fd(&self, get_fd_info: &vk::MemoryGetFdInfoKHR<'_>) -> VkResult { @@ -39,14 +24,4 @@ impl Device { (self.fp.get_memory_fd_properties_khr)(self.handle, handle_type, fd, memory_fd_properties) .result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::external_memory_fd::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/external_memory_win32.rs b/ash/src/extensions/khr/external_memory_win32.rs index 974a57562..2a76bd213 100644 --- a/ash/src/extensions/khr/external_memory_win32.rs +++ b/ash/src/extensions/khr/external_memory_win32.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::external_memory_win32::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::external_memory_win32::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::external_memory_win32::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::external_memory_win32::Device { /// #[inline] pub unsafe fn get_memory_win32_handle( @@ -47,14 +32,4 @@ impl Device { ) .result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::external_memory_win32::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/external_semaphore_fd.rs b/ash/src/extensions/khr/external_semaphore_fd.rs index 62d2a25a0..8883130c7 100644 --- a/ash/src/extensions/khr/external_semaphore_fd.rs +++ b/ash/src/extensions/khr/external_semaphore_fd.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::external_semaphore_fd::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::external_semaphore_fd::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::external_semaphore_fd::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::external_semaphore_fd::Device { /// #[inline] pub unsafe fn import_semaphore_fd( @@ -39,14 +24,4 @@ impl Device { (self.fp.get_semaphore_fd_khr)(self.handle, get_info, fd.as_mut_ptr()) .assume_init_on_success(fd) } - - #[inline] - pub fn fp(&self) -> &vk::khr::external_semaphore_fd::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/external_semaphore_win32.rs b/ash/src/extensions/khr/external_semaphore_win32.rs index 9c9d178c4..dcedd02c2 100644 --- a/ash/src/extensions/khr/external_semaphore_win32.rs +++ b/ash/src/extensions/khr/external_semaphore_win32.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::external_semaphore_win32::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::external_semaphore_win32::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::external_semaphore_win32::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::external_semaphore_win32::Device { /// #[inline] pub unsafe fn import_semaphore_win32_handle( @@ -39,14 +24,4 @@ impl Device { (self.fp.get_semaphore_win32_handle_khr)(self.handle, get_info, handle.as_mut_ptr()) .assume_init_on_success(handle) } - - #[inline] - pub fn fp(&self) -> &vk::khr::external_semaphore_win32::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/get_memory_requirements2.rs b/ash/src/extensions/khr/get_memory_requirements2.rs index 56b089176..60a959184 100644 --- a/ash/src/extensions/khr/get_memory_requirements2.rs +++ b/ash/src/extensions/khr/get_memory_requirements2.rs @@ -3,23 +3,8 @@ use crate::vk; use core::mem; use core::ptr; -pub use vk::khr::get_memory_requirements2::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::get_memory_requirements2::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::get_memory_requirements2::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::get_memory_requirements2::Device { /// #[inline] pub unsafe fn get_buffer_memory_requirements2( @@ -75,14 +60,4 @@ impl Device { ); assert_eq!(count as usize, out.len()); } - - #[inline] - pub fn fp(&self) -> &vk::khr::get_memory_requirements2::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/get_physical_device_properties2.rs b/ash/src/extensions/khr/get_physical_device_properties2.rs index 2a49c10f7..0c363d735 100644 --- a/ash/src/extensions/khr/get_physical_device_properties2.rs +++ b/ash/src/extensions/khr/get_physical_device_properties2.rs @@ -4,21 +4,8 @@ use crate::prelude::*; use crate::vk; use core::mem; use core::ptr; -pub use vk::khr::get_physical_device_properties2::NAME; - -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::get_physical_device_properties2::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::khr::get_physical_device_properties2::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::get_physical_device_properties2::Instance { /// #[inline] pub unsafe fn get_physical_device_features2( @@ -155,9 +142,4 @@ impl Instance { ); assert_eq!(count as usize, out.len()); } - - #[inline] - pub fn fp(&self) -> &vk::khr::get_physical_device_properties2::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/get_surface_capabilities2.rs b/ash/src/extensions/khr/get_surface_capabilities2.rs index 744c9c996..5c8577d4e 100644 --- a/ash/src/extensions/khr/get_surface_capabilities2.rs +++ b/ash/src/extensions/khr/get_surface_capabilities2.rs @@ -4,21 +4,8 @@ use crate::prelude::*; use crate::vk; use core::mem; use core::ptr; -pub use vk::khr::get_surface_capabilities2::NAME; - -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::get_surface_capabilities2::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::khr::get_surface_capabilities2::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::get_surface_capabilities2::Instance { /// #[inline] pub unsafe fn get_physical_device_surface_capabilities2( @@ -73,9 +60,4 @@ impl Instance { assert_eq!(count as usize, out.len()); err_code.result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::get_surface_capabilities2::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/line_rasterization.rs b/ash/src/extensions/khr/line_rasterization.rs index 14e02dfb7..758bb40ad 100644 --- a/ash/src/extensions/khr/line_rasterization.rs +++ b/ash/src/extensions/khr/line_rasterization.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::line_rasterization::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::line_rasterization::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::line_rasterization::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::line_rasterization::Device { /// #[inline] pub unsafe fn cmd_set_line_stipple( @@ -31,9 +17,4 @@ impl Device { line_stipple_pattern, ) } - - #[inline] - pub fn fp(&self) -> &vk::khr::line_rasterization::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/maintenance1.rs b/ash/src/extensions/khr/maintenance1.rs index f2983110f..01d85789e 100644 --- a/ash/src/extensions/khr/maintenance1.rs +++ b/ash/src/extensions/khr/maintenance1.rs @@ -1,24 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::maintenance1::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::maintenance1::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::maintenance1::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::maintenance1::Device { /// #[inline] pub unsafe fn trim_command_pool( @@ -28,14 +12,4 @@ impl Device { ) { (self.fp.trim_command_pool_khr)(self.handle, command_pool, flags); } - - #[inline] - pub fn fp(&self) -> &vk::khr::maintenance1::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/maintenance3.rs b/ash/src/extensions/khr/maintenance3.rs index 03cf0d8aa..6b8016b25 100644 --- a/ash/src/extensions/khr/maintenance3.rs +++ b/ash/src/extensions/khr/maintenance3.rs @@ -1,24 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::maintenance3::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::maintenance3::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::maintenance3::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::maintenance3::Device { /// #[inline] pub unsafe fn get_descriptor_set_layout_support( @@ -28,14 +12,4 @@ impl Device { ) { (self.fp.get_descriptor_set_layout_support_khr)(self.handle, create_info, out); } - - #[inline] - pub fn fp(&self) -> &vk::khr::maintenance3::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/maintenance4.rs b/ash/src/extensions/khr/maintenance4.rs index c8751d907..57a042460 100644 --- a/ash/src/extensions/khr/maintenance4.rs +++ b/ash/src/extensions/khr/maintenance4.rs @@ -3,23 +3,8 @@ use crate::vk; use core::mem; use core::ptr; -pub use vk::khr::maintenance4::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::maintenance4::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::maintenance4::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::maintenance4::Device { /// #[inline] pub unsafe fn get_device_buffer_memory_requirements( @@ -75,14 +60,4 @@ impl Device { ); assert_eq!(count as usize, out.len()); } - - #[inline] - pub fn fp(&self) -> &vk::khr::maintenance4::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/maintenance5.rs b/ash/src/extensions/khr/maintenance5.rs index 8b7ab72b7..fdd57066d 100644 --- a/ash/src/extensions/khr/maintenance5.rs +++ b/ash/src/extensions/khr/maintenance5.rs @@ -1,26 +1,9 @@ //! -#[cfg(doc)] -use super::super::ext::{host_image_copy, image_compression_control}; use crate::vk; use core::mem; -pub use vk::khr::maintenance5::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::maintenance5::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::maintenance5::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::maintenance5::Device { /// #[inline] pub unsafe fn cmd_bind_index_buffer2( @@ -61,10 +44,10 @@ impl Device { /// /// - /// Also available as [`host_image_copy::Device::get_image_subresource_layout2()`] + /// Also available as [`vk::ext::host_image_copy::Device::get_image_subresource_layout2()`] /// when [`VK_EXT_host_image_copy`] is enabled. /// - /// Also available as [`image_compression_control::Device::get_image_subresource_layout2()`] + /// Also available as [`vk::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 @@ -78,14 +61,4 @@ impl Device { ) { (self.fp.get_image_subresource_layout2_khr)(self.handle, image, subresource, layout) } - - #[inline] - pub fn fp(&self) -> &vk::khr::maintenance5::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/maintenance6.rs b/ash/src/extensions/khr/maintenance6.rs index f7e3a4cba..de50e2224 100644 --- a/ash/src/extensions/khr/maintenance6.rs +++ b/ash/src/extensions/khr/maintenance6.rs @@ -1,23 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::maintenance6::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::maintenance6::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::maintenance6::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::maintenance6::Device { /// #[inline] pub unsafe fn cmd_bind_descriptor_sets2( @@ -86,9 +71,4 @@ impl Device { bind_descriptor_buffer_embedded_samplers_info, ) } - - #[inline] - pub fn fp(&self) -> &vk::khr::maintenance6::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/performance_query.rs b/ash/src/extensions/khr/performance_query.rs index 97445f816..5d8c23a7d 100644 --- a/ash/src/extensions/khr/performance_query.rs +++ b/ash/src/extensions/khr/performance_query.rs @@ -4,24 +4,8 @@ use crate::prelude::*; use crate::vk; use core::mem; use core::ptr; -pub use vk::khr::performance_query::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::performance_query::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::performance_query::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::performance_query::Device { /// #[inline] pub unsafe fn acquire_profiling_lock( @@ -36,32 +20,9 @@ impl Device { pub unsafe fn release_profiling_lock(&self) { (self.fp.release_profiling_lock_khr)(self.handle) } - - #[inline] - pub fn fp(&self) -> &vk::khr::performance_query::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } -} - -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::performance_query::InstanceFn, } -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::khr::performance_query::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } - +impl vk::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( @@ -129,9 +90,4 @@ impl Instance { ); num_passes.assume_init() } - - #[inline] - pub fn fp(&self) -> &vk::khr::performance_query::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/pipeline_executable_properties.rs b/ash/src/extensions/khr/pipeline_executable_properties.rs index 3da53b6a1..e33188d13 100644 --- a/ash/src/extensions/khr/pipeline_executable_properties.rs +++ b/ash/src/extensions/khr/pipeline_executable_properties.rs @@ -3,24 +3,8 @@ use crate::prelude::*; use crate::vk; use alloc::vec::Vec; -use core::mem; -pub use vk::khr::pipeline_executable_properties::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::pipeline_executable_properties::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::pipeline_executable_properties::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::pipeline_executable_properties::Device { /// #[inline] pub unsafe fn get_pipeline_executable_internal_representations( @@ -68,14 +52,4 @@ impl Device { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::khr::pipeline_executable_properties::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/present_wait.rs b/ash/src/extensions/khr/present_wait.rs index 89ed13fc9..8b202741f 100644 --- a/ash/src/extensions/khr/present_wait.rs +++ b/ash/src/extensions/khr/present_wait.rs @@ -2,24 +2,8 @@ use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::khr::present_wait::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::present_wait::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::present_wait::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::present_wait::Device { /// #[inline] pub unsafe fn wait_for_present( @@ -30,14 +14,4 @@ impl Device { ) -> VkResult<()> { (self.fp.wait_for_present_khr)(self.handle, swapchain, present_id, timeout).result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::present_wait::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/push_descriptor.rs b/ash/src/extensions/khr/push_descriptor.rs index 4a64cef96..09877d645 100644 --- a/ash/src/extensions/khr/push_descriptor.rs +++ b/ash/src/extensions/khr/push_descriptor.rs @@ -2,22 +2,8 @@ use crate::vk; use core::ffi; -use core::mem; -pub use vk::khr::push_descriptor::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::push_descriptor::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::push_descriptor::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::push_descriptor::Device { /// #[inline] pub unsafe fn cmd_push_descriptor_set( @@ -56,9 +42,4 @@ impl Device { p_data, ) } - - #[inline] - pub fn fp(&self) -> &vk::khr::push_descriptor::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/ray_tracing_maintenance1.rs b/ash/src/extensions/khr/ray_tracing_maintenance1.rs index 50dde829d..e988f5715 100644 --- a/ash/src/extensions/khr/ray_tracing_maintenance1.rs +++ b/ash/src/extensions/khr/ray_tracing_maintenance1.rs @@ -1,23 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::khr::ray_tracing_maintenance1::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::ray_tracing_maintenance1::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::ray_tracing_maintenance1::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } +impl vk::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. @@ -29,9 +14,4 @@ impl Device { ) { (self.fp.cmd_trace_rays_indirect2_khr)(command_buffer, indirect_device_address); } - - #[inline] - pub fn fp(&self) -> &vk::khr::ray_tracing_maintenance1::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/ray_tracing_pipeline.rs b/ash/src/extensions/khr/ray_tracing_pipeline.rs index 39c466664..3cef7d81d 100644 --- a/ash/src/extensions/khr/ray_tracing_pipeline.rs +++ b/ash/src/extensions/khr/ray_tracing_pipeline.rs @@ -4,24 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use alloc::vec::Vec; -use core::mem; -pub use vk::khr::ray_tracing_pipeline::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::ray_tracing_pipeline::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::ray_tracing_pipeline::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::ray_tracing_pipeline::Device { /// #[inline] pub unsafe fn cmd_trace_rays( @@ -161,14 +145,4 @@ impl Device { ) { (self.fp.cmd_set_ray_tracing_pipeline_stack_size_khr)(command_buffer, pipeline_stack_size); } - - #[inline] - pub fn fp(&self) -> &vk::khr::ray_tracing_pipeline::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/sampler_ycbcr_conversion.rs b/ash/src/extensions/khr/sampler_ycbcr_conversion.rs index 4a7b0e110..979336dcf 100644 --- a/ash/src/extensions/khr/sampler_ycbcr_conversion.rs +++ b/ash/src/extensions/khr/sampler_ycbcr_conversion.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::sampler_ycbcr_conversion::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::sampler_ycbcr_conversion::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::sampler_ycbcr_conversion::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::sampler_ycbcr_conversion::Device { /// #[inline] pub unsafe fn create_sampler_ycbcr_conversion( @@ -51,14 +36,4 @@ impl Device { allocation_callbacks.as_raw_ptr(), ) } - - #[inline] - pub fn fp(&self) -> &vk::khr::sampler_ycbcr_conversion::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/surface.rs b/ash/src/extensions/khr/surface.rs index 00117a2eb..e5d40c4db 100755 --- a/ash/src/extensions/khr/surface.rs +++ b/ash/src/extensions/khr/surface.rs @@ -5,23 +5,8 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::khr::surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::surface::Instance { /// #[inline] pub unsafe fn get_physical_device_surface_support( @@ -95,14 +80,4 @@ impl Instance { ) { (self.fp.destroy_surface_khr)(self.handle, surface, allocation_callbacks.as_raw_ptr()); } - - #[inline] - pub fn fp(&self) -> &vk::khr::surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/swapchain.rs b/ash/src/extensions/khr/swapchain.rs index 7b29d95ff..df53ae706 100755 --- a/ash/src/extensions/khr/swapchain.rs +++ b/ash/src/extensions/khr/swapchain.rs @@ -1,30 +1,12 @@ //! -#[cfg(doc)] -use super::device_group; use crate::prelude::*; use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::khr::swapchain::NAME; - -/// High-level device function wrapper -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::swapchain::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::swapchain::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::swapchain::Device { /// #[inline] pub unsafe fn create_swapchain( @@ -109,7 +91,7 @@ impl Device { /// Only available since [Vulkan 1.1]. /// - /// Also available as [`device_group::Device::get_device_group_present_capabilities()`] + /// Also available as [`vk::khr::device_group::Device::get_device_group_present_capabilities()`] /// when [`VK_KHR_surface`] is enabled. /// /// @@ -130,7 +112,7 @@ impl Device { /// Only available since [Vulkan 1.1]. /// - /// Also available as [`device_group::Device::get_device_group_surface_present_modes()`] + /// Also available as [`vk::khr::device_group::Device::get_device_group_surface_present_modes()`] /// when [`VK_KHR_surface`] is enabled. /// /// @@ -155,7 +137,7 @@ impl Device { /// /// Only available since [Vulkan 1.1]. /// - /// Also available as [`device_group::Device::acquire_next_image2()`] + /// Also available as [`vk::khr::device_group::Device::acquire_next_image2()`] /// when [`VK_KHR_swapchain`] is enabled. /// /// @@ -176,35 +158,12 @@ impl Device { _ => Err(err_code), } } - - #[inline] - pub fn fp(&self) -> &vk::khr::swapchain::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } -} - -/// High-level instance function wrapper -#[derive(Clone)] -pub struct Instance { - fp: vk::khr::swapchain::InstanceFn, } -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::khr::swapchain::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } - +impl vk::khr::swapchain::Instance { /// Only available since [Vulkan 1.1]. /// - /// Also available as [`device_group::Instance::get_physical_device_present_rectangles()`] + /// Also available as [`vk::khr::device_group::Instance::get_physical_device_present_rectangles()`] /// when [`VK_KHR_surface`] is enabled. /// /// @@ -226,9 +185,4 @@ impl Instance { ) }) } - - #[inline] - pub fn fp(&self) -> &vk::khr::swapchain::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/synchronization2.rs b/ash/src/extensions/khr/synchronization2.rs index 3f530db55..069f47ed2 100644 --- a/ash/src/extensions/khr/synchronization2.rs +++ b/ash/src/extensions/khr/synchronization2.rs @@ -2,22 +2,8 @@ use crate::prelude::*; use crate::vk; -use core::mem; -pub use vk::khr::synchronization2::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::khr::synchronization2::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::khr::synchronization2::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::khr::synchronization2::Device { /// #[inline] pub unsafe fn cmd_pipeline_barrier2( @@ -89,9 +75,4 @@ impl Device { ) -> VkResult<()> { (self.fp.queue_submit2_khr)(queue, submits.len() as u32, submits.as_ptr(), fence).result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::synchronization2::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/khr/timeline_semaphore.rs b/ash/src/extensions/khr/timeline_semaphore.rs index 803208b23..6c5262494 100644 --- a/ash/src/extensions/khr/timeline_semaphore.rs +++ b/ash/src/extensions/khr/timeline_semaphore.rs @@ -3,23 +3,8 @@ use crate::prelude::*; use crate::vk; use core::mem; -pub use vk::khr::timeline_semaphore::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::khr::timeline_semaphore::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::khr::timeline_semaphore::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::timeline_semaphore::Device { /// #[inline] pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult { @@ -46,14 +31,4 @@ impl Device { ) -> VkResult<()> { (self.fp.signal_semaphore_khr)(self.handle, signal_info).result() } - - #[inline] - pub fn fp(&self) -> &vk::khr::timeline_semaphore::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/khr/wayland_surface.rs b/ash/src/extensions/khr/wayland_surface.rs index 3335a4f28..650bdc4c0 100755 --- a/ash/src/extensions/khr/wayland_surface.rs +++ b/ash/src/extensions/khr/wayland_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::wayland_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::wayland_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::wayland_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::wayland_surface::Instance { /// #[inline] pub unsafe fn create_wayland_surface( @@ -54,14 +39,4 @@ impl Instance { b > 0 } - - #[inline] - pub fn fp(&self) -> &vk::khr::wayland_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/win32_surface.rs b/ash/src/extensions/khr/win32_surface.rs index 6b7573778..56ed4480e 100755 --- a/ash/src/extensions/khr/win32_surface.rs +++ b/ash/src/extensions/khr/win32_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::win32_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::win32_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::win32_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::win32_surface::Instance { /// #[inline] pub unsafe fn create_win32_surface( @@ -52,14 +37,4 @@ impl Instance { b > 0 } - - #[inline] - pub fn fp(&self) -> &vk::khr::win32_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/xcb_surface.rs b/ash/src/extensions/khr/xcb_surface.rs index e0cdaaafe..72d93d510 100755 --- a/ash/src/extensions/khr/xcb_surface.rs +++ b/ash/src/extensions/khr/xcb_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::xcb_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::xcb_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::xcb_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::xcb_surface::Instance { /// #[inline] pub unsafe fn create_xcb_surface( @@ -56,14 +41,4 @@ impl Instance { b > 0 } - - #[inline] - pub fn fp(&self) -> &vk::khr::xcb_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/khr/xlib_surface.rs b/ash/src/extensions/khr/xlib_surface.rs index 7d60d3c31..eb7dd1fe4 100755 --- a/ash/src/extensions/khr/xlib_surface.rs +++ b/ash/src/extensions/khr/xlib_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::khr::xlib_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::khr::xlib_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::khr::xlib_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::khr::xlib_surface::Instance { /// #[inline] pub unsafe fn create_xlib_surface( @@ -56,14 +41,4 @@ impl Instance { b > 0 } - - #[inline] - pub fn fp(&self) -> &vk::khr::xlib_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/mvk/ios_surface.rs b/ash/src/extensions/mvk/ios_surface.rs index ebc24521a..89661eb9c 100755 --- a/ash/src/extensions/mvk/ios_surface.rs +++ b/ash/src/extensions/mvk/ios_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::mvk::ios_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::mvk::ios_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::mvk::ios_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::mvk::ios_surface::Instance { /// #[inline] pub unsafe fn create_ios_surface( @@ -37,14 +22,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::mvk::ios_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/mvk/macos_surface.rs b/ash/src/extensions/mvk/macos_surface.rs index 57067f4a4..958c3d99b 100755 --- a/ash/src/extensions/mvk/macos_surface.rs +++ b/ash/src/extensions/mvk/macos_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::mvk::macos_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::mvk::macos_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::mvk::macos_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::mvk::macos_surface::Instance { /// #[inline] pub unsafe fn create_mac_os_surface( @@ -37,14 +22,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::mvk::macos_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/nn/vi_surface.rs b/ash/src/extensions/nn/vi_surface.rs index 35ab8fb15..d0d50adf7 100644 --- a/ash/src/extensions/nn/vi_surface.rs +++ b/ash/src/extensions/nn/vi_surface.rs @@ -4,23 +4,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; use core::mem; -pub use vk::nn::vi_surface::NAME; - -#[derive(Clone)] -pub struct Instance { - handle: vk::Instance, - fp: vk::nn::vi_surface::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let handle = instance.handle(); - let fp = vk::nn::vi_surface::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::nn::vi_surface::Instance { /// #[inline] pub unsafe fn create_vi_surface( @@ -37,14 +22,4 @@ impl Instance { ) .assume_init_on_success(surface) } - - #[inline] - pub fn fp(&self) -> &vk::nn::vi_surface::InstanceFn { - &self.fp - } - - #[inline] - pub fn instance(&self) -> vk::Instance { - self.handle - } } diff --git a/ash/src/extensions/nv/copy_memory_indirect.rs b/ash/src/extensions/nv/copy_memory_indirect.rs index 3e44aec19..7c6a17fcc 100644 --- a/ash/src/extensions/nv/copy_memory_indirect.rs +++ b/ash/src/extensions/nv/copy_memory_indirect.rs @@ -1,23 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::nv::copy_memory_indirect::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::nv::copy_memory_indirect::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::nv::copy_memory_indirect::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { fp } - } +impl vk::nv::copy_memory_indirect::Device { /// /// /// `copy_buffer_address` is a buffer device address which is a pointer to an array of @@ -64,9 +49,4 @@ impl Device { image_subresources.as_ptr(), ) } - - #[inline] - pub fn fp(&self) -> &vk::nv::copy_memory_indirect::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/nv/coverage_reduction_mode.rs b/ash/src/extensions/nv/coverage_reduction_mode.rs index 9b3f6de69..18d518549 100644 --- a/ash/src/extensions/nv/coverage_reduction_mode.rs +++ b/ash/src/extensions/nv/coverage_reduction_mode.rs @@ -4,21 +4,8 @@ use crate::prelude::*; use crate::vk; use core::mem; use core::ptr; -pub use vk::nv::coverage_reduction_mode::NAME; - -#[derive(Clone)] -pub struct Instance { - fp: vk::nv::coverage_reduction_mode::InstanceFn, -} - -impl Instance { - pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self { - let fp = vk::nv::coverage_reduction_mode::InstanceFn::load(|name| unsafe { - mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::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( @@ -59,9 +46,4 @@ impl Instance { assert_eq!(count as usize, out.len()); Ok(()) } - - #[inline] - pub fn fp(&self) -> &vk::nv::coverage_reduction_mode::InstanceFn { - &self.fp - } } diff --git a/ash/src/extensions/nv/cuda_kernel_launch.rs b/ash/src/extensions/nv/cuda_kernel_launch.rs index 255790266..d1615e00c 100644 --- a/ash/src/extensions/nv/cuda_kernel_launch.rs +++ b/ash/src/extensions/nv/cuda_kernel_launch.rs @@ -5,23 +5,8 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::nv::cuda_kernel_launch::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::nv::cuda_kernel_launch::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::nv::cuda_kernel_launch::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::nv::cuda_kernel_launch::Device { /// #[inline] pub unsafe fn create_cuda_module( @@ -93,14 +78,4 @@ impl Device { ) { (self.fp.cmd_cuda_launch_kernel_nv)(command_buffer, launch_info) } - - #[inline] - pub fn fp(&self) -> &vk::nv::cuda_kernel_launch::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/nv/device_diagnostic_checkpoints.rs b/ash/src/extensions/nv/device_diagnostic_checkpoints.rs index f437b1630..ef88d873b 100644 --- a/ash/src/extensions/nv/device_diagnostic_checkpoints.rs +++ b/ash/src/extensions/nv/device_diagnostic_checkpoints.rs @@ -4,21 +4,8 @@ use crate::vk; use core::ffi; use core::mem; use core::ptr; -pub use vk::nv::device_diagnostic_checkpoints::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::nv::device_diagnostic_checkpoints::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::nv::device_diagnostic_checkpoints::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::nv::device_diagnostic_checkpoints::Device { /// #[inline] pub unsafe fn cmd_set_checkpoint( @@ -51,9 +38,4 @@ impl Device { (self.fp.get_queue_checkpoint_data_nv)(queue, &mut count, out.as_mut_ptr()); assert_eq!(count as usize, out.len()); } - - #[inline] - pub fn fp(&self) -> &vk::nv::device_diagnostic_checkpoints::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/nv/device_generated_commands_compute.rs b/ash/src/extensions/nv/device_generated_commands_compute.rs index d76752e53..a1f09ba3e 100644 --- a/ash/src/extensions/nv/device_generated_commands_compute.rs +++ b/ash/src/extensions/nv/device_generated_commands_compute.rs @@ -1,24 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::nv::device_generated_commands_compute::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::nv::device_generated_commands_compute::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::nv::device_generated_commands_compute::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::nv::device_generated_commands_compute::Device { /// #[inline] pub unsafe fn get_pipeline_indirect_memory_requirements( @@ -56,14 +40,4 @@ impl Device { ) -> vk::DeviceAddress { (self.fp.get_pipeline_indirect_device_address_nv)(self.handle, info) } - - #[inline] - pub fn fp(&self) -> &vk::nv::device_generated_commands_compute::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/nv/low_latency2.rs b/ash/src/extensions/nv/low_latency2.rs index d8dc0add4..2effc8e53 100644 --- a/ash/src/extensions/nv/low_latency2.rs +++ b/ash/src/extensions/nv/low_latency2.rs @@ -3,24 +3,8 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr; -use core::mem; -pub use vk::nv::low_latency2::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::nv::low_latency2::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::nv::low_latency2::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::nv::low_latency2::Device { /// #[inline] pub unsafe fn set_latency_sleep_mode( @@ -71,14 +55,4 @@ impl Device { ) { (self.fp.queue_notify_out_of_band_nv)(queue, queue_type_info) } - - #[inline] - pub fn fp(&self) -> &vk::nv::low_latency2::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/extensions/nv/memory_decompression.rs b/ash/src/extensions/nv/memory_decompression.rs index e18f674a4..37ffdba43 100644 --- a/ash/src/extensions/nv/memory_decompression.rs +++ b/ash/src/extensions/nv/memory_decompression.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::nv::memory_decompression::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::nv::memory_decompression::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::nv::memory_decompression::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::nv::memory_decompression::Device { /// pub unsafe fn cmd_decompress_memory( &self, @@ -45,9 +31,4 @@ impl Device { stride, ) } - - #[inline] - pub fn fp(&self) -> &vk::nv::memory_decompression::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/nv/mesh_shader.rs b/ash/src/extensions/nv/mesh_shader.rs index 957058817..a7e00d6eb 100755 --- a/ash/src/extensions/nv/mesh_shader.rs +++ b/ash/src/extensions/nv/mesh_shader.rs @@ -1,22 +1,8 @@ //! use crate::vk; -use core::mem; -pub use vk::nv::mesh_shader::NAME; - -#[derive(Clone)] -pub struct Device { - fp: vk::nv::mesh_shader::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let fp = vk::nv::mesh_shader::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) - }); - Self { fp } - } +impl vk::nv::mesh_shader::Device { /// #[inline] pub unsafe fn cmd_draw_mesh_tasks( @@ -69,9 +55,4 @@ impl Device { stride, ); } - - #[inline] - pub fn fp(&self) -> &vk::nv::mesh_shader::DeviceFn { - &self.fp - } } diff --git a/ash/src/extensions/nv/ray_tracing.rs b/ash/src/extensions/nv/ray_tracing.rs index 9a9182b67..c441b8475 100755 --- a/ash/src/extensions/nv/ray_tracing.rs +++ b/ash/src/extensions/nv/ray_tracing.rs @@ -5,23 +5,8 @@ use crate::vk; use crate::RawPtr; use alloc::vec::Vec; use core::mem; -pub use vk::nv::ray_tracing::NAME; - -#[derive(Clone)] -pub struct Device { - handle: vk::Device, - fp: vk::nv::ray_tracing::DeviceFn, -} - -impl Device { - pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { - let handle = device.handle(); - let fp = vk::nv::ray_tracing::DeviceFn::load(|name| unsafe { - mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) - }); - Self { handle, fp } - } +impl vk::nv::ray_tracing::Device { /// #[inline] pub unsafe fn create_acceleration_structure( @@ -241,14 +226,4 @@ impl Device { pub unsafe fn compile_deferred(&self, pipeline: vk::Pipeline, shader: u32) -> VkResult<()> { (self.fp.compile_deferred_nv)(self.handle, pipeline, shader).result() } - - #[inline] - pub fn fp(&self) -> &vk::nv::ray_tracing::DeviceFn { - &self.fp - } - - #[inline] - pub fn device(&self) -> vk::Device { - self.handle - } } diff --git a/ash/src/lib.rs b/ash/src/lib.rs index bc3a80dc3..4a4940229 100644 --- a/ash/src/lib.rs +++ b/ash/src/lib.rs @@ -70,8 +70,7 @@ pub mod util; pub mod vk; // macros of vk need to be defined beforehand -/// Wrappers for Vulkan extensions -pub mod extensions; +mod extensions; pub trait RawPtr { fn as_raw_ptr(&self) -> *const T; diff --git a/ash/src/vk.rs b/ash/src/vk.rs index 1736add56..312741709 100644 --- a/ash/src/vk.rs +++ b/ash/src/vk.rs @@ -1,7 +1,8 @@ #![allow( clippy::too_many_arguments, clippy::cognitive_complexity, - clippy::wrong_self_convention + clippy::wrong_self_convention, + unused_qualifications )] #[macro_use] mod macros; diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index d1309792c..874ee1dfc 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -4008,6 +4008,7 @@ pub mod amd { 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, @@ -4072,6 +4073,28 @@ pub mod amd { } } } + #[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 + } + } } pub mod negative_viewport_height { use super::super::*; @@ -4104,7 +4127,7 @@ pub mod amd { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline: Pipeline, shader_stage: ShaderStageFlags, info_type: ShaderInfoTypeAMD, @@ -4112,6 +4135,7 @@ pub mod amd { 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, } @@ -4125,7 +4149,7 @@ pub mod amd { Self { get_shader_info_amd: unsafe { unsafe extern "system" fn get_shader_info_amd( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _shader_stage: ShaderStageFlags, _info_type: ShaderInfoTypeAMD, @@ -4145,6 +4169,28 @@ pub mod amd { } } } + #[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 + } + } } pub mod shader_image_load_store_lod { use super::super::*; @@ -4184,6 +4230,7 @@ pub mod amd { 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, } @@ -4220,6 +4267,28 @@ pub mod amd { } } } + #[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 + } + } } pub mod pipeline_compiler_control { use super::super::*; @@ -4247,11 +4316,12 @@ pub mod amd { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkSetLocalDimmingAMD = unsafe extern "system" fn( - device: Device, + 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, } @@ -4265,7 +4335,7 @@ pub mod amd { Self { set_local_dimming_amd: unsafe { unsafe extern "system" fn set_local_dimming_amd( - _device: Device, + _device: crate::vk::Device, _swap_chain: SwapchainKHR, _local_dimming_enable: Bool32, ) { @@ -4285,6 +4355,28 @@ pub mod amd { } } } + #[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 + } + } } pub mod shader_core_properties2 { use super::super::*; @@ -4314,7 +4406,7 @@ pub mod amdx { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateExecutionGraphPipelinesAMDX = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_cache: PipelineCache, create_info_count: u32, p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>, @@ -4325,13 +4417,13 @@ pub mod amdx { #[allow(non_camel_case_types)] pub type PFN_vkGetExecutionGraphPipelineScratchSizeAMDX = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, execution_graph: Pipeline, p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>, p_node_index: *mut u32, @@ -4359,6 +4451,7 @@ pub mod amdx { 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: @@ -4380,7 +4473,7 @@ pub mod amdx { Self { create_execution_graph_pipelines_amdx: unsafe { unsafe extern "system" fn create_execution_graph_pipelines_amdx( - _device: Device, + _device: crate::vk::Device, _pipeline_cache: PipelineCache, _create_info_count: u32, _p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX<'_>, @@ -4404,7 +4497,7 @@ pub mod amdx { }, get_execution_graph_pipeline_scratch_size_amdx: unsafe { unsafe extern "system" fn get_execution_graph_pipeline_scratch_size_amdx( - _device: Device, + _device: crate::vk::Device, _execution_graph: Pipeline, _p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX<'_>, ) -> Result { @@ -4425,7 +4518,7 @@ pub mod amdx { }, get_execution_graph_pipeline_node_index_amdx: unsafe { unsafe extern "system" fn get_execution_graph_pipeline_node_index_amdx( - _device: Device, + _device: crate::vk::Device, _execution_graph: Pipeline, _p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX<'_>, _p_node_index: *mut u32, @@ -4530,6 +4623,28 @@ pub mod amdx { } } } + #[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 + } + } } } pub mod android { @@ -4540,7 +4655,7 @@ pub mod android { pub const SPEC_VERSION: u32 = 8u32; #[allow(non_camel_case_types)] pub type PFN_vkGetSwapchainGrallocUsageANDROID = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, format: Format, image_usage: ImageUsageFlags, gralloc_usage: *mut c_int, @@ -4548,7 +4663,7 @@ pub mod android { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkAcquireImageANDROID = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image: Image, native_fence_fd: c_int, semaphore: Semaphore, @@ -4565,7 +4680,7 @@ pub mod android { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, format: Format, image_usage: ImageUsageFlags, swapchain_image_usage: SwapchainImageUsageFlagsANDROID, @@ -4574,6 +4689,7 @@ pub mod android { ) -> 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, @@ -4590,7 +4706,7 @@ pub mod android { Self { get_swapchain_gralloc_usage_android: unsafe { unsafe extern "system" fn get_swapchain_gralloc_usage_android( - _device: Device, + _device: crate::vk::Device, _format: Format, _image_usage: ImageUsageFlags, _gralloc_usage: *mut c_int, @@ -4612,7 +4728,7 @@ pub mod android { }, acquire_image_android: unsafe { unsafe extern "system" fn acquire_image_android( - _device: Device, + _device: crate::vk::Device, _image: Image, _native_fence_fd: c_int, _semaphore: Semaphore, @@ -4656,7 +4772,7 @@ pub mod android { }, get_swapchain_gralloc_usage2_android: unsafe { unsafe extern "system" fn get_swapchain_gralloc_usage2_android( - _device: Device, + _device: crate::vk::Device, _format: Format, _image_usage: ImageUsageFlags, _swapchain_image_usage: SwapchainImageUsageFlagsANDROID, @@ -4681,6 +4797,28 @@ pub mod android { } } } + #[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 + } + } } pub mod external_memory_android_hardware_buffer { use super::super::*; @@ -4693,18 +4831,19 @@ pub mod android { #[allow(non_camel_case_types)] pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -4721,7 +4860,7 @@ pub mod android { Self { get_android_hardware_buffer_properties_android: unsafe { unsafe extern "system" fn get_android_hardware_buffer_properties_android( - _device: Device, + _device: crate::vk::Device, _buffer: *const AHardwareBuffer, _p_properties: *mut AndroidHardwareBufferPropertiesANDROID<'_>, ) -> Result { @@ -4742,7 +4881,7 @@ pub mod android { }, get_memory_android_hardware_buffer_android: unsafe { unsafe extern "system" fn get_memory_android_hardware_buffer_android( - _device: Device, + _device: crate::vk::Device, _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID<'_>, _p_buffer: *mut *mut AHardwareBuffer, ) -> Result { @@ -4764,6 +4903,28 @@ pub mod android { } } } + #[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 + } + } } pub mod external_format_resolve { use super::super::*; @@ -4813,20 +4974,20 @@ pub mod ext { pub const SPEC_VERSION: u32 = 10u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateDebugReportCallbackEXT = unsafe extern "system" fn( - instance: Instance, + 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: Instance, + instance: crate::vk::Instance, callback: DebugReportCallbackEXT, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkDebugReportMessageEXT = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, flags: DebugReportFlagsEXT, object_type: DebugReportObjectTypeEXT, object: u64, @@ -4836,6 +4997,7 @@ pub mod ext { 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, @@ -4851,7 +5013,7 @@ pub mod ext { Self { create_debug_report_callback_ext: unsafe { unsafe extern "system" fn create_debug_report_callback_ext( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const DebugReportCallbackCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_callback: *mut DebugReportCallbackEXT, @@ -4873,7 +5035,7 @@ pub mod ext { }, destroy_debug_report_callback_ext: unsafe { unsafe extern "system" fn destroy_debug_report_callback_ext( - _instance: Instance, + _instance: crate::vk::Instance, _callback: DebugReportCallbackEXT, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -4894,7 +5056,7 @@ pub mod ext { }, debug_report_message_ext: unsafe { unsafe extern "system" fn debug_report_message_ext( - _instance: Instance, + _instance: crate::vk::Instance, _flags: DebugReportFlagsEXT, _object_type: DebugReportObjectTypeEXT, _object: u64, @@ -4920,6 +5082,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod depth_range_unrestricted { use super::super::*; @@ -4934,12 +5118,12 @@ pub mod ext { pub const SPEC_VERSION: u32 = 4u32; #[allow(non_camel_case_types)] pub type PFN_vkDebugMarkerSetObjectTagEXT = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDebugMarkerSetObjectNameEXT = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, ) -> Result; #[allow(non_camel_case_types)] @@ -4956,6 +5140,7 @@ pub mod ext { 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, @@ -4973,7 +5158,7 @@ pub mod ext { Self { debug_marker_set_object_tag_ext: unsafe { unsafe extern "system" fn debug_marker_set_object_tag_ext( - _device: Device, + _device: crate::vk::Device, _p_tag_info: *const DebugMarkerObjectTagInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -4992,7 +5177,7 @@ pub mod ext { }, debug_marker_set_object_name_ext: unsafe { unsafe extern "system" fn debug_marker_set_object_name_ext( - _device: Device, + _device: crate::vk::Device, _p_name_info: *const DebugMarkerObjectNameInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -5068,6 +5253,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod transform_feedback { use super::super::*; @@ -5125,6 +5332,7 @@ pub mod ext { 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, @@ -5280,6 +5488,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod validation_flags { use super::super::*; @@ -5332,6 +5562,7 @@ pub mod ext { 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, @@ -5388,6 +5619,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod direct_mode_display { use super::super::*; @@ -5400,6 +5653,7 @@ pub mod ext { 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, } @@ -5429,6 +5683,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod acquire_xlib_display { use super::super::*; @@ -5449,6 +5725,7 @@ pub mod ext { 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, @@ -5505,6 +5782,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod display_surface_counter { use super::super::*; @@ -5519,6 +5818,7 @@ pub mod ext { 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, @@ -5555,6 +5855,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod display_control { use super::super::*; @@ -5563,20 +5885,20 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkDisplayPowerControlEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, display: DisplayKHR, p_display_event_info: *const DisplayEventInfoEXT<'_>, p_allocator: *const AllocationCallbacks<'_>, @@ -5584,12 +5906,13 @@ pub mod ext { ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetSwapchainCounterEXT = unsafe extern "system" fn( - device: Device, + 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, @@ -5606,7 +5929,7 @@ pub mod ext { Self { display_power_control_ext: unsafe { unsafe extern "system" fn display_power_control_ext( - _device: Device, + _device: crate::vk::Device, _display: DisplayKHR, _p_display_power_info: *const DisplayPowerInfoEXT<'_>, ) -> Result { @@ -5626,7 +5949,7 @@ pub mod ext { }, register_device_event_ext: unsafe { unsafe extern "system" fn register_device_event_ext( - _device: Device, + _device: crate::vk::Device, _p_device_event_info: *const DeviceEventInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_fence: *mut Fence, @@ -5647,7 +5970,7 @@ pub mod ext { }, register_display_event_ext: unsafe { unsafe extern "system" fn register_display_event_ext( - _device: Device, + _device: crate::vk::Device, _display: DisplayKHR, _p_display_event_info: *const DisplayEventInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, @@ -5669,7 +5992,7 @@ pub mod ext { }, get_swapchain_counter_ext: unsafe { unsafe extern "system" fn get_swapchain_counter_ext( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _counter: SurfaceCounterFlagsEXT, _p_counter_value: *mut u64, @@ -5691,6 +6014,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod discard_rectangles { use super::super::*; @@ -5715,6 +6060,7 @@ pub mod ext { 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, @@ -5792,6 +6138,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod conservative_rasterization { use super::super::*; @@ -5818,12 +6186,13 @@ pub mod ext { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn( - device: Device, + 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, } @@ -5837,7 +6206,7 @@ pub mod ext { Self { set_hdr_metadata_ext: unsafe { unsafe extern "system" fn set_hdr_metadata_ext( - _device: Device, + _device: crate::vk::Device, _swapchain_count: u32, _p_swapchains: *const SwapchainKHR, _p_metadata: *const HdrMetadataEXT<'_>, @@ -5855,6 +6224,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod external_memory_dma_buf { use super::super::*; @@ -5875,25 +6266,26 @@ pub mod ext { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateDebugUtilsMessengerEXT = unsafe extern "system" fn( - instance: Instance, + 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: Instance, + instance: crate::vk::Instance, messenger: DebugUtilsMessengerEXT, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkSubmitDebugUtilsMessageEXT = unsafe extern "system" fn( - instance: Instance, + 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, @@ -5909,7 +6301,7 @@ pub mod ext { Self { create_debug_utils_messenger_ext: unsafe { unsafe extern "system" fn create_debug_utils_messenger_ext( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const DebugUtilsMessengerCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_messenger: *mut DebugUtilsMessengerEXT, @@ -5931,7 +6323,7 @@ pub mod ext { }, destroy_debug_utils_messenger_ext: unsafe { unsafe extern "system" fn destroy_debug_utils_messenger_ext( - _instance: Instance, + _instance: crate::vk::Instance, _messenger: DebugUtilsMessengerEXT, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -5952,7 +6344,7 @@ pub mod ext { }, submit_debug_utils_message_ext: unsafe { unsafe extern "system" fn submit_debug_utils_message_ext( - _instance: Instance, + _instance: crate::vk::Instance, _message_severity: DebugUtilsMessageSeverityFlagsEXT, _message_types: DebugUtilsMessageTypeFlagsEXT, _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT<'_>, @@ -5974,14 +6366,36 @@ pub mod ext { } } } + #[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: Device, + device: crate::vk::Device, p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkSetDebugUtilsObjectTagEXT = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, ) -> Result; #[allow(non_camel_case_types)] @@ -6006,6 +6420,7 @@ pub mod ext { 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, @@ -6026,7 +6441,7 @@ pub mod ext { Self { set_debug_utils_object_name_ext: unsafe { unsafe extern "system" fn set_debug_utils_object_name_ext( - _device: Device, + _device: crate::vk::Device, _p_name_info: *const DebugUtilsObjectNameInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -6045,7 +6460,7 @@ pub mod ext { }, set_debug_utils_object_tag_ext: unsafe { unsafe extern "system" fn set_debug_utils_object_tag_ext( - _device: Device, + _device: crate::vk::Device, _p_tag_info: *const DebugUtilsObjectTagInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -6177,6 +6592,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod sampler_filter_minmax { use super::super::*; @@ -6208,6 +6645,7 @@ pub mod ext { 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, @@ -6244,12 +6682,35 @@ pub mod ext { } } } + #[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, } @@ -6283,6 +6744,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod blend_operation_advanced { use super::super::*; @@ -6303,12 +6786,13 @@ pub mod ext { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn( - device: Device, + 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, @@ -6323,7 +6807,7 @@ pub mod ext { Self { get_image_drm_format_modifier_properties_ext: unsafe { unsafe extern "system" fn get_image_drm_format_modifier_properties_ext( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_properties: *mut ImageDrmFormatModifierPropertiesEXT<'_>, ) -> Result { @@ -6345,6 +6829,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod validation_cache { use super::super::*; @@ -6353,32 +6859,33 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateValidationCacheEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: Device, + 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, @@ -6395,7 +6902,7 @@ pub mod ext { Self { create_validation_cache_ext: unsafe { unsafe extern "system" fn create_validation_cache_ext( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const ValidationCacheCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_validation_cache: *mut ValidationCacheEXT, @@ -6416,7 +6923,7 @@ pub mod ext { }, destroy_validation_cache_ext: unsafe { unsafe extern "system" fn destroy_validation_cache_ext( - _device: Device, + _device: crate::vk::Device, _validation_cache: ValidationCacheEXT, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -6436,7 +6943,7 @@ pub mod ext { }, merge_validation_caches_ext: unsafe { unsafe extern "system" fn merge_validation_caches_ext( - _device: Device, + _device: crate::vk::Device, _dst_cache: ValidationCacheEXT, _src_cache_count: u32, _p_src_caches: *const ValidationCacheEXT, @@ -6457,7 +6964,7 @@ pub mod ext { }, get_validation_cache_data_ext: unsafe { unsafe extern "system" fn get_validation_cache_data_ext( - _device: Device, + _device: crate::vk::Device, _validation_cache: ValidationCacheEXT, _p_data_size: *mut usize, _p_data: *mut c_void, @@ -6479,6 +6986,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod descriptor_indexing { use super::super::*; @@ -6511,13 +7040,14 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetMemoryHostPointerPropertiesEXT = unsafe extern "system" fn( - device: Device, + 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, } @@ -6531,7 +7061,7 @@ pub mod ext { Self { get_memory_host_pointer_properties_ext: unsafe { unsafe extern "system" fn get_memory_host_pointer_properties_ext( - _device: Device, + _device: crate::vk::Device, _handle_type: ExternalMemoryHandleTypeFlags, _p_host_pointer: *const c_void, _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT< @@ -6556,6 +7086,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod calibrated_timestamps { use super::super::*; @@ -6570,6 +7122,7 @@ pub mod ext { 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, @@ -6606,15 +7159,38 @@ pub mod ext { } } } + #[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: Device, + 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, } @@ -6628,7 +7204,7 @@ pub mod ext { Self { get_calibrated_timestamps_ext: unsafe { unsafe extern "system" fn get_calibrated_timestamps_ext( - _device: Device, + _device: crate::vk::Device, _timestamp_count: u32, _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, _p_timestamps: *mut u64, @@ -6651,6 +7227,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod vertex_attribute_divisor { use super::super::*; @@ -6677,12 +7275,13 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateMetalSurfaceEXT = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -6696,7 +7295,7 @@ pub mod ext { Self { create_metal_surface_ext: unsafe { unsafe extern "system" fn create_metal_surface_ext( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const MetalSurfaceCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -6718,6 +7317,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod fragment_density_map { use super::super::*; @@ -6762,10 +7383,11 @@ pub mod ext { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetBufferDeviceAddress = unsafe extern "system" fn( - device: Device, + 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, } @@ -6779,7 +7401,7 @@ pub mod ext { Self { get_buffer_device_address_ext: unsafe { unsafe extern "system" fn get_buffer_device_address_ext( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferDeviceAddressInfo<'_>, ) -> DeviceAddress { panic!(concat!( @@ -6799,6 +7421,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod tooling_info { use super::super::*; @@ -6813,6 +7457,7 @@ pub mod ext { ) -> 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, } @@ -6848,6 +7493,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod separate_stencil_usage { use super::super::*; @@ -6893,6 +7560,7 @@ pub mod ext { 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, @@ -6930,20 +7598,43 @@ pub mod ext { } } } + #[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: Device, swapchain: SwapchainKHR) -> Result; + 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: Device, swapchain: SwapchainKHR) -> Result; + 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: Device, + 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, @@ -6960,7 +7651,7 @@ pub mod ext { Self { acquire_full_screen_exclusive_mode_ext: unsafe { unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, ) -> Result { panic!(concat!( @@ -6980,7 +7671,7 @@ pub mod ext { }, release_full_screen_exclusive_mode_ext: unsafe { unsafe extern "system" fn release_full_screen_exclusive_mode_ext( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, ) -> Result { panic!(concat!( @@ -7000,7 +7691,7 @@ pub mod ext { }, get_device_group_surface_present_modes2_ext: unsafe { unsafe extern "system" fn get_device_group_surface_present_modes2_ext( - _device: Device, + _device: crate::vk::Device, _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR<'_>, _p_modes: *mut DeviceGroupPresentModeFlagsKHR, ) -> Result { @@ -7022,6 +7713,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod headless_surface { use super::super::*; @@ -7030,12 +7743,13 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateHeadlessSurfaceEXT = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -7049,7 +7763,7 @@ pub mod ext { Self { create_headless_surface_ext: unsafe { unsafe extern "system" fn create_headless_surface_ext( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const HeadlessSurfaceCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -7071,6 +7785,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod line_rasterization { use super::super::*; @@ -7084,6 +7820,7 @@ pub mod ext { 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, } @@ -7118,6 +7855,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod shader_atomic_float { use super::super::*; @@ -7132,12 +7891,13 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkResetQueryPool = unsafe extern "system" fn( - device: Device, + 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, } @@ -7151,7 +7911,7 @@ pub mod ext { Self { reset_query_pool_ext: unsafe { unsafe extern "system" fn reset_query_pool_ext( - _device: Device, + _device: crate::vk::Device, _query_pool: QueryPool, _first_query: u32, _query_count: u32, @@ -7169,6 +7929,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod index_type_uint8 { use super::super::*; @@ -7241,6 +8023,7 @@ pub mod ext { 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, @@ -7503,6 +8286,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod host_image_copy { use super::super::*; @@ -7511,33 +8316,34 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCopyMemoryToImageEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: Device, + 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: Device, + 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, @@ -7555,7 +8361,7 @@ pub mod ext { Self { copy_memory_to_image_ext: unsafe { unsafe extern "system" fn copy_memory_to_image_ext( - _device: Device, + _device: crate::vk::Device, _p_copy_memory_to_image_info: *const CopyMemoryToImageInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -7574,7 +8380,7 @@ pub mod ext { }, copy_image_to_memory_ext: unsafe { unsafe extern "system" fn copy_image_to_memory_ext( - _device: Device, + _device: crate::vk::Device, _p_copy_image_to_memory_info: *const CopyImageToMemoryInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -7593,7 +8399,7 @@ pub mod ext { }, copy_image_to_image_ext: unsafe { unsafe extern "system" fn copy_image_to_image_ext( - _device: Device, + _device: crate::vk::Device, _p_copy_image_to_image_info: *const CopyImageToImageInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -7611,7 +8417,7 @@ pub mod ext { }, transition_image_layout_ext: unsafe { unsafe extern "system" fn transition_image_layout_ext( - _device: Device, + _device: crate::vk::Device, _transition_count: u32, _p_transitions: *const HostImageLayoutTransitionInfoEXT<'_>, ) -> Result { @@ -7631,7 +8437,7 @@ pub mod ext { }, get_image_subresource_layout2_ext: unsafe { unsafe extern "system" fn get_image_subresource_layout2_ext( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_subresource: *const ImageSubresource2KHR<'_>, _p_layout: *mut SubresourceLayout2KHR<'_>, @@ -7654,6 +8460,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod map_memory_placed { use super::super::*; @@ -7680,10 +8508,11 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkReleaseSwapchainImagesEXT = unsafe extern "system" fn( - device: Device, + 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, } @@ -7697,7 +8526,7 @@ pub mod ext { Self { release_swapchain_images_ext: unsafe { unsafe extern "system" fn release_swapchain_images_ext( - _device: Device, + _device: crate::vk::Device, _p_release_info: *const ReleaseSwapchainImagesInfoEXT<'_>, ) -> Result { panic!(concat!( @@ -7717,6 +8546,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod shader_demote_to_helper_invocation { use super::super::*; @@ -7742,6 +8593,7 @@ pub mod ext { 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, } @@ -7774,6 +8626,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod device_memory_report { use super::super::*; @@ -7800,6 +8674,7 @@ pub mod ext { 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, @@ -7852,6 +8727,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod robustness2 { use super::super::*; @@ -7872,20 +8769,20 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreatePrivateDataSlot = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, object_type: ObjectType, object_handle: u64, private_data_slot: PrivateDataSlot, @@ -7893,13 +8790,14 @@ pub mod ext { ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetPrivateData = unsafe extern "system" fn( - device: Device, + 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, @@ -7916,7 +8814,7 @@ pub mod ext { Self { create_private_data_slot_ext: unsafe { unsafe extern "system" fn create_private_data_slot_ext( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const PrivateDataSlotCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_private_data_slot: *mut PrivateDataSlot, @@ -7937,7 +8835,7 @@ pub mod ext { }, destroy_private_data_slot_ext: unsafe { unsafe extern "system" fn destroy_private_data_slot_ext( - _device: Device, + _device: crate::vk::Device, _private_data_slot: PrivateDataSlot, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -7957,7 +8855,7 @@ pub mod ext { }, set_private_data_ext: unsafe { unsafe extern "system" fn set_private_data_ext( - _device: Device, + _device: crate::vk::Device, _object_type: ObjectType, _object_handle: u64, _private_data_slot: PrivateDataSlot, @@ -7975,7 +8873,7 @@ pub mod ext { }, get_private_data_ext: unsafe { unsafe extern "system" fn get_private_data_ext( - _device: Device, + _device: crate::vk::Device, _object_type: ObjectType, _object_handle: u64, _private_data_slot: PrivateDataSlot, @@ -7994,6 +8892,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod pipeline_creation_cache_control { use super::super::*; @@ -8009,10 +8929,11 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkExportMetalObjectsEXT = unsafe extern "system" fn( - device: Device, + 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, } @@ -8026,7 +8947,7 @@ pub mod ext { Self { export_metal_objects_ext: unsafe { unsafe extern "system" fn export_metal_objects_ext( - _device: Device, + _device: crate::vk::Device, _p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>, ) { panic!(concat!( @@ -8046,6 +8967,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod descriptor_buffer { use super::super::*; @@ -8054,20 +8997,20 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetDescriptorSetLayoutSizeEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, p_descriptor_info: *const DescriptorGetInfoEXT<'_>, data_size: usize, p_descriptor: *mut c_void, @@ -8098,13 +9041,13 @@ pub mod ext { #[allow(non_camel_case_types)] pub type PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>, p_data: *mut c_void, ) @@ -8112,25 +9055,26 @@ pub mod ext { #[allow(non_camel_case_types)] pub type PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: @@ -8161,7 +9105,7 @@ pub mod ext { Self { get_descriptor_set_layout_size_ext: unsafe { unsafe extern "system" fn get_descriptor_set_layout_size_ext( - _device: Device, + _device: crate::vk::Device, _layout: DescriptorSetLayout, _p_layout_size_in_bytes: *mut DeviceSize, ) { @@ -8182,7 +9126,7 @@ pub mod ext { }, get_descriptor_set_layout_binding_offset_ext: unsafe { unsafe extern "system" fn get_descriptor_set_layout_binding_offset_ext( - _device: Device, + _device: crate::vk::Device, _layout: DescriptorSetLayout, _binding: u32, _p_offset: *mut DeviceSize, @@ -8204,7 +9148,7 @@ pub mod ext { }, get_descriptor_ext: unsafe { unsafe extern "system" fn get_descriptor_ext( - _device: Device, + _device: crate::vk::Device, _p_descriptor_info: *const DescriptorGetInfoEXT<'_>, _data_size: usize, _p_descriptor: *mut c_void, @@ -8288,7 +9232,7 @@ pub mod ext { }, get_buffer_opaque_capture_descriptor_data_ext: unsafe { unsafe extern "system" fn get_buffer_opaque_capture_descriptor_data_ext( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferCaptureDescriptorDataInfoEXT<'_>, _p_data: *mut c_void, ) -> Result { @@ -8309,7 +9253,7 @@ pub mod ext { }, get_image_opaque_capture_descriptor_data_ext: unsafe { unsafe extern "system" fn get_image_opaque_capture_descriptor_data_ext( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageCaptureDescriptorDataInfoEXT<'_>, _p_data: *mut c_void, ) -> Result { @@ -8330,7 +9274,7 @@ pub mod ext { }, get_image_view_opaque_capture_descriptor_data_ext: unsafe { unsafe extern "system" fn get_image_view_opaque_capture_descriptor_data_ext( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageViewCaptureDescriptorDataInfoEXT<'_>, _p_data: *mut c_void, ) -> Result { @@ -8351,7 +9295,7 @@ pub mod ext { }, get_sampler_opaque_capture_descriptor_data_ext: unsafe { unsafe extern "system" fn get_sampler_opaque_capture_descriptor_data_ext( - _device: Device, + _device: crate::vk::Device, _p_info: *const SamplerCaptureDescriptorDataInfoEXT<'_>, _p_data: *mut c_void, ) -> Result { @@ -8372,7 +9316,7 @@ pub mod ext { }, get_acceleration_structure_opaque_capture_descriptor_data_ext: unsafe { unsafe extern "system" fn get_acceleration_structure_opaque_capture_descriptor_data_ext( - _device: Device, + _device: crate::vk::Device, _p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT<'_>, _p_data: *mut c_void, ) -> Result { @@ -8396,6 +9340,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod graphics_pipeline_library { use super::super::*; @@ -8434,6 +9400,7 @@ pub mod ext { 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, @@ -8517,6 +9484,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod ycbcr_2plane_444_formats { use super::super::*; @@ -8542,6 +9531,7 @@ pub mod ext { 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, @@ -8556,7 +9546,7 @@ pub mod ext { Self { get_image_subresource_layout2_ext: unsafe { unsafe extern "system" fn get_image_subresource_layout2_ext( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_subresource: *const ImageSubresource2KHR<'_>, _p_layout: *mut SubresourceLayout2KHR<'_>, @@ -8579,6 +9569,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod attachment_feedback_loop_layout { use super::super::*; @@ -8600,11 +9612,12 @@ pub mod ext { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceFaultInfoEXT = unsafe extern "system" fn( - device: Device, + 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, } @@ -8618,7 +9631,7 @@ pub mod ext { Self { get_device_fault_info_ext: unsafe { unsafe extern "system" fn get_device_fault_info_ext( - _device: Device, + _device: crate::vk::Device, _p_fault_counts: *mut DeviceFaultCountsEXT<'_>, _p_fault_info: *mut DeviceFaultInfoEXT<'_>, ) -> Result { @@ -8639,6 +9652,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod rgba10x6_formats { use super::super::*; @@ -8653,7 +9688,7 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateDirectFBSurfaceEXT = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>, p_allocator: *const AllocationCallbacks<'_>, p_surface: *mut SurfaceKHR, @@ -8666,6 +9701,7 @@ pub mod ext { 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: @@ -8681,7 +9717,7 @@ pub mod ext { Self { create_direct_fb_surface_ext: unsafe { unsafe extern "system" fn create_direct_fb_surface_ext( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const DirectFBSurfaceCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -8724,6 +9760,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod vertex_input_dynamic_state { use super::super::*; @@ -8739,6 +9797,7 @@ pub mod ext { 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, } @@ -8775,6 +9834,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod physical_device_drm { use super::super::*; @@ -8816,11 +9897,12 @@ pub mod ext { } #[allow(non_camel_case_types)] pub type PFN_vkGetPipelinePropertiesEXT = unsafe extern "system" fn( - device: Device, + 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, } @@ -8834,7 +9916,7 @@ pub mod ext { Self { get_pipeline_properties_ext: unsafe { unsafe extern "system" fn get_pipeline_properties_ext( - _device: Device, + _device: crate::vk::Device, _p_pipeline_info: *const PipelineInfoEXT<'_>, _p_pipeline_properties: *mut BaseOutStructure<'_>, ) -> Result { @@ -8855,6 +9937,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod frame_boundary { use super::super::*; @@ -8894,6 +9998,7 @@ pub mod ext { 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, @@ -9005,6 +10110,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod color_write_enable { use super::super::*; @@ -9018,6 +10145,7 @@ pub mod ext { 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, } @@ -9052,6 +10180,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod primitives_generated_query { use super::super::*; @@ -9096,6 +10246,7 @@ pub mod ext { 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, @@ -9154,6 +10305,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod image_2d_view_of_3d { use super::super::*; @@ -9174,14 +10347,14 @@ pub mod ext { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateMicromapEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, micromap: MicromapEXT, p_allocator: *const AllocationCallbacks<'_>, ); @@ -9193,32 +10366,32 @@ pub mod ext { ); #[allow(non_camel_case_types)] pub type PFN_vkBuildMicromapsEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, micromap_count: u32, p_micromaps: *const MicromapEXT, query_type: QueryType, @@ -9252,18 +10425,19 @@ pub mod ext { ); #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceMicromapCompatibilityEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -9290,7 +10464,7 @@ pub mod ext { Self { create_micromap_ext: unsafe { unsafe extern "system" fn create_micromap_ext( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const MicromapCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_micromap: *mut MicromapEXT, @@ -9307,7 +10481,7 @@ pub mod ext { }, destroy_micromap_ext: unsafe { unsafe extern "system" fn destroy_micromap_ext( - _device: Device, + _device: crate::vk::Device, _micromap: MicromapEXT, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -9343,7 +10517,7 @@ pub mod ext { }, build_micromaps_ext: unsafe { unsafe extern "system" fn build_micromaps_ext( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _info_count: u32, _p_infos: *const MicromapBuildInfoEXT<'_>, @@ -9360,7 +10534,7 @@ pub mod ext { }, copy_micromap_ext: unsafe { unsafe extern "system" fn copy_micromap_ext( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _p_info: *const CopyMicromapInfoEXT<'_>, ) -> Result { @@ -9376,7 +10550,7 @@ pub mod ext { }, copy_micromap_to_memory_ext: unsafe { unsafe extern "system" fn copy_micromap_to_memory_ext( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _p_info: *const CopyMicromapToMemoryInfoEXT<'_>, ) -> Result { @@ -9396,7 +10570,7 @@ pub mod ext { }, copy_memory_to_micromap_ext: unsafe { unsafe extern "system" fn copy_memory_to_micromap_ext( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _p_info: *const CopyMemoryToMicromapInfoEXT<'_>, ) -> Result { @@ -9416,7 +10590,7 @@ pub mod ext { }, write_micromaps_properties_ext: unsafe { unsafe extern "system" fn write_micromaps_properties_ext( - _device: Device, + _device: crate::vk::Device, _micromap_count: u32, _p_micromaps: *const MicromapEXT, _query_type: QueryType, @@ -9520,7 +10694,7 @@ pub mod ext { }, get_device_micromap_compatibility_ext: unsafe { unsafe extern "system" fn get_device_micromap_compatibility_ext( - _device: Device, + _device: crate::vk::Device, _p_version_info: *const MicromapVersionInfoEXT<'_>, _p_compatibility: *mut AccelerationStructureCompatibilityKHR, ) { @@ -9541,7 +10715,7 @@ pub mod ext { }, get_micromap_build_sizes_ext: unsafe { unsafe extern "system" fn get_micromap_build_sizes_ext( - _device: Device, + _device: crate::vk::Device, _build_type: AccelerationStructureBuildTypeKHR, _p_build_info: *const MicromapBuildInfoEXT<'_>, _p_size_info: *mut MicromapBuildSizesInfoEXT<'_>, @@ -9563,6 +10737,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod load_store_op_none { use super::super::*; @@ -9583,9 +10779,13 @@ pub mod ext { }; pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] - pub type PFN_vkSetDeviceMemoryPriorityEXT = - unsafe extern "system" fn(device: Device, memory: DeviceMemory, priority: f32); + 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, } @@ -9599,7 +10799,7 @@ pub mod ext { Self { set_device_memory_priority_ext: unsafe { unsafe extern "system" fn set_device_memory_priority_ext( - _device: Device, + _device: crate::vk::Device, _memory: DeviceMemory, _priority: f32, ) { @@ -9620,6 +10820,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod image_sliced_view_of_3d { use super::super::*; @@ -9816,6 +11038,7 @@ pub mod ext { 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, @@ -10484,6 +11707,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod subpass_merge_feedback { use super::super::*; @@ -10498,17 +11743,18 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetShaderModuleIdentifierEXT = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: @@ -10524,7 +11770,7 @@ pub mod ext { Self { get_shader_module_identifier_ext: unsafe { unsafe extern "system" fn get_shader_module_identifier_ext( - _device: Device, + _device: crate::vk::Device, _shader_module: ShaderModule, _p_identifier: *mut ShaderModuleIdentifierEXT<'_>, ) { @@ -10545,7 +11791,7 @@ pub mod ext { }, get_shader_module_create_info_identifier_ext: unsafe { unsafe extern "system" fn get_shader_module_create_info_identifier_ext( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const ShaderModuleCreateInfo<'_>, _p_identifier: *mut ShaderModuleIdentifierEXT<'_>, ) { @@ -10567,6 +11813,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod rasterization_order_attachment_access { use super::super::*; @@ -10594,7 +11862,7 @@ pub mod ext { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateShadersEXT = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, create_info_count: u32, p_create_infos: *const ShaderCreateInfoEXT<'_>, p_allocator: *const AllocationCallbacks<'_>, @@ -10602,13 +11870,13 @@ pub mod ext { ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyShaderEXT = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, shader: ShaderEXT, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetShaderBinaryDataEXT = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, shader: ShaderEXT, p_data_size: *mut usize, p_data: *mut c_void, @@ -10621,6 +11889,7 @@ pub mod ext { 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 {} @@ -10632,7 +11901,7 @@ pub mod ext { Self { create_shaders_ext: unsafe { unsafe extern "system" fn create_shaders_ext( - _device: Device, + _device: crate::vk::Device, _create_info_count: u32, _p_create_infos: *const ShaderCreateInfoEXT<'_>, _p_allocator: *const AllocationCallbacks<'_>, @@ -10650,7 +11919,7 @@ pub mod ext { }, destroy_shader_ext: unsafe { unsafe extern "system" fn destroy_shader_ext( - _device: Device, + _device: crate::vk::Device, _shader: ShaderEXT, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -10666,7 +11935,7 @@ pub mod ext { }, get_shader_binary_data_ext: unsafe { unsafe extern "system" fn get_shader_binary_data_ext( - _device: Device, + _device: crate::vk::Device, _shader: ShaderEXT, _p_data_size: *mut usize, _p_data: *mut c_void, @@ -11676,6 +12945,28 @@ pub mod ext { } } } + #[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 + } + } } pub mod mutable_descriptor_type { use super::super::*; @@ -11713,6 +13004,7 @@ pub mod ext { 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, @@ -11748,6 +13040,28 @@ pub mod ext { } } } + #[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 + } + } } } pub mod fuchsia { @@ -11758,12 +13072,13 @@ pub mod fuchsia { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -11777,7 +13092,7 @@ pub mod fuchsia { Self { create_image_pipe_surface_fuchsia: unsafe { unsafe extern "system" fn create_image_pipe_surface_fuchsia( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -11800,6 +13115,28 @@ pub mod fuchsia { } } } + #[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 + } + } } pub mod external_memory { use super::super::*; @@ -11808,19 +13145,20 @@ pub mod fuchsia { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: @@ -11836,7 +13174,7 @@ pub mod fuchsia { Self { get_memory_zircon_handle_fuchsia: unsafe { unsafe extern "system" fn get_memory_zircon_handle_fuchsia( - _device: Device, + _device: crate::vk::Device, _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA<'_>, _p_zircon_handle: *mut zx_handle_t, ) -> Result { @@ -11857,7 +13195,7 @@ pub mod fuchsia { }, get_memory_zircon_handle_properties_fuchsia: unsafe { unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia( - _device: Device, + _device: crate::vk::Device, _handle_type: ExternalMemoryHandleTypeFlags, _zircon_handle: zx_handle_t, _p_memory_zircon_handle_properties : * mut MemoryZirconHandlePropertiesFUCHSIA < '_ >, @@ -11880,6 +13218,28 @@ pub mod fuchsia { } } } + #[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 + } + } } pub mod external_semaphore { use super::super::*; @@ -11888,18 +13248,19 @@ pub mod fuchsia { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -11914,7 +13275,7 @@ pub mod fuchsia { Self { import_semaphore_zircon_handle_fuchsia: unsafe { unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia( - _device: Device, + _device: crate::vk::Device, _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA < '_ >, ) -> Result { panic!(concat!( @@ -11934,7 +13295,7 @@ pub mod fuchsia { }, get_semaphore_zircon_handle_fuchsia: unsafe { unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia( - _device: Device, + _device: crate::vk::Device, _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA< '_, >, @@ -11958,6 +13319,28 @@ pub mod fuchsia { } } } + #[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 + } + } } pub mod buffer_collection { use super::super::*; @@ -11966,7 +13349,7 @@ pub mod fuchsia { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>, p_allocator: *const AllocationCallbacks<'_>, p_collection: *mut BufferCollectionFUCHSIA, @@ -11974,31 +13357,32 @@ pub mod fuchsia { #[allow(non_camel_case_types)] pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, collection: BufferCollectionFUCHSIA, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn( - device: Device, + 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: @@ -12019,7 +13403,7 @@ pub mod fuchsia { Self { create_buffer_collection_fuchsia: unsafe { unsafe extern "system" fn create_buffer_collection_fuchsia( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const BufferCollectionCreateInfoFUCHSIA<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_collection: *mut BufferCollectionFUCHSIA, @@ -12041,7 +13425,7 @@ pub mod fuchsia { }, set_buffer_collection_image_constraints_fuchsia: unsafe { unsafe extern "system" fn set_buffer_collection_image_constraints_fuchsia( - _device: Device, + _device: crate::vk::Device, _collection: BufferCollectionFUCHSIA, _p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA<'_>, ) -> Result { @@ -12062,7 +13446,7 @@ pub mod fuchsia { }, set_buffer_collection_buffer_constraints_fuchsia: unsafe { unsafe extern "system" fn set_buffer_collection_buffer_constraints_fuchsia( - _device: Device, + _device: crate::vk::Device, _collection: BufferCollectionFUCHSIA, _p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA<'_>, ) -> Result { @@ -12083,7 +13467,7 @@ pub mod fuchsia { }, destroy_buffer_collection_fuchsia: unsafe { unsafe extern "system" fn destroy_buffer_collection_fuchsia( - _device: Device, + _device: crate::vk::Device, _collection: BufferCollectionFUCHSIA, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -12104,7 +13488,7 @@ pub mod fuchsia { }, get_buffer_collection_properties_fuchsia: unsafe { unsafe extern "system" fn get_buffer_collection_properties_fuchsia( - _device: Device, + _device: crate::vk::Device, _collection: BufferCollectionFUCHSIA, _p_properties: *mut BufferCollectionPropertiesFUCHSIA<'_>, ) -> Result { @@ -12126,6 +13510,28 @@ pub mod fuchsia { } } } + #[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 + } + } } } pub mod ggp { @@ -12136,13 +13542,14 @@ pub mod ggp { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateStreamDescriptorSurfaceGGP = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -12156,7 +13563,7 @@ pub mod ggp { Self { create_stream_descriptor_surface_ggp: unsafe { unsafe extern "system" fn create_stream_descriptor_surface_ggp( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -12179,6 +13586,28 @@ pub mod ggp { } } } + #[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 + } + } } pub mod frame_token { use super::super::*; @@ -12195,19 +13624,20 @@ pub mod google { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetRefreshCycleDurationGOOGLE = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -12222,7 +13652,7 @@ pub mod google { Self { get_refresh_cycle_duration_google: unsafe { unsafe extern "system" fn get_refresh_cycle_duration_google( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE, ) -> Result { @@ -12243,7 +13673,7 @@ pub mod google { }, get_past_presentation_timing_google: unsafe { unsafe extern "system" fn get_past_presentation_timing_google( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_presentation_timing_count: *mut u32, _p_presentation_timings: *mut PastPresentationTimingGOOGLE, @@ -12266,6 +13696,28 @@ pub mod google { } } } + #[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 + } + } } pub mod hlsl_functionality1 { use super::super::*; @@ -12301,7 +13753,7 @@ pub mod huawei { #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, renderpass: RenderPass, p_max_workgroup_size: *mut Extent2D, ) -> Result; @@ -12309,6 +13761,7 @@ pub mod huawei { 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, @@ -12324,7 +13777,7 @@ pub mod huawei { Self { get_device_subpass_shading_max_workgroup_size_huawei: unsafe { unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei( - _device: Device, + _device: crate::vk::Device, _renderpass: RenderPass, _p_max_workgroup_size: *mut Extent2D, ) -> Result { @@ -12364,8 +13817,30 @@ pub mod huawei { } } } - } - pub mod invocation_mask { + #[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 + } + } + } + pub mod invocation_mask { use super::super::*; pub const NAME: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_invocation_mask\0") }; @@ -12377,6 +13852,7 @@ pub mod huawei { 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, } @@ -12411,6 +13887,28 @@ pub mod huawei { } } } + #[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 + } + } } pub mod cluster_culling_shader { use super::super::*; @@ -12431,6 +13929,7 @@ pub mod huawei { 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, @@ -12488,6 +13987,28 @@ pub mod huawei { } } } + #[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 + } + } } } pub mod img { @@ -12524,11 +14045,12 @@ pub mod intel { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkInitializePerformanceApiINTEL = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>, ) -> Result; #[allow(non_camel_case_types)] - pub type PFN_vkUninitializePerformanceApiINTEL = unsafe extern "system" fn(device: Device); + 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, @@ -12548,14 +14070,14 @@ pub mod intel { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkAcquirePerformanceConfigurationINTEL = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, configuration: PerformanceConfigurationINTEL, ) -> Result; @@ -12567,11 +14089,12 @@ pub mod intel { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetPerformanceParameterINTEL = unsafe extern "system" fn( - device: Device, + 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, @@ -12594,7 +14117,7 @@ pub mod intel { Self { initialize_performance_api_intel: unsafe { unsafe extern "system" fn initialize_performance_api_intel( - _device: Device, + _device: crate::vk::Device, _p_initialize_info: *const InitializePerformanceApiInfoINTEL<'_>, ) -> Result { panic!(concat!( @@ -12614,7 +14137,7 @@ pub mod intel { }, uninitialize_performance_api_intel: unsafe { unsafe extern "system" fn uninitialize_performance_api_intel( - _device: Device, + _device: crate::vk::Device, ) { panic!(concat!( "Unable to load ", @@ -12693,7 +14216,7 @@ pub mod intel { }, acquire_performance_configuration_intel: unsafe { unsafe extern "system" fn acquire_performance_configuration_intel( - _device: Device, + _device: crate::vk::Device, _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL<'_>, _p_configuration: *mut PerformanceConfigurationINTEL, ) -> Result { @@ -12714,7 +14237,7 @@ pub mod intel { }, release_performance_configuration_intel: unsafe { unsafe extern "system" fn release_performance_configuration_intel( - _device: Device, + _device: crate::vk::Device, _configuration: PerformanceConfigurationINTEL, ) -> Result { panic!(concat!( @@ -12754,7 +14277,7 @@ pub mod intel { }, get_performance_parameter_intel: unsafe { unsafe extern "system" fn get_performance_parameter_intel( - _device: Device, + _device: crate::vk::Device, _parameter: PerformanceParameterTypeINTEL, _p_value: *mut PerformanceValueINTEL, ) -> Result { @@ -12776,6 +14299,28 @@ pub mod intel { } } } + #[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 + } + } } } pub mod khr { @@ -12785,7 +14330,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 25u32; #[allow(non_camel_case_types)] pub type PFN_vkDestroySurfaceKHR = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, surface: SurfaceKHR, p_allocator: *const AllocationCallbacks<'_>, ); @@ -12821,6 +14366,7 @@ pub mod khr { 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, @@ -12840,7 +14386,7 @@ pub mod khr { Self { destroy_surface_khr: unsafe { unsafe extern "system" fn destroy_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _surface: SurfaceKHR, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -12944,6 +14490,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod swapchain { use super::super::*; @@ -12959,6 +14527,7 @@ pub mod khr { ) -> Result; #[derive(Clone)] + #[doc = "Raw VK_KHR_swapchain instance-level function pointers"] pub struct InstanceFn { pub get_physical_device_present_rectangles_khr: PFN_vkGetPhysicalDevicePresentRectanglesKHR, @@ -12996,29 +14565,51 @@ pub mod khr { } } } + #[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: Device, + 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: Device, + device: crate::vk::Device, swapchain: SwapchainKHR, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetSwapchainImagesKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, @@ -13032,24 +14623,25 @@ pub mod khr { ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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, @@ -13072,7 +14664,7 @@ pub mod khr { Self { create_swapchain_khr: unsafe { unsafe extern "system" fn create_swapchain_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const SwapchainCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_swapchain: *mut SwapchainKHR, @@ -13089,7 +14681,7 @@ pub mod khr { }, destroy_swapchain_khr: unsafe { unsafe extern "system" fn destroy_swapchain_khr( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -13108,7 +14700,7 @@ pub mod khr { }, get_swapchain_images_khr: unsafe { unsafe extern "system" fn get_swapchain_images_khr( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_swapchain_image_count: *mut u32, _p_swapchain_images: *mut Image, @@ -13129,7 +14721,7 @@ pub mod khr { }, acquire_next_image_khr: unsafe { unsafe extern "system" fn acquire_next_image_khr( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _timeout: u64, _semaphore: Semaphore, @@ -13166,7 +14758,7 @@ pub mod khr { }, get_device_group_present_capabilities_khr: unsafe { unsafe extern "system" fn get_device_group_present_capabilities_khr( - _device: Device, + _device: crate::vk::Device, _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >, ) -> Result { panic!(concat!( @@ -13186,7 +14778,7 @@ pub mod khr { }, get_device_group_surface_present_modes_khr: unsafe { unsafe extern "system" fn get_device_group_surface_present_modes_khr( - _device: Device, + _device: crate::vk::Device, _surface: SurfaceKHR, _p_modes: *mut DeviceGroupPresentModeFlagsKHR, ) -> Result { @@ -13207,7 +14799,7 @@ pub mod khr { }, acquire_next_image2_khr: unsafe { unsafe extern "system" fn acquire_next_image2_khr( - _device: Device, + _device: crate::vk::Device, _p_acquire_info: *const AcquireNextImageInfoKHR<'_>, _p_image_index: *mut u32, ) -> Result { @@ -13228,6 +14820,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod display { use super::super::*; @@ -13280,12 +14894,13 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateDisplayPlaneSurfaceKHR = unsafe extern "system" fn( - instance: Instance, + 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, @@ -13436,7 +15051,7 @@ pub mod khr { }, create_display_plane_surface_khr: unsafe { unsafe extern "system" fn create_display_plane_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const DisplaySurfaceCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -13459,6 +15074,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod display_swapchain { use super::super::*; @@ -13467,13 +15104,14 @@ pub mod khr { pub const SPEC_VERSION: u32 = 10u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateSharedSwapchainsKHR = unsafe extern "system" fn( - device: Device, + 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, } @@ -13487,7 +15125,7 @@ pub mod khr { Self { create_shared_swapchains_khr: unsafe { unsafe extern "system" fn create_shared_swapchains_khr( - _device: Device, + _device: crate::vk::Device, _swapchain_count: u32, _p_create_infos: *const SwapchainCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, @@ -13510,6 +15148,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod xlib_surface { use super::super::*; @@ -13518,7 +15178,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 6u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_create_info: *const XlibSurfaceCreateInfoKHR<'_>, p_allocator: *const AllocationCallbacks<'_>, p_surface: *mut SurfaceKHR, @@ -13532,6 +15192,7 @@ pub mod khr { 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: @@ -13547,7 +15208,7 @@ pub mod khr { Self { create_xlib_surface_khr: unsafe { unsafe extern "system" fn create_xlib_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const XlibSurfaceCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -13591,6 +15252,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod xcb_surface { use super::super::*; @@ -13599,7 +15282,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 6u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_create_info: *const XcbSurfaceCreateInfoKHR<'_>, p_allocator: *const AllocationCallbacks<'_>, p_surface: *mut SurfaceKHR, @@ -13613,6 +15296,7 @@ pub mod khr { 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: @@ -13628,7 +15312,7 @@ pub mod khr { Self { create_xcb_surface_khr: unsafe { unsafe extern "system" fn create_xcb_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const XcbSurfaceCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -13671,6 +15355,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod wayland_surface { use super::super::*; @@ -13679,7 +15385,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 6u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>, p_allocator: *const AllocationCallbacks<'_>, p_surface: *mut SurfaceKHR, @@ -13692,6 +15398,7 @@ pub mod khr { 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: @@ -13707,7 +15414,7 @@ pub mod khr { Self { create_wayland_surface_khr: unsafe { unsafe extern "system" fn create_wayland_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const WaylandSurfaceCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -13750,6 +15457,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod android_surface { use super::super::*; @@ -13758,12 +15487,13 @@ pub mod khr { pub const SPEC_VERSION: u32 = 6u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -13777,7 +15507,7 @@ pub mod khr { Self { create_android_surface_khr: unsafe { unsafe extern "system" fn create_android_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const AndroidSurfaceCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -13799,6 +15529,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod win32_surface { use super::super::*; @@ -13807,7 +15559,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 6u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateWin32SurfaceKHR = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_create_info: *const Win32SurfaceCreateInfoKHR<'_>, p_allocator: *const AllocationCallbacks<'_>, p_surface: *mut SurfaceKHR, @@ -13819,6 +15571,7 @@ pub mod khr { 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: @@ -13834,7 +15587,7 @@ pub mod khr { Self { create_win32_surface_khr: unsafe { unsafe extern "system" fn create_win32_surface_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const Win32SurfaceCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -13876,6 +15629,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod sampler_mirror_clamp_to_edge { use super::super::*; @@ -13905,6 +15680,7 @@ pub mod khr { 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, @@ -13965,22 +15741,44 @@ pub mod khr { } } } + #[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: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, video_session: VideoSessionKHR, p_memory_requirements_count: *mut u32, p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>, @@ -13988,14 +15786,14 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkBindVideoSessionMemoryKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>, p_allocator: *const AllocationCallbacks<'_>, p_video_session_parameters: *mut VideoSessionParametersKHR, @@ -14003,14 +15801,14 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkUpdateVideoSessionParametersKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, video_session_parameters: VideoSessionParametersKHR, p_allocator: *const AllocationCallbacks<'_>, ); @@ -14030,6 +15828,7 @@ pub mod khr { 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, @@ -14053,7 +15852,7 @@ pub mod khr { Self { create_video_session_khr: unsafe { unsafe extern "system" fn create_video_session_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const VideoSessionCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_video_session: *mut VideoSessionKHR, @@ -14074,7 +15873,7 @@ pub mod khr { }, destroy_video_session_khr: unsafe { unsafe extern "system" fn destroy_video_session_khr( - _device: Device, + _device: crate::vk::Device, _video_session: VideoSessionKHR, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -14094,7 +15893,7 @@ pub mod khr { }, get_video_session_memory_requirements_khr: unsafe { unsafe extern "system" fn get_video_session_memory_requirements_khr( - _device: Device, + _device: crate::vk::Device, _video_session: VideoSessionKHR, _p_memory_requirements_count: *mut u32, _p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR<'_>, @@ -14116,7 +15915,7 @@ pub mod khr { }, bind_video_session_memory_khr: unsafe { unsafe extern "system" fn bind_video_session_memory_khr( - _device: Device, + _device: crate::vk::Device, _video_session: VideoSessionKHR, _bind_session_memory_info_count: u32, _p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR<'_>, @@ -14137,7 +15936,7 @@ pub mod khr { }, create_video_session_parameters_khr: unsafe { unsafe extern "system" fn create_video_session_parameters_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const VideoSessionParametersCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_video_session_parameters: *mut VideoSessionParametersKHR, @@ -14159,7 +15958,7 @@ pub mod khr { }, update_video_session_parameters_khr: unsafe { unsafe extern "system" fn update_video_session_parameters_khr( - _device: Device, + _device: crate::vk::Device, _video_session_parameters: VideoSessionParametersKHR, _p_update_info: *const VideoSessionParametersUpdateInfoKHR<'_>, ) -> Result { @@ -14180,7 +15979,7 @@ pub mod khr { }, destroy_video_session_parameters_khr: unsafe { unsafe extern "system" fn destroy_video_session_parameters_khr( - _device: Device, + _device: crate::vk::Device, _video_session_parameters: VideoSessionParametersKHR, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -14259,6 +16058,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod video_decode_queue { use super::super::*; @@ -14271,6 +16092,7 @@ pub mod khr { 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, } @@ -14300,6 +16122,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod video_encode_h264 { use super::super::*; @@ -14332,6 +16176,7 @@ pub mod khr { #[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, @@ -14383,6 +16228,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod multiview { use super::super::*; @@ -14439,6 +16306,7 @@ pub mod khr { 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, @@ -14609,6 +16477,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod device_group { use super::super::*; @@ -14616,6 +16506,7 @@ pub mod khr { 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, @@ -14653,9 +16544,31 @@ pub mod khr { } } } + #[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: Device, + device: crate::vk::Device, heap_index: u32, local_device_index: u32, remote_device_index: u32, @@ -14675,6 +16588,7 @@ pub mod khr { 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, @@ -14695,7 +16609,7 @@ pub mod khr { Self { get_device_group_peer_memory_features_khr: unsafe { unsafe extern "system" fn get_device_group_peer_memory_features_khr( - _device: Device, + _device: crate::vk::Device, _heap_index: u32, _local_device_index: u32, _remote_device_index: u32, @@ -14759,7 +16673,7 @@ pub mod khr { }, get_device_group_present_capabilities_khr: unsafe { unsafe extern "system" fn get_device_group_present_capabilities_khr( - _device: Device, + _device: crate::vk::Device, _p_device_group_present_capabilities : * mut DeviceGroupPresentCapabilitiesKHR < '_ >, ) -> Result { panic!(concat!( @@ -14779,7 +16693,7 @@ pub mod khr { }, get_device_group_surface_present_modes_khr: unsafe { unsafe extern "system" fn get_device_group_surface_present_modes_khr( - _device: Device, + _device: crate::vk::Device, _surface: SurfaceKHR, _p_modes: *mut DeviceGroupPresentModeFlagsKHR, ) -> Result { @@ -14800,7 +16714,7 @@ pub mod khr { }, acquire_next_image2_khr: unsafe { unsafe extern "system" fn acquire_next_image2_khr( - _device: Device, + _device: crate::vk::Device, _p_acquire_info: *const AcquireNextImageInfoKHR<'_>, _p_image_index: *mut u32, ) -> Result { @@ -14821,6 +16735,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_draw_parameters { use super::super::*; @@ -14835,11 +16771,12 @@ pub mod khr { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkTrimCommandPool = unsafe extern "system" fn( - device: Device, + 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, } @@ -14853,7 +16790,7 @@ pub mod khr { Self { trim_command_pool_khr: unsafe { unsafe extern "system" fn trim_command_pool_khr( - _device: Device, + _device: crate::vk::Device, _command_pool: CommandPool, _flags: CommandPoolTrimFlags, ) { @@ -14873,6 +16810,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod device_group_creation { use super::super::*; @@ -14881,11 +16840,12 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkEnumeratePhysicalDeviceGroups = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -14899,7 +16859,7 @@ pub mod khr { Self { enumerate_physical_device_groups_khr: unsafe { unsafe extern "system" fn enumerate_physical_device_groups_khr( - _instance: Instance, + _instance: crate::vk::Instance, _p_physical_device_group_count: *mut u32, _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties< '_, @@ -14923,6 +16883,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_memory_capabilities { use super::super::*; @@ -14937,6 +16919,7 @@ pub mod khr { 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, @@ -14973,6 +16956,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_memory { use super::super::*; @@ -14987,19 +16992,20 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetMemoryWin32HandleKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15014,7 +17020,7 @@ pub mod khr { Self { get_memory_win32_handle_khr: unsafe { unsafe extern "system" fn get_memory_win32_handle_khr( - _device: Device, + _device: crate::vk::Device, _p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR<'_>, _p_handle: *mut HANDLE, ) -> Result { @@ -15034,7 +17040,7 @@ pub mod khr { }, get_memory_win32_handle_properties_khr: unsafe { unsafe extern "system" fn get_memory_win32_handle_properties_khr( - _device: Device, + _device: crate::vk::Device, _handle_type: ExternalMemoryHandleTypeFlags, _handle: HANDLE, _p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR< @@ -15059,6 +17065,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_memory_fd { use super::super::*; @@ -15067,18 +17095,19 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetMemoryFdKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15093,7 +17122,7 @@ pub mod khr { Self { get_memory_fd_khr: unsafe { unsafe extern "system" fn get_memory_fd_khr( - _device: Device, + _device: crate::vk::Device, _p_get_fd_info: *const MemoryGetFdInfoKHR<'_>, _p_fd: *mut c_int, ) -> Result { @@ -15109,7 +17138,7 @@ pub mod khr { }, get_memory_fd_properties_khr: unsafe { unsafe extern "system" fn get_memory_fd_properties_khr( - _device: Device, + _device: crate::vk::Device, _handle_type: ExternalMemoryHandleTypeFlags, _fd: c_int, _p_memory_fd_properties: *mut MemoryFdPropertiesKHR<'_>, @@ -15131,6 +17160,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod win32_keyed_mutex { use super::super::*; @@ -15151,6 +17202,7 @@ pub mod khr { 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, @@ -15189,6 +17241,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_semaphore { use super::super::*; @@ -15203,16 +17277,17 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkImportSemaphoreWin32HandleKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15227,7 +17302,7 @@ pub mod khr { Self { import_semaphore_win32_handle_khr: unsafe { unsafe extern "system" fn import_semaphore_win32_handle_khr( - _device: Device, + _device: crate::vk::Device, _p_import_semaphore_win32_handle_info : * const ImportSemaphoreWin32HandleInfoKHR < '_ >, ) -> Result { panic!(concat!( @@ -15247,7 +17322,7 @@ pub mod khr { }, get_semaphore_win32_handle_khr: unsafe { unsafe extern "system" fn get_semaphore_win32_handle_khr( - _device: Device, + _device: crate::vk::Device, _p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR<'_>, _p_handle: *mut HANDLE, ) -> Result { @@ -15268,6 +17343,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_semaphore_fd { use super::super::*; @@ -15276,16 +17373,17 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkImportSemaphoreFdKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15300,7 +17398,7 @@ pub mod khr { Self { import_semaphore_fd_khr: unsafe { unsafe extern "system" fn import_semaphore_fd_khr( - _device: Device, + _device: crate::vk::Device, _p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR<'_>, ) -> Result { panic!(concat!( @@ -15319,7 +17417,7 @@ pub mod khr { }, get_semaphore_fd_khr: unsafe { unsafe extern "system" fn get_semaphore_fd_khr( - _device: Device, + _device: crate::vk::Device, _p_get_fd_info: *const SemaphoreGetFdInfoKHR<'_>, _p_fd: *mut c_int, ) -> Result { @@ -15336,6 +17434,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod push_descriptor { use super::super::*; @@ -15360,6 +17480,7 @@ pub mod khr { 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: @@ -15422,6 +17543,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_float16_int8 { use super::super::*; @@ -15448,7 +17591,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateDescriptorUpdateTemplate = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_descriptor_update_template: *mut DescriptorUpdateTemplate, @@ -15456,18 +17599,19 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyDescriptorUpdateTemplate = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15485,7 +17629,7 @@ pub mod khr { Self { create_descriptor_update_template_khr: unsafe { unsafe extern "system" fn create_descriptor_update_template_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_descriptor_update_template: *mut DescriptorUpdateTemplate, @@ -15507,7 +17651,7 @@ pub mod khr { }, destroy_descriptor_update_template_khr: unsafe { unsafe extern "system" fn destroy_descriptor_update_template_khr( - _device: Device, + _device: crate::vk::Device, _descriptor_update_template: DescriptorUpdateTemplate, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -15528,7 +17672,7 @@ pub mod khr { }, update_descriptor_set_with_template_khr: unsafe { unsafe extern "system" fn update_descriptor_set_with_template_khr( - _device: Device, + _device: crate::vk::Device, _descriptor_set: DescriptorSet, _descriptor_update_template: DescriptorUpdateTemplate, _p_data: *const c_void, @@ -15574,6 +17718,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod imageless_framebuffer { use super::super::*; @@ -15588,7 +17754,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const RenderPassCreateInfo2<'_>, p_allocator: *const AllocationCallbacks<'_>, p_render_pass: *mut RenderPass, @@ -15611,6 +17777,7 @@ pub mod khr { 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, @@ -15627,7 +17794,7 @@ pub mod khr { Self { create_render_pass2_khr: unsafe { unsafe extern "system" fn create_render_pass2_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const RenderPassCreateInfo2<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_render_pass: *mut RenderPass, @@ -15707,6 +17874,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shared_presentable_image { use super::super::*; @@ -15715,8 +17904,9 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetSwapchainStatusKHR = - unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result; + 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, } @@ -15730,7 +17920,7 @@ pub mod khr { Self { get_swapchain_status_khr: unsafe { unsafe extern "system" fn get_swapchain_status_khr( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, ) -> Result { panic!(concat!( @@ -15750,6 +17940,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_fence_capabilities { use super::super::*; @@ -15763,6 +17975,7 @@ pub mod khr { 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, @@ -15799,6 +18012,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_fence { use super::super::*; @@ -15813,16 +18048,17 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkImportFenceWin32HandleKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15837,7 +18073,7 @@ pub mod khr { Self { import_fence_win32_handle_khr: unsafe { unsafe extern "system" fn import_fence_win32_handle_khr( - _device: Device, + _device: crate::vk::Device, _p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR< '_, >, @@ -15858,7 +18094,7 @@ pub mod khr { }, get_fence_win32_handle_khr: unsafe { unsafe extern "system" fn get_fence_win32_handle_khr( - _device: Device, + _device: crate::vk::Device, _p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR<'_>, _p_handle: *mut HANDLE, ) -> Result { @@ -15879,6 +18115,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod external_fence_fd { use super::super::*; @@ -15887,16 +18145,17 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkImportFenceFdKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -15911,7 +18170,7 @@ pub mod khr { Self { import_fence_fd_khr: unsafe { unsafe extern "system" fn import_fence_fd_khr( - _device: Device, + _device: crate::vk::Device, _p_import_fence_fd_info: *const ImportFenceFdInfoKHR<'_>, ) -> Result { panic!(concat!("Unable to load ", stringify!(import_fence_fd_khr))) @@ -15926,7 +18185,7 @@ pub mod khr { }, get_fence_fd_khr: unsafe { unsafe extern "system" fn get_fence_fd_khr( - _device: Device, + _device: crate::vk::Device, _p_get_fd_info: *const FenceGetFdInfoKHR<'_>, _p_fd: *mut c_int, ) -> Result { @@ -15943,6 +18202,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod performance_query { use super::super::*; @@ -15966,6 +18247,7 @@ pub mod khr { 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, @@ -16026,14 +18308,38 @@ pub mod khr { } } } + #[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: Device, + device: crate::vk::Device, p_info: *const AcquireProfilingLockInfoKHR<'_>, ) -> Result; #[allow(non_camel_case_types)] - pub type PFN_vkReleaseProfilingLockKHR = unsafe extern "system" fn(device: Device); + 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, @@ -16048,7 +18354,7 @@ pub mod khr { Self { acquire_profiling_lock_khr: unsafe { unsafe extern "system" fn acquire_profiling_lock_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const AcquireProfilingLockInfoKHR<'_>, ) -> Result { panic!(concat!( @@ -16066,7 +18372,9 @@ pub mod khr { } }, release_profiling_lock_khr: unsafe { - unsafe extern "system" fn release_profiling_lock_khr(_device: Device) { + unsafe extern "system" fn release_profiling_lock_khr( + _device: crate::vk::Device, + ) { panic!(concat!( "Unable to load ", stringify!(release_profiling_lock_khr) @@ -16084,6 +18392,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod maintenance2 { use super::super::*; @@ -16112,6 +18442,7 @@ pub mod khr { ) -> 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, @@ -16171,6 +18502,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod variable_pointers { use super::super::*; @@ -16212,6 +18565,7 @@ pub mod khr { ) -> 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, @@ -16316,6 +18670,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod dedicated_allocation { use super::super::*; @@ -16343,24 +18719,25 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetImageMemoryRequirements2 = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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, @@ -16376,7 +18753,7 @@ pub mod khr { Self { get_image_memory_requirements2_khr: unsafe { unsafe extern "system" fn get_image_memory_requirements2_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageMemoryRequirementsInfo2<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -16397,7 +18774,7 @@ pub mod khr { }, get_buffer_memory_requirements2_khr: unsafe { unsafe extern "system" fn get_buffer_memory_requirements2_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferMemoryRequirementsInfo2<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -16418,7 +18795,7 @@ pub mod khr { }, get_image_sparse_memory_requirements2_khr: unsafe { unsafe extern "system" fn get_image_sparse_memory_requirements2_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, _p_sparse_memory_requirement_count: *mut u32, _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, @@ -16441,6 +18818,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod image_format_list { use super::super::*; @@ -16455,7 +18854,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 13u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const AccelerationStructureCreateInfoKHR<'_>, p_allocator: *const AllocationCallbacks<'_>, p_acceleration_structure: *mut AccelerationStructureKHR, @@ -16463,7 +18862,7 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyAccelerationStructureKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, acceleration_structure: AccelerationStructureKHR, p_allocator: *const AllocationCallbacks<'_>, ); @@ -16485,7 +18884,7 @@ pub mod khr { ); #[allow(non_camel_case_types)] pub type PFN_vkBuildAccelerationStructuresKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, deferred_operation: DeferredOperationKHR, info_count: u32, p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, @@ -16494,20 +18893,20 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCopyAccelerationStructureKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, deferred_operation: DeferredOperationKHR, p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, ) @@ -16515,7 +18914,7 @@ pub mod khr { #[allow(non_camel_case_types)] pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, acceleration_structure_count: u32, p_acceleration_structures: *const AccelerationStructureKHR, query_type: QueryType, @@ -16541,7 +18940,7 @@ pub mod khr { #[allow(non_camel_case_types)] pub type PFN_vkGetAccelerationStructureDeviceAddressKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_info: *const AccelerationStructureDeviceAddressInfoKHR<'_>, ) -> DeviceAddress; #[allow(non_camel_case_types)] @@ -16556,19 +18955,20 @@ pub mod khr { #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -16607,7 +19007,7 @@ pub mod khr { Self { create_acceleration_structure_khr: unsafe { unsafe extern "system" fn create_acceleration_structure_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const AccelerationStructureCreateInfoKHR<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_acceleration_structure: *mut AccelerationStructureKHR, @@ -16629,7 +19029,7 @@ pub mod khr { }, destroy_acceleration_structure_khr: unsafe { unsafe extern "system" fn destroy_acceleration_structure_khr( - _device: Device, + _device: crate::vk::Device, _acceleration_structure: AccelerationStructureKHR, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -16696,7 +19096,7 @@ pub mod khr { }, build_acceleration_structures_khr: unsafe { unsafe extern "system" fn build_acceleration_structures_khr( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _info_count: u32, _p_infos: *const AccelerationStructureBuildGeometryInfoKHR<'_>, @@ -16719,7 +19119,7 @@ pub mod khr { }, copy_acceleration_structure_khr: unsafe { unsafe extern "system" fn copy_acceleration_structure_khr( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _p_info: *const CopyAccelerationStructureInfoKHR<'_>, ) -> Result { @@ -16740,7 +19140,7 @@ pub mod khr { }, copy_acceleration_structure_to_memory_khr: unsafe { unsafe extern "system" fn copy_acceleration_structure_to_memory_khr( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _p_info: *const CopyAccelerationStructureToMemoryInfoKHR<'_>, ) -> Result { @@ -16761,7 +19161,7 @@ pub mod khr { }, copy_memory_to_acceleration_structure_khr: unsafe { unsafe extern "system" fn copy_memory_to_acceleration_structure_khr( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _p_info: *const CopyMemoryToAccelerationStructureInfoKHR<'_>, ) -> Result { @@ -16782,7 +19182,7 @@ pub mod khr { }, write_acceleration_structures_properties_khr: unsafe { unsafe extern "system" fn write_acceleration_structures_properties_khr( - _device: Device, + _device: crate::vk::Device, _acceleration_structure_count: u32, _p_acceleration_structures: *const AccelerationStructureKHR, _query_type: QueryType, @@ -16867,7 +19267,7 @@ pub mod khr { }, get_acceleration_structure_device_address_khr: unsafe { unsafe extern "system" fn get_acceleration_structure_device_address_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const AccelerationStructureDeviceAddressInfoKHR<'_>, ) -> DeviceAddress { panic!(concat!( @@ -16911,7 +19311,7 @@ pub mod khr { }, get_device_acceleration_structure_compatibility_khr: unsafe { unsafe extern "system" fn get_device_acceleration_structure_compatibility_khr( - _device: Device, + _device: crate::vk::Device, _p_version_info: *const AccelerationStructureVersionInfoKHR<'_>, _p_compatibility: *mut AccelerationStructureCompatibilityKHR, ) { @@ -16932,7 +19332,7 @@ pub mod khr { }, get_acceleration_structure_build_sizes_khr: unsafe { unsafe extern "system" fn get_acceleration_structure_build_sizes_khr( - _device: Device, + _device: crate::vk::Device, _build_type: AccelerationStructureBuildTypeKHR, _p_build_info: *const AccelerationStructureBuildGeometryInfoKHR<'_>, _p_max_primitive_counts: *const u32, @@ -16956,6 +19356,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod ray_tracing_pipeline { use super::super::*; @@ -16975,7 +19397,7 @@ pub mod khr { ); #[allow(non_camel_case_types)] pub type PFN_vkCreateRayTracingPipelinesKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, deferred_operation: DeferredOperationKHR, pipeline_cache: PipelineCache, create_info_count: u32, @@ -16985,7 +19407,7 @@ pub mod khr { ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline: Pipeline, first_group: u32, group_count: u32, @@ -16996,7 +19418,7 @@ pub mod khr { #[allow(non_camel_case_types)] pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline: Pipeline, first_group: u32, group_count: u32, @@ -17015,7 +19437,7 @@ pub mod khr { #[allow(non_camel_case_types)] pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline: Pipeline, group: u32, group_shader: ShaderGroupShaderKHR, @@ -17024,6 +19446,7 @@ pub mod khr { 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, @@ -17067,7 +19490,7 @@ pub mod khr { }, create_ray_tracing_pipelines_khr: unsafe { unsafe extern "system" fn create_ray_tracing_pipelines_khr( - _device: Device, + _device: crate::vk::Device, _deferred_operation: DeferredOperationKHR, _pipeline_cache: PipelineCache, _create_info_count: u32, @@ -17092,7 +19515,7 @@ pub mod khr { }, get_ray_tracing_shader_group_handles_khr: unsafe { unsafe extern "system" fn get_ray_tracing_shader_group_handles_khr( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _first_group: u32, _group_count: u32, @@ -17116,7 +19539,7 @@ pub mod khr { }, get_ray_tracing_capture_replay_shader_group_handles_khr: unsafe { unsafe extern "system" fn get_ray_tracing_capture_replay_shader_group_handles_khr( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _first_group: u32, _group_count: u32, @@ -17163,7 +19586,7 @@ pub mod khr { }, get_ray_tracing_shader_group_stack_size_khr: unsafe { unsafe extern "system" fn get_ray_tracing_shader_group_stack_size_khr( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _group: u32, _group_shader: ShaderGroupShaderKHR, @@ -17206,6 +19629,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod ray_query { use super::super::*; @@ -17220,18 +19665,19 @@ pub mod khr { pub const SPEC_VERSION: u32 = 14u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateSamplerYcbcrConversion = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -17246,7 +19692,7 @@ pub mod khr { Self { create_sampler_ycbcr_conversion_khr: unsafe { unsafe extern "system" fn create_sampler_ycbcr_conversion_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_ycbcr_conversion: *mut SamplerYcbcrConversion, @@ -17268,7 +19714,7 @@ pub mod khr { }, destroy_sampler_ycbcr_conversion_khr: unsafe { unsafe extern "system" fn destroy_sampler_ycbcr_conversion_khr( - _device: Device, + _device: crate::vk::Device, _ycbcr_conversion: SamplerYcbcrConversion, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -17290,6 +19736,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod bind_memory2 { use super::super::*; @@ -17298,17 +19766,18 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkBindBufferMemory2 = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -17323,7 +19792,7 @@ pub mod khr { Self { bind_buffer_memory2_khr: unsafe { unsafe extern "system" fn bind_buffer_memory2_khr( - _device: Device, + _device: crate::vk::Device, _bind_info_count: u32, _p_bind_infos: *const BindBufferMemoryInfo<'_>, ) -> Result { @@ -17343,7 +19812,7 @@ pub mod khr { }, bind_image_memory2_khr: unsafe { unsafe extern "system" fn bind_image_memory2_khr( - _device: Device, + _device: crate::vk::Device, _bind_info_count: u32, _p_bind_infos: *const BindImageMemoryInfo<'_>, ) -> Result { @@ -17363,6 +19832,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod portability_subset { use super::super::*; @@ -17377,11 +19868,12 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetDescriptorSetLayoutSupport = unsafe extern "system" fn( - device: Device, + 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, } @@ -17395,7 +19887,7 @@ pub mod khr { Self { get_descriptor_set_layout_support_khr: unsafe { unsafe extern "system" fn get_descriptor_set_layout_support_khr( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, _p_support: *mut DescriptorSetLayoutSupport<'_>, ) { @@ -17417,6 +19909,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod draw_indirect_count { use super::super::*; @@ -17424,6 +19938,7 @@ pub mod khr { 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, @@ -17490,6 +20005,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_subgroup_extended_types { use super::super::*; @@ -17559,22 +20096,23 @@ pub mod khr { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetSemaphoreCounterValue = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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, @@ -17590,7 +20128,7 @@ pub mod khr { Self { get_semaphore_counter_value_khr: unsafe { unsafe extern "system" fn get_semaphore_counter_value_khr( - _device: Device, + _device: crate::vk::Device, _semaphore: Semaphore, _p_value: *mut u64, ) -> Result { @@ -17610,7 +20148,7 @@ pub mod khr { }, wait_semaphores_khr: unsafe { unsafe extern "system" fn wait_semaphores_khr( - _device: Device, + _device: crate::vk::Device, _p_wait_info: *const SemaphoreWaitInfo<'_>, _timeout: u64, ) -> Result { @@ -17626,7 +20164,7 @@ pub mod khr { }, signal_semaphore_khr: unsafe { unsafe extern "system" fn signal_semaphore_khr( - _device: Device, + _device: crate::vk::Device, _p_signal_info: *const SemaphoreSignalInfo<'_>, ) -> Result { panic!(concat!("Unable to load ", stringify!(signal_semaphore_khr))) @@ -17642,6 +20180,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod vulkan_memory_model { use super::super::*; @@ -17668,6 +20228,7 @@ pub mod khr { 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, @@ -17706,6 +20267,28 @@ pub mod khr { } } } + #[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, @@ -17713,6 +20296,7 @@ pub mod khr { 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, } @@ -17748,6 +20332,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod dynamic_rendering_local_read { use super::super::*; @@ -17766,6 +20372,7 @@ pub mod khr { 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, @@ -17823,6 +20430,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_quad_control { use super::super::*; @@ -17857,12 +20486,13 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkWaitForPresentKHR = unsafe extern "system" fn( - device: Device, + 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, } @@ -17876,7 +20506,7 @@ pub mod khr { Self { wait_for_present_khr: unsafe { unsafe extern "system" fn wait_for_present_khr( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _present_id: u64, _timeout: u64, @@ -17894,6 +20524,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod uniform_buffer_standard_layout { use super::super::*; @@ -17909,16 +20561,17 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetBufferOpaqueCaptureAddress = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_info: *const BufferDeviceAddressInfo<'_>, ) -> u64; #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = unsafe extern "system" fn( - device: Device, + 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, @@ -17936,7 +20589,7 @@ pub mod khr { Self { get_buffer_device_address_khr: unsafe { unsafe extern "system" fn get_buffer_device_address_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferDeviceAddressInfo<'_>, ) -> DeviceAddress { panic!(concat!( @@ -17955,7 +20608,7 @@ pub mod khr { }, get_buffer_opaque_capture_address_khr: unsafe { unsafe extern "system" fn get_buffer_opaque_capture_address_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferDeviceAddressInfo<'_>, ) -> u64 { panic!(concat!( @@ -17975,7 +20628,7 @@ pub mod khr { }, get_device_memory_opaque_capture_address_khr: unsafe { unsafe extern "system" fn get_device_memory_opaque_capture_address_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, ) -> u64 { panic!(concat!( @@ -17996,6 +20649,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod deferred_host_operations { use super::super::*; @@ -18004,26 +20679,34 @@ pub mod khr { pub const SPEC_VERSION: u32 = 4u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateDeferredOperationKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + device: crate::vk::Device, operation: DeferredOperationKHR, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] - pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR = - unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> u32; + 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: Device, operation: DeferredOperationKHR) -> Result; + 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: Device, operation: DeferredOperationKHR) -> Result; + 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, @@ -18042,7 +20725,7 @@ pub mod khr { Self { create_deferred_operation_khr: unsafe { unsafe extern "system" fn create_deferred_operation_khr( - _device: Device, + _device: crate::vk::Device, _p_allocator: *const AllocationCallbacks<'_>, _p_deferred_operation: *mut DeferredOperationKHR, ) -> Result { @@ -18062,7 +20745,7 @@ pub mod khr { }, destroy_deferred_operation_khr: unsafe { unsafe extern "system" fn destroy_deferred_operation_khr( - _device: Device, + _device: crate::vk::Device, _operation: DeferredOperationKHR, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -18082,7 +20765,7 @@ pub mod khr { }, get_deferred_operation_max_concurrency_khr: unsafe { unsafe extern "system" fn get_deferred_operation_max_concurrency_khr( - _device: Device, + _device: crate::vk::Device, _operation: DeferredOperationKHR, ) -> u32 { panic!(concat!( @@ -18102,7 +20785,7 @@ pub mod khr { }, get_deferred_operation_result_khr: unsafe { unsafe extern "system" fn get_deferred_operation_result_khr( - _device: Device, + _device: crate::vk::Device, _operation: DeferredOperationKHR, ) -> Result { panic!(concat!( @@ -18122,7 +20805,7 @@ pub mod khr { }, deferred_operation_join_khr: unsafe { unsafe extern "system" fn deferred_operation_join_khr( - _device: Device, + _device: crate::vk::Device, _operation: DeferredOperationKHR, ) -> Result { panic!(concat!( @@ -18142,6 +20825,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod pipeline_executable_properties { use super::super::*; @@ -18151,7 +20856,7 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetPipelineExecutablePropertiesKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_pipeline_info: *const PipelineInfoKHR<'_>, p_executable_count: *mut u32, p_properties: *mut PipelineExecutablePropertiesKHR<'_>, @@ -18159,7 +20864,7 @@ pub mod khr { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetPipelineExecutableStatisticsKHR = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_executable_info: *const PipelineExecutableInfoKHR<'_>, p_statistic_count: *mut u32, p_statistics: *mut PipelineExecutableStatisticKHR<'_>, @@ -18168,12 +20873,13 @@ pub mod khr { #[allow(non_camel_case_types)] pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR = unsafe extern "system" fn( - device: Device, + 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, @@ -18190,7 +20896,7 @@ pub mod khr { Self { get_pipeline_executable_properties_khr: unsafe { unsafe extern "system" fn get_pipeline_executable_properties_khr( - _device: Device, + _device: crate::vk::Device, _p_pipeline_info: *const PipelineInfoKHR<'_>, _p_executable_count: *mut u32, _p_properties: *mut PipelineExecutablePropertiesKHR<'_>, @@ -18212,7 +20918,7 @@ pub mod khr { }, get_pipeline_executable_statistics_khr: unsafe { unsafe extern "system" fn get_pipeline_executable_statistics_khr( - _device: Device, + _device: crate::vk::Device, _p_executable_info: *const PipelineExecutableInfoKHR<'_>, _p_statistic_count: *mut u32, _p_statistics: *mut PipelineExecutableStatisticKHR<'_>, @@ -18234,7 +20940,7 @@ pub mod khr { }, get_pipeline_executable_internal_representations_khr: unsafe { unsafe extern "system" fn get_pipeline_executable_internal_representations_khr( - _device: Device, + _device: crate::vk::Device, _p_executable_info: *const PipelineExecutableInfoKHR<'_>, _p_internal_representation_count: *mut u32, _p_internal_representations : * mut PipelineExecutableInternalRepresentationKHR < '_ >, @@ -18257,6 +20963,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod map_memory2 { use super::super::*; @@ -18265,16 +20993,17 @@ pub mod khr { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkMapMemory2KHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -18289,7 +21018,7 @@ pub mod khr { Self { map_memory2_khr: unsafe { unsafe extern "system" fn map_memory2_khr( - _device: Device, + _device: crate::vk::Device, _p_memory_map_info: *const MemoryMapInfoKHR<'_>, _pp_data: *mut *mut c_void, ) -> Result { @@ -18305,7 +21034,7 @@ pub mod khr { }, unmap_memory2_khr: unsafe { unsafe extern "system" fn unmap_memory2_khr( - _device: Device, + _device: crate::vk::Device, _p_memory_unmap_info: *const MemoryUnmapInfoKHR<'_>, ) -> Result { panic!(concat!("Unable to load ", stringify!(unmap_memory2_khr))) @@ -18321,6 +21050,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_integer_dot_product { use super::super::*; @@ -18359,6 +21110,7 @@ pub mod khr { 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, @@ -18399,9 +21151,31 @@ pub mod khr { } } } + #[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: Device, + device: crate::vk::Device, p_video_session_parameters_info: *const VideoEncodeSessionParametersGetInfoKHR<'_>, p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR<'_>, p_data_size: *mut usize, @@ -18414,6 +21188,7 @@ pub mod khr { 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, @@ -18428,7 +21203,7 @@ pub mod khr { Self { get_encoded_video_session_parameters_khr: unsafe { unsafe extern "system" fn get_encoded_video_session_parameters_khr( - _device: Device, + _device: crate::vk::Device, _p_video_session_parameters_info : * const VideoEncodeSessionParametersGetInfoKHR < '_ >, _p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR<'_>, _p_data_size: *mut usize, @@ -18467,6 +21242,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod synchronization2 { use super::super::*; @@ -18526,6 +21323,7 @@ pub mod khr { 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, @@ -18695,6 +21493,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod fragment_shader_barycentric { use super::super::*; @@ -18759,6 +21579,7 @@ pub mod khr { 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, @@ -18879,6 +21700,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod format_feature_flags2 { use super::super::*; @@ -18897,6 +21740,7 @@ pub mod khr { 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, } @@ -18930,6 +21774,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod portability_enumeration { use super::super::*; @@ -18944,24 +21810,25 @@ pub mod khr { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceBufferMemoryRequirements = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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, @@ -18978,7 +21845,7 @@ pub mod khr { Self { get_device_buffer_memory_requirements_khr: unsafe { unsafe extern "system" fn get_device_buffer_memory_requirements_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceBufferMemoryRequirements<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -18999,7 +21866,7 @@ pub mod khr { }, get_device_image_memory_requirements_khr: unsafe { unsafe extern "system" fn get_device_image_memory_requirements_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceImageMemoryRequirements<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -19020,7 +21887,7 @@ pub mod khr { }, get_device_image_sparse_memory_requirements_khr: unsafe { unsafe extern "system" fn get_device_image_sparse_memory_requirements_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceImageMemoryRequirements<'_>, _p_sparse_memory_requirement_count: *mut u32, _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, @@ -19043,6 +21910,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_subgroup_rotate { use super::super::*; @@ -19072,17 +21961,18 @@ pub mod khr { ); #[allow(non_camel_case_types)] pub type PFN_vkGetRenderingAreaGranularityKHR = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -19122,7 +22012,7 @@ pub mod khr { }, get_rendering_area_granularity_khr: unsafe { unsafe extern "system" fn get_rendering_area_granularity_khr( - _device: Device, + _device: crate::vk::Device, _p_rendering_area_info: *const RenderingAreaInfoKHR<'_>, _p_granularity: *mut Extent2D, ) { @@ -19143,7 +22033,7 @@ pub mod khr { }, get_device_image_subresource_layout_khr: unsafe { unsafe extern "system" fn get_device_image_subresource_layout_khr( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceImageSubresourceInfoKHR<'_>, _p_layout: *mut SubresourceLayout2KHR<'_>, ) { @@ -19164,7 +22054,7 @@ pub mod khr { }, get_image_subresource_layout2_khr: unsafe { unsafe extern "system" fn get_image_subresource_layout2_khr( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_subresource: *const ImageSubresource2KHR<'_>, _p_layout: *mut SubresourceLayout2KHR<'_>, @@ -19187,6 +22077,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod ray_tracing_position_fetch { use super::super::*; @@ -19207,6 +22119,7 @@ pub mod khr { 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, @@ -19243,6 +22156,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod video_decode_av1 { use super::super::*; @@ -19286,6 +22221,7 @@ pub mod khr { 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, @@ -19321,6 +22257,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod calibrated_timestamps { use super::super::*; @@ -19328,6 +22286,7 @@ pub mod khr { 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 {} @@ -19361,7 +22320,30 @@ pub mod khr { } } } + #[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, @@ -19376,7 +22358,7 @@ pub mod khr { Self { get_calibrated_timestamps_khr: unsafe { unsafe extern "system" fn get_calibrated_timestamps_khr( - _device: Device, + _device: crate::vk::Device, _timestamp_count: u32, _p_timestamp_infos: *const CalibratedTimestampInfoKHR<'_>, _p_timestamps: *mut u64, @@ -19399,6 +22381,28 @@ pub mod khr { } } } + #[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 + } + } } pub mod shader_expect_assume { use super::super::*; @@ -19441,6 +22445,7 @@ pub mod khr { #[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, @@ -19579,6 +22584,28 @@ pub mod khr { } } } + #[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 + } + } } } pub mod lunarg { @@ -19605,12 +22632,13 @@ pub mod mvk { pub const SPEC_VERSION: u32 = 3u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateIOSSurfaceMVK = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -19624,7 +22652,7 @@ pub mod mvk { Self { create_ios_surface_mvk: unsafe { unsafe extern "system" fn create_ios_surface_mvk( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const IOSSurfaceCreateInfoMVK<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -19645,6 +22673,28 @@ pub mod mvk { } } } + #[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 + } + } } pub mod macos_surface { use super::super::*; @@ -19653,12 +22703,13 @@ pub mod mvk { pub const SPEC_VERSION: u32 = 3u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateMacOSSurfaceMVK = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -19672,7 +22723,7 @@ pub mod mvk { Self { create_mac_os_surface_mvk: unsafe { unsafe extern "system" fn create_mac_os_surface_mvk( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const MacOSSurfaceCreateInfoMVK<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -19694,6 +22745,28 @@ pub mod mvk { } } } + #[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 + } + } } } pub mod nn { @@ -19704,12 +22777,13 @@ pub mod nn { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateViSurfaceNN = unsafe extern "system" fn( - instance: Instance, + 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, } @@ -19723,7 +22797,7 @@ pub mod nn { Self { create_vi_surface_nn: unsafe { unsafe extern "system" fn create_vi_surface_nn( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const ViSurfaceCreateInfoNN<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -19741,6 +22815,28 @@ pub mod nn { } } } + #[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 + } + } } } pub mod nv { @@ -19780,6 +22876,7 @@ pub mod nv { 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, @@ -19821,6 +22918,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod external_memory { use super::super::*; @@ -19835,12 +22954,13 @@ pub mod nv { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetMemoryWin32HandleNV = unsafe extern "system" fn( - device: Device, + 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, } @@ -19854,7 +22974,7 @@ pub mod nv { Self { get_memory_win32_handle_nv: unsafe { unsafe extern "system" fn get_memory_win32_handle_nv( - _device: Device, + _device: crate::vk::Device, _memory: DeviceMemory, _handle_type: ExternalMemoryHandleTypeFlagsNV, _p_handle: *mut HANDLE, @@ -19876,6 +22996,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod win32_keyed_mutex { use super::super::*; @@ -19896,6 +23038,7 @@ pub mod nv { 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, } @@ -19931,6 +23074,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod sample_mask_override_coverage { use super::super::*; @@ -20007,6 +23172,7 @@ pub mod nv { 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, @@ -20086,6 +23252,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod ray_tracing { use super::super::*; @@ -20094,26 +23282,26 @@ pub mod nv { pub const SPEC_VERSION: u32 = 3u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateAccelerationStructureNV = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, bind_info_count: u32, p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, ) @@ -20157,7 +23345,7 @@ pub mod nv { ); #[allow(non_camel_case_types)] pub type PFN_vkCreateRayTracingPipelinesNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_cache: PipelineCache, create_info_count: u32, p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, @@ -20166,7 +23354,7 @@ pub mod nv { ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetAccelerationStructureHandleNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, acceleration_structure: AccelerationStructureNV, data_size: usize, p_data: *mut c_void, @@ -20182,9 +23370,13 @@ pub mod nv { first_query: u32, ); #[allow(non_camel_case_types)] - pub type PFN_vkCompileDeferredNV = - unsafe extern "system" fn(device: Device, pipeline: Pipeline, shader: u32) -> Result; + 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, @@ -20212,7 +23404,7 @@ pub mod nv { Self { create_acceleration_structure_nv: unsafe { unsafe extern "system" fn create_acceleration_structure_nv( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const AccelerationStructureCreateInfoNV<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_acceleration_structure: *mut AccelerationStructureNV, @@ -20234,7 +23426,7 @@ pub mod nv { }, destroy_acceleration_structure_nv: unsafe { unsafe extern "system" fn destroy_acceleration_structure_nv( - _device: Device, + _device: crate::vk::Device, _acceleration_structure: AccelerationStructureNV, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -20255,7 +23447,7 @@ pub mod nv { }, get_acceleration_structure_memory_requirements_nv: unsafe { unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv( - _device: Device, + _device: crate::vk::Device, _p_info: *const AccelerationStructureMemoryRequirementsInfoNV<'_>, _p_memory_requirements: *mut MemoryRequirements2KHR<'_>, ) { @@ -20276,7 +23468,7 @@ pub mod nv { }, bind_acceleration_structure_memory_nv: unsafe { unsafe extern "system" fn bind_acceleration_structure_memory_nv( - _device: Device, + _device: crate::vk::Device, _bind_info_count: u32, _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV<'_>, ) -> Result { @@ -20374,7 +23566,7 @@ pub mod nv { }, create_ray_tracing_pipelines_nv: unsafe { unsafe extern "system" fn create_ray_tracing_pipelines_nv( - _device: Device, + _device: crate::vk::Device, _pipeline_cache: PipelineCache, _create_info_count: u32, _p_create_infos: *const RayTracingPipelineCreateInfoNV<'_>, @@ -20397,7 +23589,7 @@ pub mod nv { }, get_ray_tracing_shader_group_handles_nv: unsafe { unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _first_group: u32, _group_count: u32, @@ -20421,7 +23613,7 @@ pub mod nv { }, get_acceleration_structure_handle_nv: unsafe { unsafe extern "system" fn get_acceleration_structure_handle_nv( - _device: Device, + _device: crate::vk::Device, _acceleration_structure: AccelerationStructureNV, _data_size: usize, _p_data: *mut c_void, @@ -20467,7 +23659,7 @@ pub mod nv { }, compile_deferred_nv: unsafe { unsafe extern "system" fn compile_deferred_nv( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _shader: u32, ) -> Result { @@ -20484,6 +23676,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod representative_fragment_test { use super::super::*; @@ -20533,6 +23747,7 @@ pub mod nv { 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, @@ -20615,6 +23830,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod fragment_shader_barycentric { use super::super::*; @@ -20648,6 +23885,7 @@ pub mod nv { 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, @@ -20706,6 +23944,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod device_diagnostic_checkpoints { use super::super::*; @@ -20725,6 +23985,7 @@ pub mod nv { 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, @@ -20778,6 +24039,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod dedicated_allocation_image_aliasing { use super::super::*; @@ -20799,6 +24082,7 @@ pub mod nv { 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, @@ -20835,6 +24119,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod coverage_reduction_mode { use super::super::*; @@ -20849,6 +24155,7 @@ pub mod nv { 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, @@ -20882,6 +24189,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod device_generated_commands { use super::super::*; @@ -20890,7 +24219,7 @@ pub mod nv { pub const SPEC_VERSION: u32 = 3u32; #[allow(non_camel_case_types)] pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, p_memory_requirements: *mut MemoryRequirements2<'_>, ); @@ -20914,7 +24243,7 @@ pub mod nv { ); #[allow(non_camel_case_types)] pub type PFN_vkCreateIndirectCommandsLayoutNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, p_allocator: *const AllocationCallbacks<'_>, p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, @@ -20922,11 +24251,12 @@ pub mod nv { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyIndirectCommandsLayoutNV = unsafe extern "system" fn( - device: Device, + 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, @@ -20946,7 +24276,7 @@ pub mod nv { Self { get_generated_commands_memory_requirements_nv: unsafe { unsafe extern "system" fn get_generated_commands_memory_requirements_nv( - _device: Device, + _device: crate::vk::Device, _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -21030,7 +24360,7 @@ pub mod nv { }, create_indirect_commands_layout_nv: unsafe { unsafe extern "system" fn create_indirect_commands_layout_nv( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const IndirectCommandsLayoutCreateInfoNV<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, @@ -21052,7 +24382,7 @@ pub mod nv { }, destroy_indirect_commands_layout_nv: unsafe { unsafe extern "system" fn destroy_indirect_commands_layout_nv( - _device: Device, + _device: crate::vk::Device, _indirect_commands_layout: IndirectCommandsLayoutNV, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -21074,6 +24404,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod inherited_viewport_scissor { use super::super::*; @@ -21100,34 +24452,34 @@ pub mod nv { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateCudaModuleNV = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, module: CudaModuleNV, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkDestroyCudaFunctionNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, function: CudaFunctionNV, p_allocator: *const AllocationCallbacks<'_>, ); @@ -21137,6 +24489,7 @@ pub mod nv { 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, @@ -21155,7 +24508,7 @@ pub mod nv { Self { create_cuda_module_nv: unsafe { unsafe extern "system" fn create_cuda_module_nv( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const CudaModuleCreateInfoNV<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_module: *mut CudaModuleNV, @@ -21175,7 +24528,7 @@ pub mod nv { }, get_cuda_module_cache_nv: unsafe { unsafe extern "system" fn get_cuda_module_cache_nv( - _device: Device, + _device: crate::vk::Device, _module: CudaModuleNV, _p_cache_size: *mut usize, _p_cache_data: *mut c_void, @@ -21196,7 +24549,7 @@ pub mod nv { }, create_cuda_function_nv: unsafe { unsafe extern "system" fn create_cuda_function_nv( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const CudaFunctionCreateInfoNV<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_function: *mut CudaFunctionNV, @@ -21217,7 +24570,7 @@ pub mod nv { }, destroy_cuda_module_nv: unsafe { unsafe extern "system" fn destroy_cuda_module_nv( - _device: Device, + _device: crate::vk::Device, _module: CudaModuleNV, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -21236,7 +24589,7 @@ pub mod nv { }, destroy_cuda_function_nv: unsafe { unsafe extern "system" fn destroy_cuda_function_nv( - _device: Device, + _device: crate::vk::Device, _function: CudaFunctionNV, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -21276,6 +24629,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod low_latency { use super::super::*; @@ -21295,6 +24670,7 @@ pub mod nv { 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, } @@ -21330,6 +24706,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod ray_tracing_motion_blur { use super::super::*; @@ -21354,6 +24752,7 @@ pub mod nv { 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, @@ -21404,6 +24803,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod external_memory_rdma { use super::super::*; @@ -21412,11 +24833,12 @@ pub mod nv { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetMemoryRemoteAddressNV = unsafe extern "system" fn( - device: Device, + 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, } @@ -21430,7 +24852,7 @@ pub mod nv { Self { get_memory_remote_address_nv: unsafe { unsafe extern "system" fn get_memory_remote_address_nv( - _device: Device, + _device: crate::vk::Device, _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV< '_, >, @@ -21453,6 +24875,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod displacement_micromap { use super::super::*; @@ -21483,6 +24927,7 @@ pub mod nv { 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, @@ -21544,6 +24989,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod memory_decompression { use super::super::*; @@ -21564,6 +25031,7 @@ pub mod nv { 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, @@ -21621,6 +25089,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod device_generated_commands_compute { use super::super::*; @@ -21630,7 +25120,7 @@ pub mod nv { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetPipelineIndirectMemoryRequirementsNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const ComputePipelineCreateInfo<'_>, p_memory_requirements: *mut MemoryRequirements2<'_>, ); @@ -21643,10 +25133,11 @@ pub mod nv { #[allow(non_camel_case_types)] pub type PFN_vkGetPipelineIndirectDeviceAddressNV = unsafe extern "system" fn( - device: Device, + 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, @@ -21663,7 +25154,7 @@ pub mod nv { Self { get_pipeline_indirect_memory_requirements_nv: unsafe { unsafe extern "system" fn get_pipeline_indirect_memory_requirements_nv( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const ComputePipelineCreateInfo<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -21705,7 +25196,7 @@ pub mod nv { }, get_pipeline_indirect_device_address_nv: unsafe { unsafe extern "system" fn get_pipeline_indirect_device_address_nv( - _device: Device, + _device: crate::vk::Device, _p_info: *const PipelineIndirectDeviceAddressInfoNV<'_>, ) -> DeviceAddress { panic!(concat!( @@ -21726,6 +25217,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod linear_color_attachment { use super::super::*; @@ -21747,6 +25260,7 @@ pub mod nv { 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, @@ -21786,22 +25300,44 @@ pub mod nv { } } } + #[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: Device, + 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: Device, + device: crate::vk::Device, session: OpticalFlowSessionNV, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkBindOpticalFlowSessionImageNV = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, session: OpticalFlowSessionNV, binding_point: OpticalFlowSessionBindingPointNV, view: ImageView, @@ -21814,6 +25350,7 @@ pub mod nv { 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, @@ -21830,7 +25367,7 @@ pub mod nv { Self { create_optical_flow_session_nv: unsafe { unsafe extern "system" fn create_optical_flow_session_nv( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const OpticalFlowSessionCreateInfoNV<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_session: *mut OpticalFlowSessionNV, @@ -21851,7 +25388,7 @@ pub mod nv { }, destroy_optical_flow_session_nv: unsafe { unsafe extern "system" fn destroy_optical_flow_session_nv( - _device: Device, + _device: crate::vk::Device, _session: OpticalFlowSessionNV, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -21871,7 +25408,7 @@ pub mod nv { }, bind_optical_flow_session_image_nv: unsafe { unsafe extern "system" fn bind_optical_flow_session_image_nv( - _device: Device, + _device: crate::vk::Device, _session: OpticalFlowSessionNV, _binding_point: OpticalFlowSessionBindingPointNV, _view: ImageView, @@ -21915,6 +25452,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod ray_tracing_invocation_reorder { use super::super::*; @@ -21937,25 +25496,25 @@ pub mod nv { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkSetLatencySleepModeNV = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, swapchain: SwapchainKHR, p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, ); @@ -21965,6 +25524,7 @@ pub mod nv { 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, @@ -21982,7 +25542,7 @@ pub mod nv { Self { set_latency_sleep_mode_nv: unsafe { unsafe extern "system" fn set_latency_sleep_mode_nv( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_sleep_mode_info: *const LatencySleepModeInfoNV<'_>, ) -> Result { @@ -22002,7 +25562,7 @@ pub mod nv { }, latency_sleep_nv: unsafe { unsafe extern "system" fn latency_sleep_nv( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_sleep_info: *const LatencySleepInfoNV<'_>, ) -> Result { @@ -22018,7 +25578,7 @@ pub mod nv { }, set_latency_marker_nv: unsafe { unsafe extern "system" fn set_latency_marker_nv( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_latency_marker_info: *const SetLatencyMarkerInfoNV<'_>, ) { @@ -22037,7 +25597,7 @@ pub mod nv { }, get_latency_timings_nv: unsafe { unsafe extern "system" fn get_latency_timings_nv( - _device: Device, + _device: crate::vk::Device, _swapchain: SwapchainKHR, _p_latency_marker_info: *mut GetLatencyMarkerInfoNV<'_>, ) { @@ -22076,6 +25636,28 @@ pub mod nv { } } } + #[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 + } + } } pub mod per_stage_descriptor_set { use super::super::*; @@ -22117,27 +25699,27 @@ pub mod nvx { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn( - device: Device, + 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: Device, + 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: Device, + device: crate::vk::Device, module: CuModuleNVX, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkDestroyCuFunctionNVX = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, function: CuFunctionNVX, p_allocator: *const AllocationCallbacks<'_>, ); @@ -22147,6 +25729,7 @@ pub mod nvx { 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, @@ -22164,7 +25747,7 @@ pub mod nvx { Self { create_cu_module_nvx: unsafe { unsafe extern "system" fn create_cu_module_nvx( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const CuModuleCreateInfoNVX<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_module: *mut CuModuleNVX, @@ -22181,7 +25764,7 @@ pub mod nvx { }, create_cu_function_nvx: unsafe { unsafe extern "system" fn create_cu_function_nvx( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const CuFunctionCreateInfoNVX<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_function: *mut CuFunctionNVX, @@ -22201,7 +25784,7 @@ pub mod nvx { }, destroy_cu_module_nvx: unsafe { unsafe extern "system" fn destroy_cu_module_nvx( - _device: Device, + _device: crate::vk::Device, _module: CuModuleNVX, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -22220,7 +25803,7 @@ pub mod nvx { }, destroy_cu_function_nvx: unsafe { unsafe extern "system" fn destroy_cu_function_nvx( - _device: Device, + _device: crate::vk::Device, _function: CuFunctionNVX, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -22260,6 +25843,28 @@ pub mod nvx { } } } + #[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 + } + } } pub mod image_view_handle { use super::super::*; @@ -22268,16 +25873,17 @@ pub mod nvx { pub const SPEC_VERSION: u32 = 2u32; #[allow(non_camel_case_types)] pub type PFN_vkGetImageViewHandleNVX = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_info: *const ImageViewHandleInfoNVX<'_>, ) -> u32; #[allow(non_camel_case_types)] pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn( - device: Device, + 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, @@ -22292,7 +25898,7 @@ pub mod nvx { Self { get_image_view_handle_nvx: unsafe { unsafe extern "system" fn get_image_view_handle_nvx( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageViewHandleInfoNVX<'_>, ) -> u32 { panic!(concat!( @@ -22311,7 +25917,7 @@ pub mod nvx { }, get_image_view_address_nvx: unsafe { unsafe extern "system" fn get_image_view_address_nvx( - _device: Device, + _device: crate::vk::Device, _image_view: ImageView, _p_properties: *mut ImageViewAddressPropertiesNVX<'_>, ) -> Result { @@ -22332,6 +25938,28 @@ pub mod nvx { } } } + #[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 + } + } } pub mod multiview_per_view_attributes { use super::super::*; @@ -22386,7 +26014,7 @@ pub mod qcom { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetFramebufferTilePropertiesQCOM = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, framebuffer: Framebuffer, p_properties_count: *mut u32, p_properties: *mut TilePropertiesQCOM<'_>, @@ -22394,12 +26022,13 @@ pub mod qcom { -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetDynamicRenderingTilePropertiesQCOM = unsafe extern "system" fn( - device: Device, + 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: @@ -22415,7 +26044,7 @@ pub mod qcom { Self { get_framebuffer_tile_properties_qcom: unsafe { unsafe extern "system" fn get_framebuffer_tile_properties_qcom( - _device: Device, + _device: crate::vk::Device, _framebuffer: Framebuffer, _p_properties_count: *mut u32, _p_properties: *mut TilePropertiesQCOM<'_>, @@ -22437,7 +26066,7 @@ pub mod qcom { }, get_dynamic_rendering_tile_properties_qcom: unsafe { unsafe extern "system" fn get_dynamic_rendering_tile_properties_qcom( - _device: Device, + _device: crate::vk::Device, _p_rendering_info: *const RenderingInfo<'_>, _p_properties: *mut TilePropertiesQCOM<'_>, ) -> Result { @@ -22459,6 +26088,28 @@ pub mod qcom { } } } + #[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 + } + } } pub mod multiview_per_view_viewports { use super::super::*; @@ -22507,7 +26158,7 @@ pub mod qnx { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_create_info: *const ScreenSurfaceCreateInfoQNX<'_>, p_allocator: *const AllocationCallbacks<'_>, p_surface: *mut SurfaceKHR, @@ -22520,6 +26171,7 @@ pub mod qnx { 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: @@ -22535,7 +26187,7 @@ pub mod qnx { Self { create_screen_surface_qnx: unsafe { unsafe extern "system" fn create_screen_surface_qnx( - _instance: Instance, + _instance: crate::vk::Instance, _p_create_info: *const ScreenSurfaceCreateInfoQNX<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_surface: *mut SurfaceKHR, @@ -22578,6 +26230,28 @@ pub mod qnx { } } } + #[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 + } + } } pub mod external_memory_screen_buffer { use super::super::*; @@ -22587,11 +26261,12 @@ pub mod qnx { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetScreenBufferPropertiesQNX = unsafe extern "system" fn( - device: Device, + 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, } @@ -22605,7 +26280,7 @@ pub mod qnx { Self { get_screen_buffer_properties_qnx: unsafe { unsafe extern "system" fn get_screen_buffer_properties_qnx( - _device: Device, + _device: crate::vk::Device, _buffer: *const _screen_buffer, _p_properties: *mut ScreenBufferPropertiesQNX<'_>, ) -> Result { @@ -22627,6 +26302,28 @@ pub mod qnx { } } } + #[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 + } + } } } pub mod sec { @@ -22652,17 +26349,18 @@ pub mod valve { pub const SPEC_VERSION: u32 = 1u32; #[allow(non_camel_case_types)] pub type PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = unsafe extern "system" fn( - device: Device, + 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: Device, + 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, @@ -22678,7 +26376,7 @@ pub mod valve { Self { get_descriptor_set_layout_host_mapping_info_valve: unsafe { unsafe extern "system" fn get_descriptor_set_layout_host_mapping_info_valve( - _device: Device, + _device: crate::vk::Device, _p_binding_reference: *const DescriptorSetBindingReferenceVALVE<'_>, _p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE<'_>, ) { @@ -22699,7 +26397,7 @@ pub mod valve { }, get_descriptor_set_host_mapping_valve: unsafe { unsafe extern "system" fn get_descriptor_set_host_mapping_valve( - _device: Device, + _device: crate::vk::Device, _descriptor_set: DescriptorSet, _pp_data: *mut *mut c_void, ) { @@ -22721,5 +26419,27 @@ pub mod valve { } } } + #[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 + } + } } } diff --git a/ash/src/vk/features.rs b/ash/src/vk/features.rs index 1a598d6da..1c10f1be5 100644 --- a/ash/src/vk/features.rs +++ b/ash/src/vk/features.rs @@ -3,9 +3,12 @@ use crate::vk::definitions::*; use crate::vk::enums::*; use core::ffi::*; #[allow(non_camel_case_types)] -pub type PFN_vkGetInstanceProcAddr = - unsafe extern "system" fn(instance: Instance, p_name: *const c_char) -> PFN_vkVoidFunction; +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, } @@ -19,7 +22,7 @@ impl StaticFn { Self { get_instance_proc_addr: unsafe { unsafe extern "system" fn get_instance_proc_addr( - _instance: Instance, + _instance: crate::vk::Instance, _p_name: *const c_char, ) -> PFN_vkVoidFunction { panic!(concat!( @@ -42,7 +45,7 @@ impl StaticFn { pub type PFN_vkCreateInstance = unsafe extern "system" fn( p_create_info: *const InstanceCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, - p_instance: *mut Instance, + p_instance: *mut crate::vk::Instance, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkEnumerateInstanceExtensionProperties = unsafe extern "system" fn( @@ -56,6 +59,7 @@ pub type PFN_vkEnumerateInstanceLayerProperties = unsafe extern "system" fn( 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, @@ -73,7 +77,7 @@ impl EntryFnV1_0 { unsafe extern "system" fn create_instance( _p_create_info: *const InstanceCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, - _p_instance: *mut Instance, + _p_instance: *mut crate::vk::Instance, ) -> Result { panic!(concat!("Unable to load ", stringify!(create_instance))) } @@ -129,11 +133,13 @@ impl EntryFnV1_0 { } } #[allow(non_camel_case_types)] -pub type PFN_vkDestroyInstance = - unsafe extern "system" fn(instance: Instance, p_allocator: *const AllocationCallbacks<'_>); +pub type PFN_vkDestroyInstance = unsafe extern "system" fn( + instance: crate::vk::Instance, + p_allocator: *const AllocationCallbacks<'_>, +); #[allow(non_camel_case_types)] pub type PFN_vkEnumeratePhysicalDevices = unsafe extern "system" fn( - instance: Instance, + instance: crate::vk::Instance, p_physical_device_count: *mut u32, p_physical_devices: *mut PhysicalDevice, ) -> Result; @@ -175,14 +181,16 @@ pub type PFN_vkGetPhysicalDeviceMemoryProperties = unsafe extern "system" fn( p_memory_properties: *mut PhysicalDeviceMemoryProperties, ); #[allow(non_camel_case_types)] -pub type PFN_vkGetDeviceProcAddr = - unsafe extern "system" fn(device: Device, p_name: *const c_char) -> PFN_vkVoidFunction; +pub type PFN_vkGetDeviceProcAddr = unsafe extern "system" fn( + device: crate::vk::Device, + p_name: *const c_char, +) -> PFN_vkVoidFunction; #[allow(non_camel_case_types)] pub type PFN_vkCreateDevice = unsafe extern "system" fn( physical_device: PhysicalDevice, p_create_info: *const DeviceCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, - p_device: *mut Device, + p_device: *mut crate::vk::Device, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkEnumerateDeviceExtensionProperties = unsafe extern "system" fn( @@ -209,6 +217,7 @@ pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties = unsafe extern "sys 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, @@ -235,7 +244,7 @@ impl InstanceFnV1_0 { Self { destroy_instance: unsafe { unsafe extern "system" fn destroy_instance( - _instance: Instance, + _instance: crate::vk::Instance, _p_allocator: *const AllocationCallbacks<'_>, ) { panic!(concat!("Unable to load ", stringify!(destroy_instance))) @@ -250,7 +259,7 @@ impl InstanceFnV1_0 { }, enumerate_physical_devices: unsafe { unsafe extern "system" fn enumerate_physical_devices( - _instance: Instance, + _instance: crate::vk::Instance, _p_physical_device_count: *mut u32, _p_physical_devices: *mut PhysicalDevice, ) -> Result { @@ -390,7 +399,7 @@ impl InstanceFnV1_0 { }, get_device_proc_addr: unsafe { unsafe extern "system" fn get_device_proc_addr( - _device: Device, + _device: crate::vk::Device, _p_name: *const c_char, ) -> PFN_vkVoidFunction { panic!(concat!("Unable to load ", stringify!(get_device_proc_addr))) @@ -408,7 +417,7 @@ impl InstanceFnV1_0 { _physical_device: PhysicalDevice, _p_create_info: *const DeviceCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, - _p_device: *mut Device, + _p_device: *mut crate::vk::Device, ) -> Result { panic!(concat!("Unable to load ", stringify!(create_device))) } @@ -491,11 +500,13 @@ impl InstanceFnV1_0 { } } #[allow(non_camel_case_types)] -pub type PFN_vkDestroyDevice = - unsafe extern "system" fn(device: Device, p_allocator: *const AllocationCallbacks<'_>); +pub type PFN_vkDestroyDevice = unsafe extern "system" fn( + device: crate::vk::Device, + p_allocator: *const AllocationCallbacks<'_>, +); #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceQueue = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, queue_family_index: u32, queue_index: u32, p_queue: *mut Queue, @@ -510,23 +521,23 @@ pub type PFN_vkQueueSubmit = unsafe extern "system" fn( #[allow(non_camel_case_types)] pub type PFN_vkQueueWaitIdle = unsafe extern "system" fn(queue: Queue) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkDeviceWaitIdle = unsafe extern "system" fn(device: Device) -> Result; +pub type PFN_vkDeviceWaitIdle = unsafe extern "system" fn(device: crate::vk::Device) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkAllocateMemory = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_allocate_info: *const MemoryAllocateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_memory: *mut DeviceMemory, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkFreeMemory = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, memory: DeviceMemory, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkMapMemory = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, @@ -534,54 +545,55 @@ pub type PFN_vkMapMemory = unsafe extern "system" fn( pp_data: *mut *mut c_void, ) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkUnmapMemory = unsafe extern "system" fn(device: Device, memory: DeviceMemory); +pub type PFN_vkUnmapMemory = + unsafe extern "system" fn(device: crate::vk::Device, memory: DeviceMemory); #[allow(non_camel_case_types)] pub type PFN_vkFlushMappedMemoryRanges = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, memory_range_count: u32, p_memory_ranges: *const MappedMemoryRange<'_>, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkInvalidateMappedMemoryRanges = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, memory_range_count: u32, p_memory_ranges: *const MappedMemoryRange<'_>, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceMemoryCommitment = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, memory: DeviceMemory, p_committed_memory_in_bytes: *mut DeviceSize, ); #[allow(non_camel_case_types)] pub type PFN_vkBindBufferMemory = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, buffer: Buffer, memory: DeviceMemory, memory_offset: DeviceSize, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkBindImageMemory = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image: Image, memory: DeviceMemory, memory_offset: DeviceSize, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkGetBufferMemoryRequirements = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, buffer: Buffer, p_memory_requirements: *mut MemoryRequirements, ); #[allow(non_camel_case_types)] pub type PFN_vkGetImageMemoryRequirements = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image: Image, p_memory_requirements: *mut MemoryRequirements, ); #[allow(non_camel_case_types)] pub type PFN_vkGetImageSparseMemoryRequirements = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image: Image, p_sparse_memory_requirement_count: *mut u32, p_sparse_memory_requirements: *mut SparseImageMemoryRequirements, @@ -595,25 +607,29 @@ pub type PFN_vkQueueBindSparse = unsafe extern "system" fn( ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateFence = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const FenceCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_fence: *mut Fence, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyFence = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, fence: Fence, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkResetFences = - unsafe extern "system" fn(device: Device, fence_count: u32, p_fences: *const Fence) -> Result; +pub type PFN_vkResetFences = unsafe extern "system" fn( + device: crate::vk::Device, + fence_count: u32, + p_fences: *const Fence, +) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkGetFenceStatus = unsafe extern "system" fn(device: Device, fence: Fence) -> Result; +pub type PFN_vkGetFenceStatus = + unsafe extern "system" fn(device: crate::vk::Device, fence: Fence) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkWaitForFences = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, fence_count: u32, p_fences: *const Fence, wait_all: Bool32, @@ -621,52 +637,55 @@ pub type PFN_vkWaitForFences = unsafe extern "system" fn( ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateSemaphore = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const SemaphoreCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_semaphore: *mut Semaphore, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroySemaphore = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, semaphore: Semaphore, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateEvent = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const EventCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_event: *mut Event, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyEvent = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, event: Event, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] -pub type PFN_vkGetEventStatus = unsafe extern "system" fn(device: Device, event: Event) -> Result; +pub type PFN_vkGetEventStatus = + unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkSetEvent = unsafe extern "system" fn(device: Device, event: Event) -> Result; +pub type PFN_vkSetEvent = + unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result; #[allow(non_camel_case_types)] -pub type PFN_vkResetEvent = unsafe extern "system" fn(device: Device, event: Event) -> Result; +pub type PFN_vkResetEvent = + unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateQueryPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const QueryPoolCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_query_pool: *mut QueryPool, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyQueryPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, query_pool: QueryPool, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetQueryPoolResults = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, query_pool: QueryPool, first_query: u32, query_count: u32, @@ -677,106 +696,106 @@ pub type PFN_vkGetQueryPoolResults = unsafe extern "system" fn( ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateBuffer = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const BufferCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_buffer: *mut Buffer, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyBuffer = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, buffer: Buffer, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateBufferView = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const BufferViewCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_view: *mut BufferView, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyBufferView = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, buffer_view: BufferView, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateImage = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const ImageCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_image: *mut Image, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyImage = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image: Image, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetImageSubresourceLayout = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image: Image, p_subresource: *const ImageSubresource, p_layout: *mut SubresourceLayout, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateImageView = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const ImageViewCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_view: *mut ImageView, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyImageView = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, image_view: ImageView, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateShaderModule = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const ShaderModuleCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_shader_module: *mut ShaderModule, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyShaderModule = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, shader_module: ShaderModule, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreatePipelineCache = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const PipelineCacheCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_pipeline_cache: *mut PipelineCache, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyPipelineCache = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_cache: PipelineCache, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetPipelineCacheData = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_cache: PipelineCache, p_data_size: *mut usize, p_data: *mut c_void, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkMergePipelineCaches = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, dst_cache: PipelineCache, src_cache_count: u32, p_src_caches: *const PipelineCache, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateGraphicsPipelines = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_cache: PipelineCache, create_info_count: u32, p_create_infos: *const GraphicsPipelineCreateInfo<'_>, @@ -785,7 +804,7 @@ pub type PFN_vkCreateGraphicsPipelines = unsafe extern "system" fn( ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkCreateComputePipelines = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_cache: PipelineCache, create_info_count: u32, p_create_infos: *const ComputePipelineCreateInfo<'_>, @@ -794,84 +813,84 @@ pub type PFN_vkCreateComputePipelines = unsafe extern "system" fn( ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyPipeline = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline: Pipeline, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreatePipelineLayout = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const PipelineLayoutCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_pipeline_layout: *mut PipelineLayout, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyPipelineLayout = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, pipeline_layout: PipelineLayout, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateSampler = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const SamplerCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_sampler: *mut Sampler, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroySampler = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, sampler: Sampler, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateDescriptorSetLayout = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_set_layout: *mut DescriptorSetLayout, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyDescriptorSetLayout = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, descriptor_set_layout: DescriptorSetLayout, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateDescriptorPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const DescriptorPoolCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_descriptor_pool: *mut DescriptorPool, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyDescriptorPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, descriptor_pool: DescriptorPool, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkResetDescriptorPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, descriptor_pool: DescriptorPool, flags: DescriptorPoolResetFlags, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkAllocateDescriptorSets = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_allocate_info: *const DescriptorSetAllocateInfo<'_>, p_descriptor_sets: *mut DescriptorSet, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkFreeDescriptorSets = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, descriptor_pool: DescriptorPool, descriptor_set_count: u32, p_descriptor_sets: *const DescriptorSet, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkUpdateDescriptorSets = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, descriptor_write_count: u32, p_descriptor_writes: *const WriteDescriptorSet<'_>, descriptor_copy_count: u32, @@ -879,64 +898,64 @@ pub type PFN_vkUpdateDescriptorSets = unsafe extern "system" fn( ); #[allow(non_camel_case_types)] pub type PFN_vkCreateFramebuffer = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const FramebufferCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_framebuffer: *mut Framebuffer, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyFramebuffer = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, framebuffer: Framebuffer, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateRenderPass = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const RenderPassCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_render_pass: *mut RenderPass, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyRenderPass = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, render_pass: RenderPass, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkGetRenderAreaGranularity = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, render_pass: RenderPass, p_granularity: *mut Extent2D, ); #[allow(non_camel_case_types)] pub type PFN_vkCreateCommandPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_create_info: *const CommandPoolCreateInfo<'_>, p_allocator: *const AllocationCallbacks<'_>, p_command_pool: *mut CommandPool, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkDestroyCommandPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, command_pool: CommandPool, p_allocator: *const AllocationCallbacks<'_>, ); #[allow(non_camel_case_types)] pub type PFN_vkResetCommandPool = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, command_pool: CommandPool, flags: CommandPoolResetFlags, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkAllocateCommandBuffers = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, p_allocate_info: *const CommandBufferAllocateInfo<'_>, p_command_buffers: *mut CommandBuffer, ) -> Result; #[allow(non_camel_case_types)] pub type PFN_vkFreeCommandBuffers = unsafe extern "system" fn( - device: Device, + device: crate::vk::Device, command_pool: CommandPool, command_buffer_count: u32, p_command_buffers: *const CommandBuffer, @@ -1280,6 +1299,7 @@ pub type PFN_vkCmdExecuteCommands = unsafe extern "system" fn( 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, @@ -1412,7 +1432,7 @@ impl DeviceFnV1_0 { Self { destroy_device: unsafe { unsafe extern "system" fn destroy_device( - _device: Device, + _device: crate::vk::Device, _p_allocator: *const AllocationCallbacks<'_>, ) { panic!(concat!("Unable to load ", stringify!(destroy_device))) @@ -1427,7 +1447,7 @@ impl DeviceFnV1_0 { }, get_device_queue: unsafe { unsafe extern "system" fn get_device_queue( - _device: Device, + _device: crate::vk::Device, _queue_family_index: u32, _queue_index: u32, _p_queue: *mut Queue, @@ -1472,7 +1492,7 @@ impl DeviceFnV1_0 { } }, device_wait_idle: unsafe { - unsafe extern "system" fn device_wait_idle(_device: Device) -> Result { + 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"); @@ -1485,7 +1505,7 @@ impl DeviceFnV1_0 { }, allocate_memory: unsafe { unsafe extern "system" fn allocate_memory( - _device: Device, + _device: crate::vk::Device, _p_allocate_info: *const MemoryAllocateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_memory: *mut DeviceMemory, @@ -1502,7 +1522,7 @@ impl DeviceFnV1_0 { }, free_memory: unsafe { unsafe extern "system" fn free_memory( - _device: Device, + _device: crate::vk::Device, _memory: DeviceMemory, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -1518,7 +1538,7 @@ impl DeviceFnV1_0 { }, map_memory: unsafe { unsafe extern "system" fn map_memory( - _device: Device, + _device: crate::vk::Device, _memory: DeviceMemory, _offset: DeviceSize, _size: DeviceSize, @@ -1536,7 +1556,10 @@ impl DeviceFnV1_0 { } }, unmap_memory: unsafe { - unsafe extern "system" fn unmap_memory(_device: Device, _memory: DeviceMemory) { + 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"); @@ -1549,7 +1572,7 @@ impl DeviceFnV1_0 { }, flush_mapped_memory_ranges: unsafe { unsafe extern "system" fn flush_mapped_memory_ranges( - _device: Device, + _device: crate::vk::Device, _memory_range_count: u32, _p_memory_ranges: *const MappedMemoryRange<'_>, ) -> Result { @@ -1568,7 +1591,7 @@ impl DeviceFnV1_0 { }, invalidate_mapped_memory_ranges: unsafe { unsafe extern "system" fn invalidate_mapped_memory_ranges( - _device: Device, + _device: crate::vk::Device, _memory_range_count: u32, _p_memory_ranges: *const MappedMemoryRange<'_>, ) -> Result { @@ -1588,7 +1611,7 @@ impl DeviceFnV1_0 { }, get_device_memory_commitment: unsafe { unsafe extern "system" fn get_device_memory_commitment( - _device: Device, + _device: crate::vk::Device, _memory: DeviceMemory, _p_committed_memory_in_bytes: *mut DeviceSize, ) { @@ -1607,7 +1630,7 @@ impl DeviceFnV1_0 { }, bind_buffer_memory: unsafe { unsafe extern "system" fn bind_buffer_memory( - _device: Device, + _device: crate::vk::Device, _buffer: Buffer, _memory: DeviceMemory, _memory_offset: DeviceSize, @@ -1624,7 +1647,7 @@ impl DeviceFnV1_0 { }, bind_image_memory: unsafe { unsafe extern "system" fn bind_image_memory( - _device: Device, + _device: crate::vk::Device, _image: Image, _memory: DeviceMemory, _memory_offset: DeviceSize, @@ -1641,7 +1664,7 @@ impl DeviceFnV1_0 { }, get_buffer_memory_requirements: unsafe { unsafe extern "system" fn get_buffer_memory_requirements( - _device: Device, + _device: crate::vk::Device, _buffer: Buffer, _p_memory_requirements: *mut MemoryRequirements, ) { @@ -1660,7 +1683,7 @@ impl DeviceFnV1_0 { }, get_image_memory_requirements: unsafe { unsafe extern "system" fn get_image_memory_requirements( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_memory_requirements: *mut MemoryRequirements, ) { @@ -1679,7 +1702,7 @@ impl DeviceFnV1_0 { }, get_image_sparse_memory_requirements: unsafe { unsafe extern "system" fn get_image_sparse_memory_requirements( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_sparse_memory_requirement_count: *mut u32, _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements, @@ -1717,7 +1740,7 @@ impl DeviceFnV1_0 { }, create_fence: unsafe { unsafe extern "system" fn create_fence( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const FenceCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_fence: *mut Fence, @@ -1734,7 +1757,7 @@ impl DeviceFnV1_0 { }, destroy_fence: unsafe { unsafe extern "system" fn destroy_fence( - _device: Device, + _device: crate::vk::Device, _fence: Fence, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -1750,7 +1773,7 @@ impl DeviceFnV1_0 { }, reset_fences: unsafe { unsafe extern "system" fn reset_fences( - _device: Device, + _device: crate::vk::Device, _fence_count: u32, _p_fences: *const Fence, ) -> Result { @@ -1766,7 +1789,7 @@ impl DeviceFnV1_0 { }, get_fence_status: unsafe { unsafe extern "system" fn get_fence_status( - _device: Device, + _device: crate::vk::Device, _fence: Fence, ) -> Result { panic!(concat!("Unable to load ", stringify!(get_fence_status))) @@ -1781,7 +1804,7 @@ impl DeviceFnV1_0 { }, wait_for_fences: unsafe { unsafe extern "system" fn wait_for_fences( - _device: Device, + _device: crate::vk::Device, _fence_count: u32, _p_fences: *const Fence, _wait_all: Bool32, @@ -1799,7 +1822,7 @@ impl DeviceFnV1_0 { }, create_semaphore: unsafe { unsafe extern "system" fn create_semaphore( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const SemaphoreCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_semaphore: *mut Semaphore, @@ -1816,7 +1839,7 @@ impl DeviceFnV1_0 { }, destroy_semaphore: unsafe { unsafe extern "system" fn destroy_semaphore( - _device: Device, + _device: crate::vk::Device, _semaphore: Semaphore, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -1832,7 +1855,7 @@ impl DeviceFnV1_0 { }, create_event: unsafe { unsafe extern "system" fn create_event( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const EventCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_event: *mut Event, @@ -1849,7 +1872,7 @@ impl DeviceFnV1_0 { }, destroy_event: unsafe { unsafe extern "system" fn destroy_event( - _device: Device, + _device: crate::vk::Device, _event: Event, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -1865,7 +1888,7 @@ impl DeviceFnV1_0 { }, get_event_status: unsafe { unsafe extern "system" fn get_event_status( - _device: Device, + _device: crate::vk::Device, _event: Event, ) -> Result { panic!(concat!("Unable to load ", stringify!(get_event_status))) @@ -1879,7 +1902,10 @@ impl DeviceFnV1_0 { } }, set_event: unsafe { - unsafe extern "system" fn set_event(_device: Device, _event: Event) -> Result { + 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"); @@ -1891,7 +1917,10 @@ impl DeviceFnV1_0 { } }, reset_event: unsafe { - unsafe extern "system" fn reset_event(_device: Device, _event: Event) -> Result { + 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"); @@ -1904,7 +1933,7 @@ impl DeviceFnV1_0 { }, create_query_pool: unsafe { unsafe extern "system" fn create_query_pool( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const QueryPoolCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_query_pool: *mut QueryPool, @@ -1921,7 +1950,7 @@ impl DeviceFnV1_0 { }, destroy_query_pool: unsafe { unsafe extern "system" fn destroy_query_pool( - _device: Device, + _device: crate::vk::Device, _query_pool: QueryPool, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -1937,7 +1966,7 @@ impl DeviceFnV1_0 { }, get_query_pool_results: unsafe { unsafe extern "system" fn get_query_pool_results( - _device: Device, + _device: crate::vk::Device, _query_pool: QueryPool, _first_query: u32, _query_count: u32, @@ -1961,7 +1990,7 @@ impl DeviceFnV1_0 { }, create_buffer: unsafe { unsafe extern "system" fn create_buffer( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const BufferCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_buffer: *mut Buffer, @@ -1978,7 +2007,7 @@ impl DeviceFnV1_0 { }, destroy_buffer: unsafe { unsafe extern "system" fn destroy_buffer( - _device: Device, + _device: crate::vk::Device, _buffer: Buffer, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -1994,7 +2023,7 @@ impl DeviceFnV1_0 { }, create_buffer_view: unsafe { unsafe extern "system" fn create_buffer_view( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const BufferViewCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_view: *mut BufferView, @@ -2011,7 +2040,7 @@ impl DeviceFnV1_0 { }, destroy_buffer_view: unsafe { unsafe extern "system" fn destroy_buffer_view( - _device: Device, + _device: crate::vk::Device, _buffer_view: BufferView, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2027,7 +2056,7 @@ impl DeviceFnV1_0 { }, create_image: unsafe { unsafe extern "system" fn create_image( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const ImageCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_image: *mut Image, @@ -2044,7 +2073,7 @@ impl DeviceFnV1_0 { }, destroy_image: unsafe { unsafe extern "system" fn destroy_image( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2060,7 +2089,7 @@ impl DeviceFnV1_0 { }, get_image_subresource_layout: unsafe { unsafe extern "system" fn get_image_subresource_layout( - _device: Device, + _device: crate::vk::Device, _image: Image, _p_subresource: *const ImageSubresource, _p_layout: *mut SubresourceLayout, @@ -2080,7 +2109,7 @@ impl DeviceFnV1_0 { }, create_image_view: unsafe { unsafe extern "system" fn create_image_view( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const ImageViewCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_view: *mut ImageView, @@ -2097,7 +2126,7 @@ impl DeviceFnV1_0 { }, destroy_image_view: unsafe { unsafe extern "system" fn destroy_image_view( - _device: Device, + _device: crate::vk::Device, _image_view: ImageView, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2113,7 +2142,7 @@ impl DeviceFnV1_0 { }, create_shader_module: unsafe { unsafe extern "system" fn create_shader_module( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const ShaderModuleCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_shader_module: *mut ShaderModule, @@ -2130,7 +2159,7 @@ impl DeviceFnV1_0 { }, destroy_shader_module: unsafe { unsafe extern "system" fn destroy_shader_module( - _device: Device, + _device: crate::vk::Device, _shader_module: ShaderModule, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2149,7 +2178,7 @@ impl DeviceFnV1_0 { }, create_pipeline_cache: unsafe { unsafe extern "system" fn create_pipeline_cache( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const PipelineCacheCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_pipeline_cache: *mut PipelineCache, @@ -2169,7 +2198,7 @@ impl DeviceFnV1_0 { }, destroy_pipeline_cache: unsafe { unsafe extern "system" fn destroy_pipeline_cache( - _device: Device, + _device: crate::vk::Device, _pipeline_cache: PipelineCache, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2188,7 +2217,7 @@ impl DeviceFnV1_0 { }, get_pipeline_cache_data: unsafe { unsafe extern "system" fn get_pipeline_cache_data( - _device: Device, + _device: crate::vk::Device, _pipeline_cache: PipelineCache, _p_data_size: *mut usize, _p_data: *mut c_void, @@ -2208,7 +2237,7 @@ impl DeviceFnV1_0 { }, merge_pipeline_caches: unsafe { unsafe extern "system" fn merge_pipeline_caches( - _device: Device, + _device: crate::vk::Device, _dst_cache: PipelineCache, _src_cache_count: u32, _p_src_caches: *const PipelineCache, @@ -2228,7 +2257,7 @@ impl DeviceFnV1_0 { }, create_graphics_pipelines: unsafe { unsafe extern "system" fn create_graphics_pipelines( - _device: Device, + _device: crate::vk::Device, _pipeline_cache: PipelineCache, _create_info_count: u32, _p_create_infos: *const GraphicsPipelineCreateInfo<'_>, @@ -2250,7 +2279,7 @@ impl DeviceFnV1_0 { }, create_compute_pipelines: unsafe { unsafe extern "system" fn create_compute_pipelines( - _device: Device, + _device: crate::vk::Device, _pipeline_cache: PipelineCache, _create_info_count: u32, _p_create_infos: *const ComputePipelineCreateInfo<'_>, @@ -2272,7 +2301,7 @@ impl DeviceFnV1_0 { }, destroy_pipeline: unsafe { unsafe extern "system" fn destroy_pipeline( - _device: Device, + _device: crate::vk::Device, _pipeline: Pipeline, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2288,7 +2317,7 @@ impl DeviceFnV1_0 { }, create_pipeline_layout: unsafe { unsafe extern "system" fn create_pipeline_layout( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const PipelineLayoutCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_pipeline_layout: *mut PipelineLayout, @@ -2308,7 +2337,7 @@ impl DeviceFnV1_0 { }, destroy_pipeline_layout: unsafe { unsafe extern "system" fn destroy_pipeline_layout( - _device: Device, + _device: crate::vk::Device, _pipeline_layout: PipelineLayout, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2327,7 +2356,7 @@ impl DeviceFnV1_0 { }, create_sampler: unsafe { unsafe extern "system" fn create_sampler( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const SamplerCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_sampler: *mut Sampler, @@ -2344,7 +2373,7 @@ impl DeviceFnV1_0 { }, destroy_sampler: unsafe { unsafe extern "system" fn destroy_sampler( - _device: Device, + _device: crate::vk::Device, _sampler: Sampler, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2360,7 +2389,7 @@ impl DeviceFnV1_0 { }, create_descriptor_set_layout: unsafe { unsafe extern "system" fn create_descriptor_set_layout( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_set_layout: *mut DescriptorSetLayout, @@ -2380,7 +2409,7 @@ impl DeviceFnV1_0 { }, destroy_descriptor_set_layout: unsafe { unsafe extern "system" fn destroy_descriptor_set_layout( - _device: Device, + _device: crate::vk::Device, _descriptor_set_layout: DescriptorSetLayout, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2399,7 +2428,7 @@ impl DeviceFnV1_0 { }, create_descriptor_pool: unsafe { unsafe extern "system" fn create_descriptor_pool( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const DescriptorPoolCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_descriptor_pool: *mut DescriptorPool, @@ -2419,7 +2448,7 @@ impl DeviceFnV1_0 { }, destroy_descriptor_pool: unsafe { unsafe extern "system" fn destroy_descriptor_pool( - _device: Device, + _device: crate::vk::Device, _descriptor_pool: DescriptorPool, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2438,7 +2467,7 @@ impl DeviceFnV1_0 { }, reset_descriptor_pool: unsafe { unsafe extern "system" fn reset_descriptor_pool( - _device: Device, + _device: crate::vk::Device, _descriptor_pool: DescriptorPool, _flags: DescriptorPoolResetFlags, ) -> Result { @@ -2457,7 +2486,7 @@ impl DeviceFnV1_0 { }, allocate_descriptor_sets: unsafe { unsafe extern "system" fn allocate_descriptor_sets( - _device: Device, + _device: crate::vk::Device, _p_allocate_info: *const DescriptorSetAllocateInfo<'_>, _p_descriptor_sets: *mut DescriptorSet, ) -> Result { @@ -2476,7 +2505,7 @@ impl DeviceFnV1_0 { }, free_descriptor_sets: unsafe { unsafe extern "system" fn free_descriptor_sets( - _device: Device, + _device: crate::vk::Device, _descriptor_pool: DescriptorPool, _descriptor_set_count: u32, _p_descriptor_sets: *const DescriptorSet, @@ -2493,7 +2522,7 @@ impl DeviceFnV1_0 { }, update_descriptor_sets: unsafe { unsafe extern "system" fn update_descriptor_sets( - _device: Device, + _device: crate::vk::Device, _descriptor_write_count: u32, _p_descriptor_writes: *const WriteDescriptorSet<'_>, _descriptor_copy_count: u32, @@ -2514,7 +2543,7 @@ impl DeviceFnV1_0 { }, create_framebuffer: unsafe { unsafe extern "system" fn create_framebuffer( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const FramebufferCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_framebuffer: *mut Framebuffer, @@ -2531,7 +2560,7 @@ impl DeviceFnV1_0 { }, destroy_framebuffer: unsafe { unsafe extern "system" fn destroy_framebuffer( - _device: Device, + _device: crate::vk::Device, _framebuffer: Framebuffer, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2547,7 +2576,7 @@ impl DeviceFnV1_0 { }, create_render_pass: unsafe { unsafe extern "system" fn create_render_pass( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const RenderPassCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_render_pass: *mut RenderPass, @@ -2564,7 +2593,7 @@ impl DeviceFnV1_0 { }, destroy_render_pass: unsafe { unsafe extern "system" fn destroy_render_pass( - _device: Device, + _device: crate::vk::Device, _render_pass: RenderPass, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2580,7 +2609,7 @@ impl DeviceFnV1_0 { }, get_render_area_granularity: unsafe { unsafe extern "system" fn get_render_area_granularity( - _device: Device, + _device: crate::vk::Device, _render_pass: RenderPass, _p_granularity: *mut Extent2D, ) { @@ -2599,7 +2628,7 @@ impl DeviceFnV1_0 { }, create_command_pool: unsafe { unsafe extern "system" fn create_command_pool( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const CommandPoolCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_command_pool: *mut CommandPool, @@ -2616,7 +2645,7 @@ impl DeviceFnV1_0 { }, destroy_command_pool: unsafe { unsafe extern "system" fn destroy_command_pool( - _device: Device, + _device: crate::vk::Device, _command_pool: CommandPool, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -2632,7 +2661,7 @@ impl DeviceFnV1_0 { }, reset_command_pool: unsafe { unsafe extern "system" fn reset_command_pool( - _device: Device, + _device: crate::vk::Device, _command_pool: CommandPool, _flags: CommandPoolResetFlags, ) -> Result { @@ -2648,7 +2677,7 @@ impl DeviceFnV1_0 { }, allocate_command_buffers: unsafe { unsafe extern "system" fn allocate_command_buffers( - _device: Device, + _device: crate::vk::Device, _p_allocate_info: *const CommandBufferAllocateInfo<'_>, _p_command_buffers: *mut CommandBuffer, ) -> Result { @@ -2667,7 +2696,7 @@ impl DeviceFnV1_0 { }, free_command_buffers: unsafe { unsafe extern "system" fn free_command_buffers( - _device: Device, + _device: crate::vk::Device, _command_pool: CommandPool, _command_buffer_count: u32, _p_command_buffers: *const CommandBuffer, @@ -3558,6 +3587,7 @@ impl DeviceFnV1_0 { 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, } @@ -3590,6 +3620,7 @@ impl EntryFnV1_1 { } } #[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 {} @@ -3601,7 +3632,7 @@ impl InstanceFnV1_1 { Self { enumerate_physical_device_groups: unsafe { unsafe extern "system" fn enumerate_physical_device_groups( - _instance: Instance, + _instance: crate::vk::Instance, _p_physical_device_group_count: *mut u32, _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties<'_>, ) -> Result { @@ -3827,11 +3858,12 @@ impl InstanceFnV1_1 { } #[allow(non_camel_case_types)] pub type PFN_vkGetDeviceQueue2 = unsafe extern "system" fn( - device: Device, + 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, @@ -3870,7 +3902,7 @@ impl DeviceFnV1_1 { Self { bind_buffer_memory2: unsafe { unsafe extern "system" fn bind_buffer_memory2( - _device: Device, + _device: crate::vk::Device, _bind_info_count: u32, _p_bind_infos: *const BindBufferMemoryInfo<'_>, ) -> Result { @@ -3886,7 +3918,7 @@ impl DeviceFnV1_1 { }, bind_image_memory2: unsafe { unsafe extern "system" fn bind_image_memory2( - _device: Device, + _device: crate::vk::Device, _bind_info_count: u32, _p_bind_infos: *const BindImageMemoryInfo<'_>, ) -> Result { @@ -3902,7 +3934,7 @@ impl DeviceFnV1_1 { }, get_device_group_peer_memory_features: unsafe { unsafe extern "system" fn get_device_group_peer_memory_features( - _device: Device, + _device: crate::vk::Device, _heap_index: u32, _local_device_index: u32, _remote_device_index: u32, @@ -3959,7 +3991,7 @@ impl DeviceFnV1_1 { }, get_image_memory_requirements2: unsafe { unsafe extern "system" fn get_image_memory_requirements2( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageMemoryRequirementsInfo2<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -3978,7 +4010,7 @@ impl DeviceFnV1_1 { }, get_buffer_memory_requirements2: unsafe { unsafe extern "system" fn get_buffer_memory_requirements2( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferMemoryRequirementsInfo2<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -3998,7 +4030,7 @@ impl DeviceFnV1_1 { }, get_image_sparse_memory_requirements2: unsafe { unsafe extern "system" fn get_image_sparse_memory_requirements2( - _device: Device, + _device: crate::vk::Device, _p_info: *const ImageSparseMemoryRequirementsInfo2<'_>, _p_sparse_memory_requirement_count: *mut u32, _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, @@ -4019,7 +4051,7 @@ impl DeviceFnV1_1 { }, trim_command_pool: unsafe { unsafe extern "system" fn trim_command_pool( - _device: Device, + _device: crate::vk::Device, _command_pool: CommandPool, _flags: CommandPoolTrimFlags, ) { @@ -4035,7 +4067,7 @@ impl DeviceFnV1_1 { }, get_device_queue2: unsafe { unsafe extern "system" fn get_device_queue2( - _device: Device, + _device: crate::vk::Device, _p_queue_info: *const DeviceQueueInfo2<'_>, _p_queue: *mut Queue, ) { @@ -4051,7 +4083,7 @@ impl DeviceFnV1_1 { }, create_sampler_ycbcr_conversion: unsafe { unsafe extern "system" fn create_sampler_ycbcr_conversion( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const SamplerYcbcrConversionCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_ycbcr_conversion: *mut SamplerYcbcrConversion, @@ -4072,7 +4104,7 @@ impl DeviceFnV1_1 { }, destroy_sampler_ycbcr_conversion: unsafe { unsafe extern "system" fn destroy_sampler_ycbcr_conversion( - _device: Device, + _device: crate::vk::Device, _ycbcr_conversion: SamplerYcbcrConversion, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -4092,7 +4124,7 @@ impl DeviceFnV1_1 { }, create_descriptor_update_template: unsafe { unsafe extern "system" fn create_descriptor_update_template( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const DescriptorUpdateTemplateCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_descriptor_update_template: *mut DescriptorUpdateTemplate, @@ -4113,7 +4145,7 @@ impl DeviceFnV1_1 { }, destroy_descriptor_update_template: unsafe { unsafe extern "system" fn destroy_descriptor_update_template( - _device: Device, + _device: crate::vk::Device, _descriptor_update_template: DescriptorUpdateTemplate, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -4133,7 +4165,7 @@ impl DeviceFnV1_1 { }, update_descriptor_set_with_template: unsafe { unsafe extern "system" fn update_descriptor_set_with_template( - _device: Device, + _device: crate::vk::Device, _descriptor_set: DescriptorSet, _descriptor_update_template: DescriptorUpdateTemplate, _p_data: *const c_void, @@ -4154,7 +4186,7 @@ impl DeviceFnV1_1 { }, get_descriptor_set_layout_support: unsafe { unsafe extern "system" fn get_descriptor_set_layout_support( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const DescriptorSetLayoutCreateInfo<'_>, _p_support: *mut DescriptorSetLayoutSupport<'_>, ) { @@ -4176,10 +4208,13 @@ impl DeviceFnV1_1 { } } #[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: @@ -4256,7 +4291,7 @@ impl DeviceFnV1_2 { }, create_render_pass2: unsafe { unsafe extern "system" fn create_render_pass2( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const RenderPassCreateInfo2<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_render_pass: *mut RenderPass, @@ -4323,7 +4358,7 @@ impl DeviceFnV1_2 { }, reset_query_pool: unsafe { unsafe extern "system" fn reset_query_pool( - _device: Device, + _device: crate::vk::Device, _query_pool: QueryPool, _first_query: u32, _query_count: u32, @@ -4340,7 +4375,7 @@ impl DeviceFnV1_2 { }, get_semaphore_counter_value: unsafe { unsafe extern "system" fn get_semaphore_counter_value( - _device: Device, + _device: crate::vk::Device, _semaphore: Semaphore, _p_value: *mut u64, ) -> Result { @@ -4359,7 +4394,7 @@ impl DeviceFnV1_2 { }, wait_semaphores: unsafe { unsafe extern "system" fn wait_semaphores( - _device: Device, + _device: crate::vk::Device, _p_wait_info: *const SemaphoreWaitInfo<'_>, _timeout: u64, ) -> Result { @@ -4375,7 +4410,7 @@ impl DeviceFnV1_2 { }, signal_semaphore: unsafe { unsafe extern "system" fn signal_semaphore( - _device: Device, + _device: crate::vk::Device, _p_signal_info: *const SemaphoreSignalInfo<'_>, ) -> Result { panic!(concat!("Unable to load ", stringify!(signal_semaphore))) @@ -4390,7 +4425,7 @@ impl DeviceFnV1_2 { }, get_buffer_device_address: unsafe { unsafe extern "system" fn get_buffer_device_address( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferDeviceAddressInfo<'_>, ) -> DeviceAddress { panic!(concat!( @@ -4408,7 +4443,7 @@ impl DeviceFnV1_2 { }, get_buffer_opaque_capture_address: unsafe { unsafe extern "system" fn get_buffer_opaque_capture_address( - _device: Device, + _device: crate::vk::Device, _p_info: *const BufferDeviceAddressInfo<'_>, ) -> u64 { panic!(concat!( @@ -4427,7 +4462,7 @@ impl DeviceFnV1_2 { }, get_device_memory_opaque_capture_address: unsafe { unsafe extern "system" fn get_device_memory_opaque_capture_address( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo<'_>, ) -> u64 { panic!(concat!( @@ -4448,8 +4483,10 @@ impl DeviceFnV1_2 { } } #[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, @@ -4486,6 +4523,7 @@ impl InstanceFnV1_3 { } } #[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, @@ -4549,7 +4587,7 @@ impl DeviceFnV1_3 { Self { create_private_data_slot: unsafe { unsafe extern "system" fn create_private_data_slot( - _device: Device, + _device: crate::vk::Device, _p_create_info: *const PrivateDataSlotCreateInfo<'_>, _p_allocator: *const AllocationCallbacks<'_>, _p_private_data_slot: *mut PrivateDataSlot, @@ -4569,7 +4607,7 @@ impl DeviceFnV1_3 { }, destroy_private_data_slot: unsafe { unsafe extern "system" fn destroy_private_data_slot( - _device: Device, + _device: crate::vk::Device, _private_data_slot: PrivateDataSlot, _p_allocator: *const AllocationCallbacks<'_>, ) { @@ -4588,7 +4626,7 @@ impl DeviceFnV1_3 { }, set_private_data: unsafe { unsafe extern "system" fn set_private_data( - _device: Device, + _device: crate::vk::Device, _object_type: ObjectType, _object_handle: u64, _private_data_slot: PrivateDataSlot, @@ -4606,7 +4644,7 @@ impl DeviceFnV1_3 { }, get_private_data: unsafe { unsafe extern "system" fn get_private_data( - _device: Device, + _device: crate::vk::Device, _object_type: ObjectType, _object_handle: u64, _private_data_slot: PrivateDataSlot, @@ -5122,7 +5160,7 @@ impl DeviceFnV1_3 { }, get_device_buffer_memory_requirements: unsafe { unsafe extern "system" fn get_device_buffer_memory_requirements( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceBufferMemoryRequirements<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -5142,7 +5180,7 @@ impl DeviceFnV1_3 { }, get_device_image_memory_requirements: unsafe { unsafe extern "system" fn get_device_image_memory_requirements( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceImageMemoryRequirements<'_>, _p_memory_requirements: *mut MemoryRequirements2<'_>, ) { @@ -5162,7 +5200,7 @@ impl DeviceFnV1_3 { }, get_device_image_sparse_memory_requirements: unsafe { unsafe extern "system" fn get_device_image_sparse_memory_requirements( - _device: Device, + _device: crate::vk::Device, _p_info: *const DeviceImageMemoryRequirements<'_>, _p_sparse_memory_requirement_count: *mut u32, _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2<'_>, diff --git a/generator/src/lib.rs b/generator/src/lib.rs index 8d96ed8ce..810435f03 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -875,8 +875,13 @@ impl FieldExt for vk_parse::CommandParam { assert!(!self.is_void(), "{:?}", self); let (rem, ty) = parse_c_parameter(&self.definition.code).unwrap(); assert!(rem.is_empty()); + // Disambiguate overloaded names + let qualifier = match ty.type_.name == "VkDevice" || ty.type_.name == "VkInstance" { + true => quote!(crate::vk::), + false => quote!(), + }; let type_name = name_to_tokens(ty.type_.name); - let type_name = quote!(#type_name #type_lifetime); + let type_name = quote!(#qualifier #type_name #type_lifetime); let inner_ty = match ty.type_.reference_type { CReferenceType::Value => quote!(#type_name), CReferenceType::Pointer => { @@ -916,6 +921,7 @@ fn generate_function_pointers<'a>( rename_commands: &HashMap<&'a str, &'a str>, fn_cache: &mut HashMap<&'a str, (Ident, Ident)>, has_lifetimes: &HashSet, + doc: &str, ) -> TokenStream { // Commands can have duplicates inside them because they are declared per features. But we only // really want to generate one function pointer. @@ -1155,6 +1161,7 @@ fn generate_function_pointers<'a>( #(#pfn_typedefs)* #[derive(Clone)] + #[doc = #doc] #struct_contents #loader @@ -1259,7 +1266,7 @@ pub fn generate_extension_constants<'a>( quote!(#(#enum_tokens)*) } pub fn generate_extension_commands<'a>( - extension_name: &'a str, + full_extension_name: &'a str, items: &'a [vk_parse::ExtensionChild], cmd_map: &CommandMap<'a>, cmd_aliases: &HashMap<&'a str, &'a str>, @@ -1281,9 +1288,9 @@ pub fn generate_extension_commands<'a>( } }); - let byte_name_ident = Literal::byte_string(format!("{extension_name}\0").as_bytes()); + let byte_name_ident = Literal::byte_string(format!("{full_extension_name}\0").as_bytes()); - let extension_name = extension_name.strip_prefix("VK_").unwrap(); + 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()), @@ -1326,27 +1333,94 @@ pub fn generate_extension_commands<'a>( let instance_fp = (!instance_commands.is_empty()).then(|| { let instance_ident = format_ident!("InstanceFn"); - generate_function_pointers( + let fp = generate_function_pointers( instance_ident, Some((&vendor, &extension_ident)), &instance_commands, &rename_commands, fn_cache, has_lifetimes, - ) + &format!( + "Raw {} instance-level function pointers", + full_extension_name + ), + ); + let doc = format!("{} instance-level functions", full_extension_name); + + quote! { + #fp + + #[doc = #doc] + 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 + } + } + } }); let device_fp = (!device_commands.is_empty()).then(|| { let device_ident = format_ident!("DeviceFn"); - generate_function_pointers( + let fp = generate_function_pointers( device_ident, Some((&vendor, &extension_ident)), &device_commands, &rename_commands, fn_cache, has_lifetimes, - ) + &format!("Raw {} device-level function pointers", full_extension_name), + ); + let doc = format!("{} device-level functions", full_extension_name); + + quote! { + #fp + + #[doc = #doc] + pub struct Device { + pub(crate) fp: DeviceFn, + pub(crate) handle: crate::vk::Device, + } + + impl Device { + pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self { + let handle = device.handle(); + let fp = DeviceFn::load(|name| unsafe { + core::mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr())) + }); + Self { handle, fp } + } + + #[inline] + pub fn fp(&self) -> &DeviceFn { + &self.fp + } + + #[inline] + pub fn device(&self) -> crate::vk::Device { + self.handle + } + } + } }); ( @@ -2709,6 +2783,7 @@ pub fn generate_feature<'a>( &HashMap::new(), fn_cache, has_lifetimes, + "Raw Vulkan 1 static function pointers", ) } else { quote! {} @@ -2720,6 +2795,10 @@ pub fn generate_feature<'a>( &HashMap::new(), fn_cache, has_lifetimes, + &format!( + "Raw Vulkan {} entry point function pointers", + feature.version + ), ); let instance = generate_function_pointers( format_ident!("InstanceFnV{}", version), @@ -2728,6 +2807,10 @@ pub fn generate_feature<'a>( &HashMap::new(), fn_cache, has_lifetimes, + &format!( + "Raw Vulkan {} instance-level function pointers", + feature.version + ), ); let device = generate_function_pointers( format_ident!("DeviceFnV{}", version), @@ -2736,6 +2819,10 @@ pub fn generate_feature<'a>( &HashMap::new(), fn_cache, has_lifetimes, + &format!( + "Raw Vulkan {} device-level function pointers", + feature.version + ), ); quote! { #static_fn From 0b47da6cd4cd036d48e39f245868f885fac0ff49 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Mon, 25 Mar 2024 21:40:02 -0700 Subject: [PATCH 2/4] Document extension modules --- Changelog.md | 1 + ash-examples/src/lib.rs | 11 +- ..._render_pass2.rs => create_renderpass2.rs} | 0 ash/src/extensions/khr/mod.rs | 2 +- ash/src/lib.rs | 1 + ash/src/vk/extensions.rs | 393 ++++++++++++++++++ generator/src/lib.rs | 3 + 7 files changed, 406 insertions(+), 5 deletions(-) rename ash/src/extensions/khr/{create_render_pass2.rs => create_renderpass2.rs} (100%) diff --git a/Changelog.md b/Changelog.md index d91ef5580..f04f533ef 100644 --- a/Changelog.md +++ b/Changelog.md @@ -76,6 +76,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - extensions/ext/ray_tracing_pipeline: Pass indirect SBT regions as single item reference (#829) - Replaced `c_char` array setters with `CStr` setters (#831) - `push_next()` functions now allow unsized `p_next` argument (#855) +- Moved high-level extension wrappers from `ash::extensions` to the existing modules under `ash::vk` (#894) ### Removed diff --git a/ash-examples/src/lib.rs b/ash-examples/src/lib.rs index be2a0a03a..ae53f8d67 100644 --- a/ash-examples/src/lib.rs +++ b/ash-examples/src/lib.rs @@ -11,11 +11,14 @@ use std::{ borrow::Cow, cell::RefCell, default::Default, error::Error, ffi, ops::Drop, os::raw::c_char, }; -use ash::vk::{ - ext::debug_utils, - khr::{surface, swapchain}, +use ash::{ + vk, + vk::{ + ext::debug_utils, + khr::{surface, swapchain}, + }, + Device, Entry, Instance, }; -use ash::{vk, Device, Entry, Instance}; use winit::{ event::{ElementState, Event, KeyEvent, WindowEvent}, event_loop::{ControlFlow, EventLoop}, diff --git a/ash/src/extensions/khr/create_render_pass2.rs b/ash/src/extensions/khr/create_renderpass2.rs similarity index 100% rename from ash/src/extensions/khr/create_render_pass2.rs rename to ash/src/extensions/khr/create_renderpass2.rs diff --git a/ash/src/extensions/khr/mod.rs b/ash/src/extensions/khr/mod.rs index 352551e84..5552598be 100644 --- a/ash/src/extensions/khr/mod.rs +++ b/ash/src/extensions/khr/mod.rs @@ -4,7 +4,7 @@ pub mod buffer_device_address; pub mod calibrated_timestamps; pub mod cooperative_matrix; pub mod copy_commands2; -pub mod create_render_pass2; +pub mod create_renderpass2; pub mod deferred_host_operations; pub mod device_group; pub mod device_group_creation; diff --git a/ash/src/lib.rs b/ash/src/lib.rs index 4a4940229..9c81b214f 100644 --- a/ash/src/lib.rs +++ b/ash/src/lib.rs @@ -70,6 +70,7 @@ pub mod util; pub mod vk; // macros of vk need to be defined beforehand +/// Hand-written ergonomic wrappers for extension functions mod extensions; pub trait RawPtr { diff --git a/ash/src/vk/extensions.rs b/ash/src/vk/extensions.rs index 874ee1dfc..6552073ea 100644 --- a/ash/src/vk/extensions.rs +++ b/ash/src/vk/extensions.rs @@ -3956,19 +3956,23 @@ 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 { @@ -3976,12 +3980,14 @@ pub mod amd { }; 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 = @@ -4096,30 +4102,35 @@ pub mod amd { } } } + #[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 = @@ -4192,30 +4203,35 @@ pub mod amd { } } } + #[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 = @@ -4290,18 +4306,21 @@ pub mod amd { } } } + #[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 { @@ -4309,6 +4328,7 @@ pub mod amd { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_AMD_display_native_hdr"] pub mod display_native_hdr { use super::super::*; pub const NAME: &CStr = @@ -4378,18 +4398,21 @@ pub mod amd { } } } + #[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 { @@ -4398,7 +4421,9 @@ pub mod amd { 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 = @@ -4647,7 +4672,9 @@ pub mod amdx { } } } +#[doc = "Extensions tagged ANDROID"] pub mod android { + #[doc = "VK_ANDROID_native_buffer"] pub mod native_buffer { use super::super::*; pub const NAME: &CStr = @@ -4820,6 +4847,7 @@ pub mod android { } } } + #[doc = "VK_ANDROID_external_memory_android_hardware_buffer"] pub mod external_memory_android_hardware_buffer { use super::super::*; pub const NAME: &CStr = unsafe { @@ -4926,6 +4954,7 @@ pub mod android { } } } + #[doc = "VK_ANDROID_external_format_resolve"] pub mod external_format_resolve { use super::super::*; pub const NAME: &CStr = @@ -4933,7 +4962,9 @@ pub mod android { 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 { @@ -4941,24 +4972,28 @@ pub mod arm { }; 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 = @@ -4966,7 +5001,9 @@ pub mod arm { 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 = @@ -5105,12 +5142,14 @@ pub mod ext { } } } + #[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 = @@ -5276,6 +5315,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_transform_feedback"] pub mod transform_feedback { use super::super::*; pub const NAME: &CStr = @@ -5511,24 +5551,28 @@ pub mod ext { } } } + #[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 { @@ -5536,18 +5580,21 @@ pub mod ext { }; 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 = @@ -5642,6 +5689,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_direct_mode_display"] pub mod direct_mode_display { use super::super::*; pub const NAME: &CStr = @@ -5706,6 +5754,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_acquire_xlib_display"] pub mod acquire_xlib_display { use super::super::*; pub const NAME: &CStr = @@ -5805,6 +5854,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_display_surface_counter"] pub mod display_surface_counter { use super::super::*; pub const NAME: &CStr = @@ -5878,6 +5928,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_display_control"] pub mod display_control { use super::super::*; pub const NAME: &CStr = @@ -6037,6 +6088,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_discard_rectangles"] pub mod discard_rectangles { use super::super::*; pub const NAME: &CStr = @@ -6161,24 +6213,28 @@ pub mod ext { } } } + #[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 = @@ -6247,18 +6303,21 @@ pub mod ext { } } } + #[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 = @@ -6615,24 +6674,28 @@ pub mod ext { } } } + #[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 = @@ -6767,18 +6830,21 @@ pub mod ext { } } } + #[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 = @@ -6852,6 +6918,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_validation_cache"] pub mod validation_cache { use super::super::*; pub const NAME: &CStr = @@ -7009,30 +7076,35 @@ pub mod ext { } } } + #[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 = @@ -7109,6 +7181,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_calibrated_timestamps"] pub mod calibrated_timestamps { use super::super::*; pub const NAME: &CStr = @@ -7250,24 +7323,28 @@ pub mod ext { } } } + #[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 = @@ -7340,42 +7417,49 @@ pub mod ext { } } } + #[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 = @@ -7444,6 +7528,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_tooling_info"] pub mod tooling_info { use super::super::*; pub const NAME: &CStr = @@ -7516,36 +7601,42 @@ pub mod ext { } } } + #[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 = @@ -7736,6 +7827,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_headless_surface"] pub mod headless_surface { use super::super::*; pub const NAME: &CStr = @@ -7808,6 +7900,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_line_rasterization"] pub mod line_rasterization { use super::super::*; pub const NAME: &CStr = @@ -7878,12 +7971,14 @@ pub mod ext { } } } + #[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 = @@ -7952,12 +8047,14 @@ pub mod ext { } } } + #[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 = @@ -8309,6 +8406,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_host_image_copy"] pub mod host_image_copy { use super::super::*; pub const NAME: &CStr = @@ -8483,24 +8581,28 @@ pub mod ext { } } } + #[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 = @@ -8569,6 +8671,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_shader_demote_to_helper_invocation"] pub mod shader_demote_to_helper_invocation { use super::super::*; pub const NAME: &CStr = unsafe { @@ -8576,12 +8679,14 @@ pub mod ext { }; 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 = @@ -8649,12 +8754,14 @@ pub mod ext { } } } + #[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 = @@ -8750,18 +8857,21 @@ pub mod ext { } } } + #[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 = @@ -8915,6 +9025,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_pipeline_creation_cache_control"] pub mod pipeline_creation_cache_control { use super::super::*; pub const NAME: &CStr = unsafe { @@ -8922,6 +9033,7 @@ pub mod ext { }; pub const SPEC_VERSION: u32 = 3u32; } + #[doc = "VK_EXT_metal_objects"] pub mod metal_objects { use super::super::*; pub const NAME: &CStr = @@ -8990,6 +9102,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_descriptor_buffer"] pub mod descriptor_buffer { use super::super::*; pub const NAME: &CStr = @@ -9363,12 +9476,14 @@ pub mod ext { } } } + #[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 = @@ -9507,24 +9622,28 @@ pub mod ext { } } } + #[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 = @@ -9592,6 +9711,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_attachment_feedback_loop_layout"] pub mod attachment_feedback_loop_layout { use super::super::*; pub const NAME: &CStr = unsafe { @@ -9599,12 +9719,14 @@ pub mod ext { }; 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 = @@ -9675,12 +9797,14 @@ pub mod ext { } } } + #[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 = @@ -9783,6 +9907,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_vertex_input_dynamic_state"] pub mod vertex_input_dynamic_state { use super::super::*; pub const NAME: &CStr = @@ -9857,12 +9982,14 @@ pub mod ext { } } } + #[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 { @@ -9870,12 +9997,14 @@ pub mod ext { }; 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 { @@ -9883,6 +10012,7 @@ pub mod ext { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_EXT_pipeline_properties"] pub mod pipeline_properties { use super::super::*; pub const NAME: &CStr = @@ -9960,12 +10090,14 @@ pub mod ext { } } } + #[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 { @@ -9973,6 +10105,7 @@ pub mod ext { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_EXT_extended_dynamic_state2"] pub mod extended_dynamic_state2 { use super::super::*; pub const NAME: &CStr = @@ -10133,6 +10266,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_color_write_enable"] pub mod color_write_enable { use super::super::*; pub const NAME: &CStr = @@ -10203,24 +10337,28 @@ pub mod ext { } } } + #[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 = @@ -10328,18 +10466,21 @@ pub mod ext { } } } + #[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 = @@ -10760,18 +10901,21 @@ pub mod ext { } } } + #[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 { @@ -10843,24 +10987,28 @@ pub mod ext { } } } + #[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 { @@ -10868,12 +11016,14 @@ pub mod ext { }; 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 { @@ -10881,6 +11031,7 @@ pub mod ext { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_EXT_extended_dynamic_state3"] pub mod extended_dynamic_state3 { use super::super::*; pub const NAME: &CStr = @@ -11730,12 +11881,14 @@ pub mod ext { } } } + #[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 = @@ -11836,6 +11989,7 @@ pub mod ext { } } } + #[doc = "VK_EXT_rasterization_order_attachment_access"] pub mod rasterization_order_attachment_access { use super::super::*; pub const NAME: &CStr = unsafe { @@ -11843,18 +11997,21 @@ pub mod ext { }; 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 = @@ -12968,18 +13125,21 @@ pub mod ext { } } } + #[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 { @@ -12987,6 +13147,7 @@ pub mod ext { }; 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 { @@ -12994,6 +13155,7 @@ pub mod ext { }; 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 { @@ -13064,7 +13226,9 @@ pub mod ext { } } } +#[doc = "Extensions tagged FUCHSIA"] pub mod fuchsia { + #[doc = "VK_FUCHSIA_imagepipe_surface"] pub mod imagepipe_surface { use super::super::*; pub const NAME: &CStr = @@ -13138,6 +13302,7 @@ pub mod fuchsia { } } } + #[doc = "VK_FUCHSIA_external_memory"] pub mod external_memory { use super::super::*; pub const NAME: &CStr = @@ -13241,6 +13406,7 @@ pub mod fuchsia { } } } + #[doc = "VK_FUCHSIA_external_semaphore"] pub mod external_semaphore { use super::super::*; pub const NAME: &CStr = @@ -13342,6 +13508,7 @@ pub mod fuchsia { } } } + #[doc = "VK_FUCHSIA_buffer_collection"] pub mod buffer_collection { use super::super::*; pub const NAME: &CStr = @@ -13534,7 +13701,9 @@ pub mod fuchsia { } } } +#[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 = @@ -13609,6 +13778,7 @@ pub mod ggp { } } } + #[doc = "VK_GGP_frame_token"] pub mod frame_token { use super::super::*; pub const NAME: &CStr = @@ -13616,7 +13786,9 @@ pub mod ggp { 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 = @@ -13719,24 +13891,28 @@ pub mod google { } } } + #[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 = @@ -13744,7 +13920,9 @@ pub mod google { 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 = @@ -13840,6 +14018,7 @@ pub mod huawei { } } } + #[doc = "VK_HUAWEI_invocation_mask"] pub mod invocation_mask { use super::super::*; pub const NAME: &CStr = @@ -13910,6 +14089,7 @@ pub mod huawei { } } } + #[doc = "VK_HUAWEI_cluster_culling_shader"] pub mod cluster_culling_shader { use super::super::*; pub const NAME: &CStr = @@ -14011,19 +14191,23 @@ pub mod huawei { } } } +#[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 = @@ -14031,13 +14215,16 @@ pub mod img { 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 = @@ -14323,7 +14510,9 @@ pub mod intel { } } } +#[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") }; @@ -14513,6 +14702,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_swapchain"] pub mod swapchain { use super::super::*; pub const NAME: &CStr = @@ -14843,6 +15033,7 @@ pub mod khr { } } } + #[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") }; @@ -15097,6 +15288,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_display_swapchain"] pub mod display_swapchain { use super::super::*; pub const NAME: &CStr = @@ -15171,6 +15363,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_xlib_surface"] pub mod xlib_surface { use super::super::*; pub const NAME: &CStr = @@ -15275,6 +15468,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_xcb_surface"] pub mod xcb_surface { use super::super::*; pub const NAME: &CStr = @@ -15378,6 +15572,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_wayland_surface"] pub mod wayland_surface { use super::super::*; pub const NAME: &CStr = @@ -15480,6 +15675,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_android_surface"] pub mod android_surface { use super::super::*; pub const NAME: &CStr = @@ -15552,6 +15748,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_win32_surface"] pub mod win32_surface { use super::super::*; pub const NAME: &CStr = @@ -15652,6 +15849,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_sampler_mirror_clamp_to_edge"] pub mod sampler_mirror_clamp_to_edge { use super::super::*; pub const NAME: &CStr = unsafe { @@ -15659,6 +15857,7 @@ pub mod khr { }; pub const SPEC_VERSION: u32 = 3u32; } + #[doc = "VK_KHR_video_queue"] pub mod video_queue { use super::super::*; pub const NAME: &CStr = @@ -16081,6 +16280,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_video_decode_queue"] pub mod video_decode_queue { use super::super::*; pub const NAME: &CStr = @@ -16145,24 +16345,28 @@ pub mod khr { } } } + #[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 = @@ -16251,12 +16455,14 @@ pub mod khr { } } } + #[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 { @@ -16500,6 +16706,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_device_group"] pub mod device_group { use super::super::*; pub const NAME: &CStr = @@ -16758,12 +16965,14 @@ pub mod khr { } } } + #[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 = @@ -16833,6 +17042,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_device_group_creation"] pub mod device_group_creation { use super::super::*; pub const NAME: &CStr = @@ -16906,6 +17116,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_external_memory_capabilities"] pub mod external_memory_capabilities { use super::super::*; pub const NAME: &CStr = unsafe { @@ -16979,12 +17190,14 @@ pub mod khr { } } } + #[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 = @@ -17088,6 +17301,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_external_memory_fd"] pub mod external_memory_fd { use super::super::*; pub const NAME: &CStr = @@ -17183,12 +17397,14 @@ pub mod khr { } } } + #[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 { @@ -17264,12 +17480,14 @@ pub mod khr { } } } + #[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 = @@ -17366,6 +17584,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_external_semaphore_fd"] pub mod external_semaphore_fd { use super::super::*; pub const NAME: &CStr = @@ -17457,6 +17676,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_push_descriptor"] pub mod push_descriptor { use super::super::*; pub const NAME: &CStr = @@ -17566,24 +17786,28 @@ pub mod khr { } } } + #[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 = @@ -17741,12 +17965,14 @@ pub mod khr { } } } + #[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 = @@ -17897,6 +18123,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_shared_presentable_image"] pub mod shared_presentable_image { use super::super::*; pub const NAME: &CStr = @@ -17963,6 +18190,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_external_fence_capabilities"] pub mod external_fence_capabilities { use super::super::*; pub const NAME: &CStr = @@ -18035,12 +18263,14 @@ pub mod khr { } } } + #[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 = @@ -18138,6 +18368,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_external_fence_fd"] pub mod external_fence_fd { use super::super::*; pub const NAME: &CStr = @@ -18225,6 +18456,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_performance_query"] pub mod performance_query { use super::super::*; pub const NAME: &CStr = @@ -18415,12 +18647,14 @@ pub mod khr { } } } + #[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 = @@ -18525,12 +18759,14 @@ pub mod khr { } } } + #[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 = @@ -18693,12 +18929,14 @@ pub mod khr { } } } + #[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 { @@ -18706,12 +18944,14 @@ pub mod khr { }; 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 = @@ -18841,12 +19081,14 @@ pub mod khr { } } } + #[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 = @@ -19379,6 +19621,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_ray_tracing_pipeline"] pub mod ray_tracing_pipeline { use super::super::*; pub const NAME: &CStr = @@ -19652,12 +19895,14 @@ pub mod khr { } } } + #[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 = @@ -19759,6 +20004,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_bind_memory2"] pub mod bind_memory2 { use super::super::*; pub const NAME: &CStr = @@ -19855,12 +20101,14 @@ pub mod khr { } } } + #[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 = @@ -19932,6 +20180,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_draw_indirect_count"] pub mod draw_indirect_count { use super::super::*; pub const NAME: &CStr = @@ -20028,6 +20277,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_shader_subgroup_extended_types"] pub mod shader_subgroup_extended_types { use super::super::*; pub const NAME: &CStr = unsafe { @@ -20035,60 +20285,70 @@ pub mod khr { }; 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 = @@ -20203,18 +20463,21 @@ pub mod khr { } } } + #[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 = @@ -20355,6 +20618,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_dynamic_rendering_local_read"] pub mod dynamic_rendering_local_read { use super::super::*; pub const NAME: &CStr = unsafe { @@ -20453,18 +20717,21 @@ pub mod khr { } } } + #[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 { @@ -20472,6 +20739,7 @@ pub mod khr { }; 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 { @@ -20479,6 +20747,7 @@ pub mod khr { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_KHR_present_wait"] pub mod present_wait { use super::super::*; pub const NAME: &CStr = @@ -20547,6 +20816,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_uniform_buffer_standard_layout"] pub mod uniform_buffer_standard_layout { use super::super::*; pub const NAME: &CStr = unsafe { @@ -20554,6 +20824,7 @@ pub mod khr { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_KHR_buffer_device_address"] pub mod buffer_device_address { use super::super::*; pub const NAME: &CStr = @@ -20672,6 +20943,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_deferred_host_operations"] pub mod deferred_host_operations { use super::super::*; pub const NAME: &CStr = @@ -20848,6 +21120,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_pipeline_executable_properties"] pub mod pipeline_executable_properties { use super::super::*; pub const NAME: &CStr = unsafe { @@ -20986,6 +21259,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_map_memory2"] pub mod map_memory2 { use super::super::*; pub const NAME: &CStr = @@ -21073,30 +21347,35 @@ pub mod khr { } } } + #[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 = @@ -21265,6 +21544,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_synchronization2"] pub mod synchronization2 { use super::super::*; pub const NAME: &CStr = @@ -21516,12 +21796,14 @@ pub mod khr { } } } + #[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 { @@ -21529,6 +21811,7 @@ pub mod khr { }; 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 { @@ -21536,6 +21819,7 @@ pub mod khr { }; 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 { @@ -21543,6 +21827,7 @@ pub mod khr { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_KHR_copy_commands2"] pub mod copy_commands2 { use super::super::*; pub const NAME: &CStr = @@ -21723,12 +22008,14 @@ pub mod khr { } } } + #[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 = @@ -21797,12 +22084,14 @@ pub mod khr { } } } + #[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 = @@ -21933,12 +22222,14 @@ pub mod khr { } } } + #[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 { @@ -21946,6 +22237,7 @@ pub mod khr { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_KHR_maintenance5"] pub mod maintenance5 { use super::super::*; pub const NAME: &CStr = @@ -22100,12 +22392,14 @@ pub mod khr { } } } + #[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 = @@ -22179,42 +22473,49 @@ pub mod khr { } } } + #[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 = @@ -22280,6 +22581,7 @@ pub mod khr { } } } + #[doc = "VK_KHR_calibrated_timestamps"] pub mod calibrated_timestamps { use super::super::*; pub const NAME: &CStr = @@ -22404,12 +22706,14 @@ pub mod khr { } } } + #[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 = @@ -22608,7 +22912,9 @@ pub mod khr { } } } +#[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 = @@ -22616,7 +22922,9 @@ pub mod lunarg { 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 = @@ -22624,7 +22932,9 @@ pub mod msft { 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 = @@ -22696,6 +23006,7 @@ pub mod mvk { } } } + #[doc = "VK_MVK_macos_surface"] pub mod macos_surface { use super::super::*; pub const NAME: &CStr = @@ -22769,7 +23080,9 @@ pub mod mvk { } } } +#[doc = "Extensions tagged NN"] pub mod nn { + #[doc = "VK_NN_vi_surface"] pub mod vi_surface { use super::super::*; pub const NAME: &CStr = @@ -22839,25 +23152,30 @@ pub mod nn { } } } +#[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 = @@ -22941,12 +23259,14 @@ pub mod nv { } } } + #[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 = @@ -23019,12 +23339,14 @@ pub mod nv { } } } + #[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 = @@ -23097,6 +23419,7 @@ pub mod nv { } } } + #[doc = "VK_NV_sample_mask_override_coverage"] pub mod sample_mask_override_coverage { use super::super::*; pub const NAME: &CStr = unsafe { @@ -23104,48 +23427,56 @@ pub mod nv { }; 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 = @@ -23275,6 +23606,7 @@ pub mod nv { } } } + #[doc = "VK_NV_ray_tracing"] pub mod ray_tracing { use super::super::*; pub const NAME: &CStr = @@ -23699,24 +24031,28 @@ pub mod nv { } } } + #[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 = @@ -23853,18 +24189,21 @@ pub mod nv { } } } + #[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 = @@ -23967,6 +24306,7 @@ pub mod nv { } } } + #[doc = "VK_NV_device_diagnostic_checkpoints"] pub mod device_diagnostic_checkpoints { use super::super::*; pub const NAME: &CStr = unsafe { @@ -24062,6 +24402,7 @@ pub mod nv { } } } + #[doc = "VK_NV_dedicated_allocation_image_aliasing"] pub mod dedicated_allocation_image_aliasing { use super::super::*; pub const NAME: &CStr = unsafe { @@ -24069,6 +24410,7 @@ pub mod nv { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_NV_cooperative_matrix"] pub mod cooperative_matrix { use super::super::*; pub const NAME: &CStr = @@ -24142,6 +24484,7 @@ pub mod nv { } } } + #[doc = "VK_NV_coverage_reduction_mode"] pub mod coverage_reduction_mode { use super::super::*; pub const NAME: &CStr = @@ -24212,6 +24555,7 @@ pub mod nv { } } } + #[doc = "VK_NV_device_generated_commands"] pub mod device_generated_commands { use super::super::*; pub const NAME: &CStr = @@ -24427,24 +24771,28 @@ pub mod nv { } } } + #[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 = @@ -24652,12 +25000,14 @@ pub mod nv { } } } + #[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 = @@ -24729,12 +25079,14 @@ pub mod nv { } } } + #[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 = @@ -24826,6 +25178,7 @@ pub mod nv { } } } + #[doc = "VK_NV_external_memory_rdma"] pub mod external_memory_rdma { use super::super::*; pub const NAME: &CStr = @@ -24898,12 +25251,14 @@ pub mod nv { } } } + #[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 = @@ -25012,6 +25367,7 @@ pub mod nv { } } } + #[doc = "VK_NV_memory_decompression"] pub mod memory_decompression { use super::super::*; pub const NAME: &CStr = @@ -25112,6 +25468,7 @@ pub mod nv { } } } + #[doc = "VK_NV_device_generated_commands_compute"] pub mod device_generated_commands_compute { use super::super::*; pub const NAME: &CStr = unsafe { @@ -25240,12 +25597,14 @@ pub mod nv { } } } + #[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 = @@ -25475,6 +25834,7 @@ pub mod nv { } } } + #[doc = "VK_NV_ray_tracing_invocation_reorder"] pub mod ray_tracing_invocation_reorder { use super::super::*; pub const NAME: &CStr = unsafe { @@ -25482,6 +25842,7 @@ pub mod nv { }; 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 { @@ -25489,6 +25850,7 @@ pub mod nv { }; pub const SPEC_VERSION: u32 = 1u32; } + #[doc = "VK_NV_low_latency2"] pub mod low_latency2 { use super::super::*; pub const NAME: &CStr = @@ -25659,12 +26021,14 @@ pub mod nv { } } } + #[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 { @@ -25672,18 +26036,21 @@ pub mod nv { }; 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 = @@ -25691,7 +26058,9 @@ pub mod nv { 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 = @@ -25866,6 +26235,7 @@ pub mod nvx { } } } + #[doc = "VK_NVX_image_view_handle"] pub mod image_view_handle { use super::super::*; pub const NAME: &CStr = @@ -25961,6 +26331,7 @@ pub mod nvx { } } } + #[doc = "VK_NVX_multiview_per_view_attributes"] pub mod multiview_per_view_attributes { use super::super::*; pub const NAME: &CStr = unsafe { @@ -25969,31 +26340,37 @@ pub mod nvx { 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 { @@ -26001,12 +26378,14 @@ pub mod qcom { }; 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 = @@ -26111,6 +26490,7 @@ pub mod qcom { } } } + #[doc = "VK_QCOM_multiview_per_view_viewports"] pub mod multiview_per_view_viewports { use super::super::*; pub const NAME: &CStr = unsafe { @@ -26118,6 +26498,7 @@ pub mod qcom { }; 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 { @@ -26125,24 +26506,28 @@ pub mod qcom { }; 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 = @@ -26150,7 +26535,9 @@ pub mod qcom { 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 = @@ -26253,6 +26640,7 @@ pub mod qnx { } } } + #[doc = "VK_QNX_external_memory_screen_buffer"] pub mod external_memory_screen_buffer { use super::super::*; pub const NAME: &CStr = unsafe { @@ -26326,7 +26714,9 @@ pub mod qnx { } } } +#[doc = "Extensions tagged SEC"] pub mod sec { + #[doc = "VK_SEC_amigo_profiling"] pub mod amigo_profiling { use super::super::*; pub const NAME: &CStr = @@ -26334,13 +26724,16 @@ pub mod sec { 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 { diff --git a/generator/src/lib.rs b/generator/src/lib.rs index 810435f03..2955bf8a8 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -1426,6 +1426,7 @@ pub fn generate_extension_commands<'a>( ( vendor, 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 @@ -3255,7 +3256,9 @@ pub fn write_source_code>(vk_headers_dir: &Path, src_dir: P) { } let extension_cmds = extension_cmds.into_iter().map(|(vendor, code)| { let vendor_ident = format_ident!("{}", vendor.to_lowercase()); + let doc = format!("Extensions tagged {}", vendor); quote! { + #[doc = #doc] pub mod #vendor_ident { #(#code)* } From b8acac7f78e61ed3b6ac623ea7c92fbe48c6d7c9 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 29 Mar 2024 12:21:50 -0700 Subject: [PATCH 3/4] Isolate raw bindings from generated support code --- ash-examples/src/lib.rs | 15 +- ash-window/examples/winit.rs | 2 +- ash-window/src/lib.rs | 11 +- ash/src/device.rs | 34 +- ash/src/entry.rs | 36 +- ash/src/extensions/amd/buffer_marker.rs | 2 +- ash/src/extensions/amd/shader_info.rs | 2 +- ash/src/extensions/amdx/shader_enqueue.rs | 2 +- ...external_memory_android_hardware_buffer.rs | 2 +- ash/src/extensions/ext/acquire_drm_display.rs | 2 +- .../extensions/ext/buffer_device_address.rs | 2 +- .../extensions/ext/calibrated_timestamps.rs | 4 +- ash/src/extensions/ext/debug_marker.rs | 2 +- ash/src/extensions/ext/debug_report.rs | 2 +- ash/src/extensions/ext/debug_utils.rs | 4 +- ash/src/extensions/ext/descriptor_buffer.rs | 2 +- .../extensions/ext/extended_dynamic_state.rs | 2 +- .../extensions/ext/extended_dynamic_state2.rs | 2 +- .../extensions/ext/extended_dynamic_state3.rs | 2 +- .../extensions/ext/full_screen_exclusive.rs | 4 +- ash/src/extensions/ext/hdr_metadata.rs | 2 +- ash/src/extensions/ext/headless_surface.rs | 2 +- ash/src/extensions/ext/host_image_copy.rs | 8 +- .../ext/image_compression_control.rs | 8 +- .../ext/image_drm_format_modifier.rs | 2 +- ash/src/extensions/ext/mesh_shader.rs | 2 +- ash/src/extensions/ext/metal_surface.rs | 2 +- ash/src/extensions/ext/pipeline_properties.rs | 4 +- ash/src/extensions/ext/private_data.rs | 2 +- ash/src/extensions/ext/sample_locations.rs | 4 +- ash/src/extensions/ext/shader_object.rs | 2 +- .../extensions/ext/swapchain_maintenance1.rs | 2 +- ash/src/extensions/ext/tooling_info.rs | 2 +- .../ext/vertex_input_dynamic_state.rs | 2 +- ash/src/extensions/google/display_timing.rs | 2 +- .../extensions/khr/acceleration_structure.rs | 2 +- ash/src/extensions/khr/android_surface.rs | 2 +- .../extensions/khr/buffer_device_address.rs | 2 +- .../extensions/khr/calibrated_timestamps.rs | 4 +- ash/src/extensions/khr/cooperative_matrix.rs | 2 +- ash/src/extensions/khr/copy_commands2.rs | 2 +- ash/src/extensions/khr/create_renderpass2.rs | 2 +- .../khr/deferred_host_operations.rs | 2 +- ash/src/extensions/khr/device_group.rs | 14 +- .../extensions/khr/device_group_creation.rs | 2 +- ash/src/extensions/khr/display.rs | 2 +- ash/src/extensions/khr/display_swapchain.rs | 2 +- ash/src/extensions/khr/draw_indirect_count.rs | 2 +- ash/src/extensions/khr/dynamic_rendering.rs | 2 +- .../khr/dynamic_rendering_local_read.rs | 2 +- ash/src/extensions/khr/external_fence_fd.rs | 2 +- .../extensions/khr/external_fence_win32.rs | 2 +- ash/src/extensions/khr/external_memory_fd.rs | 2 +- .../extensions/khr/external_memory_win32.rs | 2 +- .../extensions/khr/external_semaphore_fd.rs | 2 +- .../khr/external_semaphore_win32.rs | 2 +- .../khr/get_memory_requirements2.rs | 2 +- .../khr/get_physical_device_properties2.rs | 2 +- .../khr/get_surface_capabilities2.rs | 2 +- ash/src/extensions/khr/line_rasterization.rs | 2 +- ash/src/extensions/khr/maintenance1.rs | 2 +- ash/src/extensions/khr/maintenance3.rs | 2 +- ash/src/extensions/khr/maintenance4.rs | 2 +- ash/src/extensions/khr/maintenance5.rs | 8 +- ash/src/extensions/khr/maintenance6.rs | 2 +- ash/src/extensions/khr/performance_query.rs | 4 +- .../khr/pipeline_executable_properties.rs | 2 +- ash/src/extensions/khr/present_wait.rs | 2 +- ash/src/extensions/khr/push_descriptor.rs | 2 +- .../khr/ray_tracing_maintenance1.rs | 2 +- .../extensions/khr/ray_tracing_pipeline.rs | 2 +- .../khr/sampler_ycbcr_conversion.rs | 2 +- ash/src/extensions/khr/surface.rs | 2 +- ash/src/extensions/khr/swapchain.rs | 14 +- ash/src/extensions/khr/synchronization2.rs | 2 +- ash/src/extensions/khr/timeline_semaphore.rs | 2 +- ash/src/extensions/khr/wayland_surface.rs | 2 +- ash/src/extensions/khr/win32_surface.rs | 2 +- ash/src/extensions/khr/xcb_surface.rs | 2 +- ash/src/extensions/khr/xlib_surface.rs | 2 +- ash/src/extensions/mvk/ios_surface.rs | 2 +- ash/src/extensions/mvk/macos_surface.rs | 2 +- ash/src/extensions/nn/vi_surface.rs | 2 +- ash/src/extensions/nv/copy_memory_indirect.rs | 2 +- .../extensions/nv/coverage_reduction_mode.rs | 2 +- ash/src/extensions/nv/cuda_kernel_launch.rs | 2 +- .../nv/device_diagnostic_checkpoints.rs | 2 +- .../nv/device_generated_commands_compute.rs | 2 +- ash/src/extensions/nv/low_latency2.rs | 2 +- ash/src/extensions/nv/memory_decompression.rs | 2 +- ash/src/extensions/nv/mesh_shader.rs | 2 +- ash/src/extensions/nv/ray_tracing.rs | 2 +- ash/src/extensions_generated.rs | 20313 ++++++++++++ ash/src/instance.rs | 26 +- ash/src/lib.rs | 4 + ash/src/tables.rs | 4295 +++ ash/src/vk/extensions.rs | 26807 +++------------- ash/src/vk/features.rs | 4307 --- generator/src/lib.rs | 229 +- 99 files changed, 28851 insertions(+), 27458 deletions(-) create mode 100644 ash/src/extensions_generated.rs create mode 100644 ash/src/tables.rs diff --git a/ash-examples/src/lib.rs b/ash-examples/src/lib.rs index ae53f8d67..e1c2e2670 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() @@ -319,7 +316,7 @@ impl ExampleBase { let device_extension_names_raw = [ swapchain::NAME.as_ptr(), #[cfg(any(target_os = "macos", target_os = "ios"))] - vk::khr::portability_subset::NAME.as_ptr(), + ash::khr::portability_subset::NAME.as_ptr(), ]; let features = vk::PhysicalDeviceFeatures { shader_clip_distance: 1, diff --git a/ash-window/examples/winit.rs b/ash-window/examples/winit.rs index e641dd7a2..70537b26f 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 bfab2f238..edb001a29 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 3b930b9e6..25050d213 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 6148399a8..7af6b263c 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 f95ecb20b..f01190e44 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 e573721a1..800f40f8b 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 ac800db08..f94e67af6 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 594cc6946..d94deb3d2 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 959c60ad9..9ed928f73 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 89d4cf540..52b074130 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 52da074a8..3005d3b63 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 83697a794..0e584fe2d 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 077745f8a..d29a322f5 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 fd8e3e8f8..ac697f423 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 fc09c2730..a5e9ab857 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 fa212e51d..dfe882679 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 fc28de45c..708d73410 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 858bd7d2a..e7461d806 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 ebe596d6c..f2b9791f7 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 c44b05c6f..10c90ec62 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 68fe9439b..a3066e81c 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 6af4caa62..204896407 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 a849cf0a1..436431bd0 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 e6233177e..c07e14719 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 a87451eee..eecf84c66 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 e11730c3d..99bcb6195 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 e8603b55b..3ef7d4065 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 1181bd4b1..535fe37cb 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 df699f8e6..b467f8cf7 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 5416080e7..1582d2f80 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 42f7a6e62..531474226 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 592f1aaa7..0f00f08b8 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 796b81bdc..2e7fd7d6e 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 b95437da1..06de20926 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 07c4e7069..87e98c049 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 dcf54707d..6aa5267f6 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 be260f895..b68f69307 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 7cc6b9290..eaf0c6ba4 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 1524e1de1..d8c0ef510 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 c2a47b531..e04107d8e 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 f85b7e00d..7ff94dc70 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 a84631512..3f71788cc 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 9f1278fc1..537c40270 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 fbcd8ef7b..ad85ee079 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 79d1ff704..801efbb21 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 eef4ec7ba..b5d3e8b42 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 d137da3c3..00a97113f 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 3bf81dc8c..2d06be76b 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 5586785cb..bfd22649c 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 612ad0a1d..8b7334acc 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 edd87382b..e2c2e058d 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 5035502e3..f77e382cc 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 2a76bd213..4bf2fc1f8 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 8883130c7..181ea3613 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 dcedd02c2..889887e1b 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 60a959184..a530ac4ca 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 0c363d735..3c0e88d64 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 5c8577d4e..135334c10 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 758bb40ad..47a3a1bcf 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 01d85789e..c00405ff1 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 6b8016b25..0203a1dac 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 57a042460..68f472715 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 fdd57066d..93b417a68 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 de50e2224..696ff6f3c 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 5d8c23a7d..f5bcbc0ad 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 e33188d13..d10b2c6ff 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 8b202741f..7ade6fbdf 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 09877d645..bf742937b 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 e988f5715..97e1f8caf 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 3cef7d81d..f5e641a93 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 979336dcf..48e9cad5f 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 e5d40c4db..c8218f267 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 df53ae706..861242d9b 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 069f47ed2..2cfeef7a7 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 6c5262494..01af37554 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 650bdc4c0..b5d91b488 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 56ed4480e..1aa359f7d 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 72d93d510..5623026a9 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 eb7dd1fe4..ddd01f060 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 89661eb9c..e3e60f647 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 958c3d99b..d8a873536 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 d0d50adf7..0e2b41acb 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 7c6a17fcc..14f117ed3 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 18d518549..61161ef54 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 d1615e00c..f1fa7115f 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 ef88d873b..a2aef0508 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 a1f09ba3e..b55913173 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 2effc8e53..f20f1c8da 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 37ffdba43..9f68385d9 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 a7e00d6eb..b431f9cfc 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 c441b8475..eb7ea4015 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 000000000..102afe06d --- /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 163e2e211..79995e19e 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 9c81b214f..2f829d167 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 000000000..37b9d176e --- /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 6552073ea..075883d91 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 1c10f1be5..cda77a97d 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 2955bf8a8..bd7425d1d 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,12 @@ fn generate_function_pointers<'a>( .as_ref() .expect("Command must have return type"); - let type_in_module = fn_cache.get(name.as_str()).cloned(); - - if let Some((vendor, ident)) = module { - if type_in_module.is_none() { - fn_cache.insert( - name, - (format_ident!("{}", vendor.to_lowercase()), ident.clone()), - ); - } - } + // Command aliases mean we may see the same PFN name and type multiple times, but we + // must only emit a single definition. + let define_pfn = fn_cache.insert(name.as_str()); 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 +1072,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 +1123,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 +1140,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 +1254,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 +1290,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 +1331,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 +1344,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 +1370,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 +1388,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 +1414,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 +2753,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 +2781,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 +2791,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 +2804,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 +2815,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 +2826,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 +3154,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 +3251,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 +3262,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 +3326,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(); + .unzip(); let feature_extensions_code = generate_feature_extension(&spec2, &mut const_cache, &mut const_values); @@ -3341,13 +3355,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 +3399,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 +3433,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 +3476,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(); From 07297272d8807d0c8165e3052b71c4c3df856eb9 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 29 Mar 2024 17:34:28 -0700 Subject: [PATCH 4/4] Reword changelog --- Changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index f04f533ef..1ce2c4f3d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -76,7 +76,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - extensions/ext/ray_tracing_pipeline: Pass indirect SBT regions as single item reference (#829) - Replaced `c_char` array setters with `CStr` setters (#831) - `push_next()` functions now allow unsized `p_next` argument (#855) -- Moved high-level extension wrappers from `ash::extensions` to the existing modules under `ash::vk` (#894) +- Flattened `ash::extensions` into `ash`, flattened `ash::vk::*` extension modules into `ash::vk`, and moved `*Fn` function pointer table structs from `ash::vk` into `ash` or the associated extension module (#894) ### Removed