ash/extensions/nv/
device_generated_commands_compute.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_generated_commands_compute.html>
2
3use crate::vk;
4
5impl crate::nv::device_generated_commands_compute::Device {
6    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPipelineIndirectMemoryRequirementsNV.html>
7    #[inline]
8    pub unsafe fn get_pipeline_indirect_memory_requirements(
9        &self,
10        create_info: &vk::ComputePipelineCreateInfo<'_>,
11        memory_requirements: &mut vk::MemoryRequirements2<'_>,
12    ) {
13        (self.fp.get_pipeline_indirect_memory_requirements_nv)(
14            self.handle,
15            create_info,
16            memory_requirements,
17        )
18    }
19
20    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdUpdatePipelineIndirectBufferNV.html>
21    #[inline]
22    pub unsafe fn cmd_update_pipeline_indirect_buffer(
23        &self,
24        command_buffer: vk::CommandBuffer,
25        pipeline_bind_point: vk::PipelineBindPoint,
26        pipeline: vk::Pipeline,
27    ) {
28        (self.fp.cmd_update_pipeline_indirect_buffer_nv)(
29            command_buffer,
30            pipeline_bind_point,
31            pipeline,
32        )
33    }
34
35    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPipelineIndirectDeviceAddressNV.html>
36    #[inline]
37    pub unsafe fn get_pipeline_indirect_device_address(
38        &self,
39        info: &vk::PipelineIndirectDeviceAddressInfoNV<'_>,
40    ) -> vk::DeviceAddress {
41        (self.fp.get_pipeline_indirect_device_address_nv)(self.handle, info)
42    }
43}