@@ -13,6 +13,7 @@ pub type DeviceAddress = u64;
13
13
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDrawIndirectCommand.html>
14
14
#[ repr( C ) ]
15
15
#[ derive( Copy , Clone , Debug , Default ) ]
16
+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
16
17
pub struct DrawIndirectCommand {
17
18
/// vertexCount is the number of vertices to draw.
18
19
pub vertex_count : u32 ,
@@ -29,6 +30,7 @@ pub struct DrawIndirectCommand {
29
30
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDrawIndexedIndirectCommand.html>
30
31
#[ repr( C ) ]
31
32
#[ derive( Copy , Clone , Debug , Default ) ]
33
+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
32
34
pub struct DrawIndexedIndirectCommand {
33
35
/// indexCount is the number of vertices to draw.
34
36
pub index_count : u32 ,
@@ -47,6 +49,7 @@ pub struct DrawIndexedIndirectCommand {
47
49
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDispatchIndirectCommand.html>
48
50
#[ repr( C ) ]
49
51
#[ derive( Copy , Clone , Debug , Default ) ]
52
+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
50
53
pub struct DispatchIndirectCommand {
51
54
/// x is the number of local workgroups to dispatch in the X dimension.
52
55
pub x : u32 ,
@@ -81,6 +84,7 @@ impl From<DispatchIndirectCommand> for UVec3 {
81
84
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDrawMeshTasksIndirectCommandEXT.html>
82
85
#[ repr( C ) ]
83
86
#[ derive( Copy , Clone , Debug , Default ) ]
87
+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
84
88
pub struct DrawMeshTasksIndirectCommandEXT {
85
89
/// groupCountX is the number of local workgroups to dispatch in the X dimension.
86
90
pub group_count_x : u32 ,
@@ -115,6 +119,7 @@ impl From<DrawMeshTasksIndirectCommandEXT> for UVec3 {
115
119
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTraceRaysIndirectCommandKHR.html>
116
120
#[ repr( C ) ]
117
121
#[ derive( Copy , Clone , Debug , Default ) ]
122
+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
118
123
pub struct TraceRaysIndirectCommandKHR {
119
124
/// width is the width of the ray trace query dimensions.
120
125
pub width : u32 ,
@@ -149,7 +154,7 @@ impl From<TraceRaysIndirectCommandKHR> for UVec3 {
149
154
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTraceRaysIndirectCommand2KHR.html>
150
155
#[ repr( C ) ]
151
156
#[ derive( Copy , Clone , Debug , Default ) ]
152
- #[ must_use ]
157
+ #[ cfg_attr ( feature = "bytemuck" , derive ( bytemuck :: AnyBitPattern ) ) ]
153
158
pub struct TraceRaysIndirectCommand2KHR {
154
159
/// raygenShaderRecordAddress is a `VkDeviceAddress` of the ray generation shader binding table record used by this command.
155
160
pub raygen_shader_record_address : DeviceAddress ,
0 commit comments