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 (self.fp.get_device_buffer_memory_requirements_khr)(self.handle, memory_requirements, out)
16 }
17
18 #[inline]
20 pub unsafe fn get_device_image_memory_requirements(
21 &self,
22 memory_requirements: &vk::DeviceImageMemoryRequirementsKHR<'_>,
23 out: &mut vk::MemoryRequirements2<'_>,
24 ) {
25 (self.fp.get_device_image_memory_requirements_khr)(self.handle, memory_requirements, out)
26 }
27
28 #[inline]
30 pub unsafe fn get_device_image_sparse_memory_requirements_len(
31 &self,
32 memory_requirements: &vk::DeviceImageMemoryRequirementsKHR<'_>,
33 ) -> usize {
34 let mut count = mem::MaybeUninit::uninit();
35 (self.fp.get_device_image_sparse_memory_requirements_khr)(
36 self.handle,
37 memory_requirements,
38 count.as_mut_ptr(),
39 ptr::null_mut(),
40 );
41 count.assume_init() as usize
42 }
43
44 #[inline]
49 pub unsafe fn get_device_image_sparse_memory_requirements(
50 &self,
51 memory_requirements: &vk::DeviceImageMemoryRequirementsKHR<'_>,
52 out: &mut [vk::SparseImageMemoryRequirements2<'_>],
53 ) {
54 let mut count = out.len() as u32;
55 (self.fp.get_device_image_sparse_memory_requirements_khr)(
56 self.handle,
57 memory_requirements,
58 &mut count,
59 out.as_mut_ptr(),
60 );
61 assert_eq!(count as usize, out.len());
62 }
63}