ash/extensions/nv/
low_latency2.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_low_latency2.html>
2
3use crate::prelude::*;
4use crate::vk;
5use crate::RawPtr;
6
7impl crate::nv::low_latency2::Device {
8    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkSetLatencySleepModeNV.html>
9    #[inline]
10    pub unsafe fn set_latency_sleep_mode(
11        &self,
12        swapchain: vk::SwapchainKHR,
13        sleep_mode_info: Option<&vk::LatencySleepModeInfoNV<'_>>,
14    ) -> VkResult<()> {
15        (self.fp.set_latency_sleep_mode_nv)(self.handle, swapchain, sleep_mode_info.as_raw_ptr())
16            .result()
17    }
18
19    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkLatencySleepNV.html>
20    #[inline]
21    pub unsafe fn latency_sleep(
22        &self,
23        swapchain: vk::SwapchainKHR,
24        sleep_info: &vk::LatencySleepInfoNV<'_>,
25    ) -> VkResult<()> {
26        (self.fp.latency_sleep_nv)(self.handle, swapchain, sleep_info).result()
27    }
28
29    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkSetLatencyMarkerNV.html>
30    #[inline]
31    pub unsafe fn set_latency_marker(
32        &self,
33        swapchain: vk::SwapchainKHR,
34        latency_marker_info: &vk::SetLatencyMarkerInfoNV<'_>,
35    ) {
36        (self.fp.set_latency_marker_nv)(self.handle, swapchain, latency_marker_info)
37    }
38
39    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetLatencyTimingsNV.html>
40    #[inline]
41    pub unsafe fn get_latency_timings(
42        &self,
43        swapchain: vk::SwapchainKHR,
44        latency_marker_info: &mut vk::GetLatencyMarkerInfoNV<'_>,
45    ) {
46        (self.fp.get_latency_timings_nv)(self.handle, swapchain, latency_marker_info)
47    }
48
49    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkQueueNotifyOutOfBandNV.html>
50    #[inline]
51    pub unsafe fn queue_notify_out_of_band(
52        &self,
53        queue: vk::Queue,
54        queue_type_info: &vk::OutOfBandQueueTypeInfoNV<'_>,
55    ) {
56        (self.fp.queue_notify_out_of_band_nv)(queue, queue_type_info)
57    }
58}