Skip to content

Commit 2ac9729

Browse files
committed
Unify extension module hierarchies
1 parent 71387e9 commit 2ac9729

File tree

96 files changed

+4780
-2981
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+4780
-2981
lines changed

ash-examples/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use std::{
1111
borrow::Cow, cell::RefCell, default::Default, error::Error, ffi, ops::Drop, os::raw::c_char,
1212
};
1313

14-
use ash::extensions::{
14+
use ash::vk::{
1515
ext::debug_utils,
1616
khr::{surface, swapchain},
1717
};

ash-window/examples/winit.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ fn main() -> Result<(), Box<dyn Error>> {
3535
.build(&event_loop)?;
3636

3737
// Load the surface extensions
38-
let surface_fn = ash::extensions::khr::surface::Instance::new(&entry, &instance);
38+
let surface_fn = vk::khr::surface::Instance::new(&entry, &instance);
3939
let mut surface = None;
4040

4141
let _ = event_loop.run(move |event, elwp| match event {

ash-window/src/lib.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
use std::os::raw::c_char;
44

55
use ash::{
6-
extensions::{
6+
prelude::*,
7+
vk,
8+
vk::{
79
ext::metal_surface,
810
khr::{
911
android_surface, surface, wayland_surface, win32_surface, xcb_surface, xlib_surface,
1012
},
1113
},
12-
prelude::*,
13-
vk, Entry, Instance,
14+
Entry, Instance,
1415
};
1516
use raw_window_handle::{RawDisplayHandle, RawWindowHandle};
1617

ash/src/entry.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ impl Entry {
235235
/// # Safety
236236
///
237237
/// The resulting [`Instance`] and any function-pointer objects (e.g. [`Device`][crate::Device]
238-
/// and [extensions][crate::extensions]) loaded from it may not be used after this [`Entry`]
239-
/// object is dropped, unless it was crated using [`Entry::linked()`] or
238+
/// and extensions like [`vk::khr::swapchain::Device`]) loaded from it may not be used after
239+
/// this [`Entry`] object is dropped, unless it was crated using [`Entry::linked()`] or
240240
/// [`Entry::from_parts_1_1()`].
241241
///
242242
/// [`Instance`] does _not_ implement [drop][drop()] semantics and can only be destroyed via
Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,8 @@
11
//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_buffer_marker.html>
22
33
use crate::vk;
4-
use core::mem;
5-
pub use vk::amd::buffer_marker::NAME;
6-
7-
#[derive(Clone)]
8-
pub struct Device {
9-
fp: vk::amd::buffer_marker::DeviceFn,
10-
}
11-
12-
impl Device {
13-
pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
14-
let fp = vk::amd::buffer_marker::DeviceFn::load(|name| unsafe {
15-
mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr()))
16-
});
17-
Self { fp }
18-
}
194

5+
impl vk::amd::buffer_marker::Device {
206
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdWriteBufferMarkerAMD.html>
217
#[inline]
228
pub unsafe fn cmd_write_buffer_marker(
@@ -35,9 +21,4 @@ impl Device {
3521
marker,
3622
)
3723
}
38-
39-
#[inline]
40-
pub fn fp(&self) -> &vk::amd::buffer_marker::DeviceFn {
41-
&self.fp
42-
}
4324
}

ash/src/extensions/amd/shader_info.rs

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,8 @@ use crate::prelude::*;
44
use crate::vk;
55
use alloc::vec::Vec;
66
use core::mem;
7-
pub use vk::amd::shader_info::NAME;
8-
9-
#[derive(Clone)]
10-
pub struct Device {
11-
handle: vk::Device,
12-
fp: vk::amd::shader_info::DeviceFn,
13-
}
14-
15-
impl Device {
16-
pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
17-
let handle = device.handle();
18-
let fp = vk::amd::shader_info::DeviceFn::load(|name| unsafe {
19-
mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
20-
});
21-
Self { handle, fp }
22-
}
237

8+
impl vk::amd::shader_info::Device {
249
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetShaderInfoAMD.html>
2510
#[inline]
2611
pub unsafe fn get_shader_info(
@@ -64,16 +49,6 @@ impl Device {
6449
x => unimplemented!("ShaderInfoTypeAMD {}", x.0),
6550
}
6651
}
67-
68-
#[inline]
69-
pub fn fp(&self) -> &vk::amd::shader_info::DeviceFn {
70-
&self.fp
71-
}
72-
73-
#[inline]
74-
pub fn device(&self) -> vk::Device {
75-
self.handle
76-
}
7752
}
7853

7954
#[derive(Clone)]

ash/src/extensions/amdx/shader_enqueue.rs

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,8 @@ use crate::vk;
55
use crate::RawPtr;
66
use alloc::vec::Vec;
77
use core::mem;
8-
pub use vk::amdx::shader_enqueue::NAME;
9-
10-
#[derive(Clone)]
11-
pub struct Device {
12-
handle: vk::Device,
13-
fp: vk::amdx::shader_enqueue::DeviceFn,
14-
}
15-
16-
impl Device {
17-
pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
18-
let handle = device.handle();
19-
let fp = vk::amdx::shader_enqueue::DeviceFn::load(|name| unsafe {
20-
mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
21-
});
22-
Self { handle, fp }
23-
}
248

9+
impl vk::amdx::shader_enqueue::Device {
2510
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateExecutionGraphPipelinesAMDX.html>
2611
#[inline]
2712
pub unsafe fn create_execution_graph_pipelines(
@@ -116,14 +101,4 @@ impl Device {
116101
) {
117102
(self.fp.cmd_dispatch_graph_indirect_count_amdx)(command_buffer, scratch, count_info)
118103
}
119-
120-
#[inline]
121-
pub fn fp(&self) -> &vk::amdx::shader_enqueue::DeviceFn {
122-
&self.fp
123-
}
124-
125-
#[inline]
126-
pub fn device(&self) -> vk::Device {
127-
self.handle
128-
}
129104
}

ash/src/extensions/android/external_memory_android_hardware_buffer.rs

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,8 @@
33
use crate::prelude::*;
44
use crate::vk;
55
use core::mem;
6-
pub use vk::android::external_memory_android_hardware_buffer::NAME;
7-
8-
#[derive(Clone)]
9-
pub struct Device {
10-
handle: vk::Device,
11-
fp: vk::android::external_memory_android_hardware_buffer::DeviceFn,
12-
}
13-
14-
impl Device {
15-
pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
16-
let handle = device.handle();
17-
let fp =
18-
vk::android::external_memory_android_hardware_buffer::DeviceFn::load(|name| unsafe {
19-
mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
20-
});
21-
Self { handle, fp }
22-
}
236

7+
impl vk::android::external_memory_android_hardware_buffer::Device {
248
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html>
259
#[inline]
2610
pub unsafe fn get_android_hardware_buffer_properties(
@@ -42,14 +26,4 @@ impl Device {
4226
(self.fp.get_memory_android_hardware_buffer_android)(self.handle, info, buffer.as_mut_ptr())
4327
.assume_init_on_success(buffer)
4428
}
45-
46-
#[inline]
47-
pub fn fp(&self) -> &vk::android::external_memory_android_hardware_buffer::DeviceFn {
48-
&self.fp
49-
}
50-
51-
#[inline]
52-
pub fn device(&self) -> vk::Device {
53-
self.handle
54-
}
5529
}

ash/src/extensions/ext/acquire_drm_display.rs

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,8 @@
33
use crate::prelude::*;
44
use crate::vk;
55
use core::mem;
6-
pub use vk::ext::acquire_drm_display::NAME;
7-
8-
#[derive(Clone)]
9-
pub struct Instance {
10-
fp: vk::ext::acquire_drm_display::InstanceFn,
11-
}
12-
13-
impl Instance {
14-
pub fn new(entry: &crate::Entry, instance: &crate::Instance) -> Self {
15-
let handle = instance.handle();
16-
let fp = vk::ext::acquire_drm_display::InstanceFn::load(|name| unsafe {
17-
mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr()))
18-
});
19-
Self { fp }
20-
}
216

7+
impl vk::ext::acquire_drm_display::Instance {
228
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkAcquireDrmDisplayEXT.html>
239
#[inline]
2410
pub unsafe fn acquire_drm_display(
@@ -42,9 +28,4 @@ impl Instance {
4228
(self.fp.get_drm_display_ext)(physical_device, drm_fd, connector_id, display.as_mut_ptr())
4329
.assume_init_on_success(display)
4430
}
45-
46-
#[inline]
47-
pub fn fp(&self) -> &vk::ext::acquire_drm_display::InstanceFn {
48-
&self.fp
49-
}
5031
}
Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,8 @@
11
//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_buffer_device_address.html>
22
33
use crate::vk;
4-
use core::mem;
5-
pub use vk::ext::buffer_device_address::NAME;
6-
7-
#[derive(Clone)]
8-
pub struct Device {
9-
handle: vk::Device,
10-
fp: vk::ext::buffer_device_address::DeviceFn,
11-
}
12-
13-
impl Device {
14-
pub fn new(instance: &crate::Instance, device: &crate::Device) -> Self {
15-
let handle = device.handle();
16-
let fp = vk::ext::buffer_device_address::DeviceFn::load(|name| unsafe {
17-
mem::transmute(instance.get_device_proc_addr(handle, name.as_ptr()))
18-
});
19-
Self { handle, fp }
20-
}
214

5+
impl vk::ext::buffer_device_address::Device {
226
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetBufferDeviceAddressEXT.html>
237
#[inline]
248
pub unsafe fn get_buffer_device_address(
@@ -27,14 +11,4 @@ impl Device {
2711
) -> vk::DeviceAddress {
2812
(self.fp.get_buffer_device_address_ext)(self.handle, info)
2913
}
30-
31-
#[inline]
32-
pub fn fp(&self) -> &vk::ext::buffer_device_address::DeviceFn {
33-
&self.fp
34-
}
35-
36-
#[inline]
37-
pub fn device(&self) -> vk::Device {
38-
self.handle
39-
}
4014
}

0 commit comments

Comments
 (0)