ash/extensions/khr/
synchronization2.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_synchronization2.html>
2
3use crate::prelude::*;
4use crate::vk;
5
6impl crate::khr::synchronization2::Device {
7    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPipelineBarrier2KHR.html>
8    #[inline]
9    pub unsafe fn cmd_pipeline_barrier2(
10        &self,
11        command_buffer: vk::CommandBuffer,
12        dependency_info: &vk::DependencyInfoKHR<'_>,
13    ) {
14        (self.fp.cmd_pipeline_barrier2_khr)(command_buffer, dependency_info)
15    }
16
17    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdResetEvent2KHR.html>
18    #[inline]
19    pub unsafe fn cmd_reset_event2(
20        &self,
21        command_buffer: vk::CommandBuffer,
22        event: vk::Event,
23        stage_mask: vk::PipelineStageFlags2KHR,
24    ) {
25        (self.fp.cmd_reset_event2_khr)(command_buffer, event, stage_mask)
26    }
27
28    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetEvent2KHR.html>
29    #[inline]
30    pub unsafe fn cmd_set_event2(
31        &self,
32        command_buffer: vk::CommandBuffer,
33        event: vk::Event,
34        dependency_info: &vk::DependencyInfoKHR<'_>,
35    ) {
36        (self.fp.cmd_set_event2_khr)(command_buffer, event, dependency_info)
37    }
38
39    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdWaitEvents2KHR.html>
40    #[inline]
41    pub unsafe fn cmd_wait_events2(
42        &self,
43        command_buffer: vk::CommandBuffer,
44        events: &[vk::Event],
45        dependency_infos: &[vk::DependencyInfoKHR<'_>],
46    ) {
47        assert_eq!(events.len(), dependency_infos.len());
48        (self.fp.cmd_wait_events2_khr)(
49            command_buffer,
50            events.len() as u32,
51            events.as_ptr(),
52            dependency_infos.as_ptr(),
53        )
54    }
55
56    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdWriteTimestamp2KHR.html>
57    #[inline]
58    pub unsafe fn cmd_write_timestamp2(
59        &self,
60        command_buffer: vk::CommandBuffer,
61        stage: vk::PipelineStageFlags2KHR,
62        query_pool: vk::QueryPool,
63        query: u32,
64    ) {
65        (self.fp.cmd_write_timestamp2_khr)(command_buffer, stage, query_pool, query)
66    }
67
68    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkQueueSubmit2KHR.html>
69    #[inline]
70    pub unsafe fn queue_submit2(
71        &self,
72        queue: vk::Queue,
73        submits: &[vk::SubmitInfo2KHR<'_>],
74        fence: vk::Fence,
75    ) -> VkResult<()> {
76        (self.fp.queue_submit2_khr)(queue, submits.len() as u32, submits.as_ptr(), fence).result()
77    }
78}