ash/extensions/khr/
get_memory_requirements2.rs1use crate::vk;
4use core::mem;
5use core::ptr;
6
7impl crate::khr::get_memory_requirements2::Device {
8 #[inline]
10 pub unsafe fn get_buffer_memory_requirements2(
11 &self,
12 info: &vk::BufferMemoryRequirementsInfo2KHR<'_>,
13 memory_requirements: &mut vk::MemoryRequirements2KHR<'_>,
14 ) {
15 (self.fp.get_buffer_memory_requirements2_khr)(self.handle, info, memory_requirements);
16 }
17
18 #[inline]
20 pub unsafe fn get_image_memory_requirements2(
21 &self,
22 info: &vk::ImageMemoryRequirementsInfo2KHR<'_>,
23 memory_requirements: &mut vk::MemoryRequirements2KHR<'_>,
24 ) {
25 (self.fp.get_image_memory_requirements2_khr)(self.handle, info, memory_requirements);
26 }
27
28 #[inline]
30 pub unsafe fn get_image_sparse_memory_requirements2_len(
31 &self,
32 info: &vk::ImageSparseMemoryRequirementsInfo2KHR<'_>,
33 ) -> usize {
34 let mut count = mem::MaybeUninit::uninit();
35 (self.fp.get_image_sparse_memory_requirements2_khr)(
36 self.handle,
37 info,
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_image_sparse_memory_requirements2(
50 &self,
51 info: &vk::ImageSparseMemoryRequirementsInfo2KHR<'_>,
52 out: &mut [vk::SparseImageMemoryRequirements2KHR<'_>],
53 ) {
54 let mut count = out.len() as u32;
55 (self.fp.get_image_sparse_memory_requirements2_khr)(
56 self.handle,
57 info,
58 &mut count,
59 out.as_mut_ptr(),
60 );
61 assert_eq!(count as usize, out.len());
62 }
63}