ash/extensions/ext/
calibrated_timestamps.rs1use crate::prelude::*;
4use crate::vk;
5use alloc::vec::Vec;
6use core::mem;
7
8impl crate::ext::calibrated_timestamps::Device {
9 #[inline]
13 pub unsafe fn get_calibrated_timestamps(
14 &self,
15 info: &[vk::CalibratedTimestampInfoEXT<'_>],
16 ) -> VkResult<(Vec<u64>, u64)> {
17 let mut timestamps = Vec::with_capacity(info.len());
18 let mut max_deviation = mem::MaybeUninit::uninit();
19 let max_deviation = (self.fp.get_calibrated_timestamps_ext)(
20 self.handle,
21 info.len() as u32,
22 info.as_ptr(),
23 timestamps.as_mut_ptr(),
24 max_deviation.as_mut_ptr(),
25 )
26 .assume_init_on_success(max_deviation)?;
27 timestamps.set_len(info.len());
28 Ok((timestamps, max_deviation))
29 }
30}
31
32impl crate::ext::calibrated_timestamps::Instance {
33 #[inline]
35 pub unsafe fn get_physical_device_calibrateable_time_domains(
36 &self,
37 physical_device: vk::PhysicalDevice,
38 ) -> VkResult<Vec<vk::TimeDomainEXT>> {
39 read_into_uninitialized_vector(|count, data| {
40 (self.fp.get_physical_device_calibrateable_time_domains_ext)(
41 physical_device,
42 count,
43 data,
44 )
45 })
46 }
47}