Skip to main content

jay_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::RawPtr;
4use crate::prelude::*;
5use crate::vk;
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        unsafe {
16            (self.fp.set_latency_sleep_mode_nv)(
17                self.handle,
18                swapchain,
19                sleep_mode_info.as_raw_ptr(),
20            )
21            .result()
22        }
23    }
24
25    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkLatencySleepNV.html>
26    #[inline]
27    pub unsafe fn latency_sleep(
28        &self,
29        swapchain: vk::SwapchainKHR,
30        sleep_info: &vk::LatencySleepInfoNV<'_>,
31    ) -> VkResult<()> {
32        unsafe { (self.fp.latency_sleep_nv)(self.handle, swapchain, sleep_info).result() }
33    }
34
35    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkSetLatencyMarkerNV.html>
36    #[inline]
37    pub unsafe fn set_latency_marker(
38        &self,
39        swapchain: vk::SwapchainKHR,
40        latency_marker_info: &vk::SetLatencyMarkerInfoNV<'_>,
41    ) {
42        unsafe { (self.fp.set_latency_marker_nv)(self.handle, swapchain, latency_marker_info) }
43    }
44
45    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetLatencyTimingsNV.html>
46    #[inline]
47    pub unsafe fn get_latency_timings(
48        &self,
49        swapchain: vk::SwapchainKHR,
50        latency_marker_info: &mut vk::GetLatencyMarkerInfoNV<'_>,
51    ) {
52        unsafe { (self.fp.get_latency_timings_nv)(self.handle, swapchain, latency_marker_info) }
53    }
54
55    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkQueueNotifyOutOfBandNV.html>
56    #[inline]
57    pub unsafe fn queue_notify_out_of_band(
58        &self,
59        queue: vk::Queue,
60        queue_type_info: &vk::OutOfBandQueueTypeInfoNV<'_>,
61    ) {
62        unsafe { (self.fp.queue_notify_out_of_band_nv)(queue, queue_type_info) }
63    }
64}