jay_ash/extensions/khr/
maintenance4.rs1use crate::vk;
4use core::mem;
5use core::ptr;
6
7impl crate::khr::maintenance4::Device {
8 #[inline]
10 pub unsafe fn get_device_buffer_memory_requirements(
11 &self,
12 memory_requirements: &vk::DeviceBufferMemoryRequirementsKHR<'_>,
13 out: &mut vk::MemoryRequirements2<'_>,
14 ) {
15 unsafe {
16 (self.fp.get_device_buffer_memory_requirements_khr)(
17 self.handle,
18 memory_requirements,
19 out,
20 )
21 }
22 }
23
24 #[inline]
26 pub unsafe fn get_device_image_memory_requirements(
27 &self,
28 memory_requirements: &vk::DeviceImageMemoryRequirementsKHR<'_>,
29 out: &mut vk::MemoryRequirements2<'_>,
30 ) {
31 unsafe {
32 (self.fp.get_device_image_memory_requirements_khr)(
33 self.handle,
34 memory_requirements,
35 out,
36 )
37 }
38 }
39
40 #[inline]
42 pub unsafe fn get_device_image_sparse_memory_requirements_len(
43 &self,
44 memory_requirements: &vk::DeviceImageMemoryRequirementsKHR<'_>,
45 ) -> usize {
46 unsafe {
47 let mut count = mem::MaybeUninit::uninit();
48 (self.fp.get_device_image_sparse_memory_requirements_khr)(
49 self.handle,
50 memory_requirements,
51 count.as_mut_ptr(),
52 ptr::null_mut(),
53 );
54 count.assume_init() as usize
55 }
56 }
57
58 #[inline]
63 pub unsafe fn get_device_image_sparse_memory_requirements(
64 &self,
65 memory_requirements: &vk::DeviceImageMemoryRequirementsKHR<'_>,
66 out: &mut [vk::SparseImageMemoryRequirements2<'_>],
67 ) {
68 unsafe {
69 let mut count = out.len() as u32;
70 (self.fp.get_device_image_sparse_memory_requirements_khr)(
71 self.handle,
72 memory_requirements,
73 &mut count,
74 out.as_mut_ptr(),
75 );
76 assert_eq!(count as usize, out.len());
77 }
78 }
79}