ash/extensions/nv/
mesh_shader.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_mesh_shader.html>
2
3use crate::vk;
4
5impl crate::nv::mesh_shader::Device {
6    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDrawMeshTasksNV.html>
7    #[inline]
8    pub unsafe fn cmd_draw_mesh_tasks(
9        &self,
10        command_buffer: vk::CommandBuffer,
11        task_count: u32,
12        first_task: u32,
13    ) {
14        (self.fp.cmd_draw_mesh_tasks_nv)(command_buffer, task_count, first_task);
15    }
16
17    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDrawMeshTasksIndirectNV.html>
18    #[inline]
19    pub unsafe fn cmd_draw_mesh_tasks_indirect(
20        &self,
21        command_buffer: vk::CommandBuffer,
22        buffer: vk::Buffer,
23        offset: vk::DeviceSize,
24        draw_count: u32,
25        stride: u32,
26    ) {
27        (self.fp.cmd_draw_mesh_tasks_indirect_nv)(
28            command_buffer,
29            buffer,
30            offset,
31            draw_count,
32            stride,
33        );
34    }
35
36    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDrawMeshTasksIndirectCountNV.html>
37    #[inline]
38    pub unsafe fn cmd_draw_mesh_tasks_indirect_count(
39        &self,
40        command_buffer: vk::CommandBuffer,
41        buffer: vk::Buffer,
42        offset: vk::DeviceSize,
43        count_buffer: vk::Buffer,
44        count_buffer_offset: vk::DeviceSize,
45        max_draw_count: u32,
46        stride: u32,
47    ) {
48        (self.fp.cmd_draw_mesh_tasks_indirect_count_nv)(
49            command_buffer,
50            buffer,
51            offset,
52            count_buffer,
53            count_buffer_offset,
54            max_draw_count,
55            stride,
56        );
57    }
58}