ash/extensions/ext/mesh_shader.rs
1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_mesh_shader.html>
2
3use crate::vk;
4
5impl crate::ext::mesh_shader::Device {
6 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDrawMeshTasksEXT.html>
7 #[inline]
8 pub unsafe fn cmd_draw_mesh_tasks(
9 &self,
10 command_buffer: vk::CommandBuffer,
11 group_count_x: u32,
12 group_count_y: u32,
13 group_count_z: u32,
14 ) {
15 (self.fp.cmd_draw_mesh_tasks_ext)(
16 command_buffer,
17 group_count_x,
18 group_count_y,
19 group_count_z,
20 )
21 }
22
23 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDrawMeshTasksIndirectEXT.html>
24 ///
25 /// `buffer` contains `draw_count` [`vk::DrawMeshTasksIndirectCommandEXT`] structures starting at `offset` in bytes, holding the draw parameters.
26 #[inline]
27 pub unsafe fn cmd_draw_mesh_tasks_indirect(
28 &self,
29 command_buffer: vk::CommandBuffer,
30 buffer: vk::Buffer,
31 offset: vk::DeviceSize,
32 draw_count: u32,
33 stride: u32,
34 ) {
35 (self.fp.cmd_draw_mesh_tasks_indirect_ext)(
36 command_buffer,
37 buffer,
38 offset,
39 draw_count,
40 stride,
41 )
42 }
43
44 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDrawMeshTasksIndirectCountEXT.html>
45 ///
46 /// `buffer` contains a maximum of `max_draw_count` [`vk::DrawMeshTasksIndirectCommandEXT`] structures starting at `offset` in bytes, holding the draw parameters.
47 /// `count_buffer` is the buffer containing the draw count, starting at `count_buffer_offset` in bytes.
48 /// The actual number of executed draw calls is the minimum of the count specified in `count_buffer` and `max_draw_count`.
49 #[inline]
50 pub unsafe fn cmd_draw_mesh_tasks_indirect_count(
51 &self,
52 command_buffer: vk::CommandBuffer,
53 buffer: vk::Buffer,
54 offset: vk::DeviceSize,
55 count_buffer: vk::Buffer,
56 count_buffer_offset: vk::DeviceSize,
57 max_draw_count: u32,
58 stride: u32,
59 ) {
60 (self.fp.cmd_draw_mesh_tasks_indirect_count_ext)(
61 command_buffer,
62 buffer,
63 offset,
64 count_buffer,
65 count_buffer_offset,
66 max_draw_count,
67 stride,
68 )
69 }
70}