@@ -13,6 +13,7 @@ pub type DeviceAddress = u64;
1313/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDrawIndirectCommand.html>
1414#[ repr( C ) ]
1515#[ derive( Copy , Clone , Debug , Default ) ]
16+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
1617pub struct DrawIndirectCommand {
1718 /// vertexCount is the number of vertices to draw.
1819 pub vertex_count : u32 ,
@@ -29,6 +30,7 @@ pub struct DrawIndirectCommand {
2930/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDrawIndexedIndirectCommand.html>
3031#[ repr( C ) ]
3132#[ derive( Copy , Clone , Debug , Default ) ]
33+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
3234pub struct DrawIndexedIndirectCommand {
3335 /// indexCount is the number of vertices to draw.
3436 pub index_count : u32 ,
@@ -47,6 +49,7 @@ pub struct DrawIndexedIndirectCommand {
4749/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDispatchIndirectCommand.html>
4850#[ repr( C ) ]
4951#[ derive( Copy , Clone , Debug , Default ) ]
52+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
5053pub struct DispatchIndirectCommand {
5154 /// x is the number of local workgroups to dispatch in the X dimension.
5255 pub x : u32 ,
@@ -81,6 +84,7 @@ impl From<DispatchIndirectCommand> for UVec3 {
8184/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDrawMeshTasksIndirectCommandEXT.html>
8285#[ repr( C ) ]
8386#[ derive( Copy , Clone , Debug , Default ) ]
87+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
8488pub struct DrawMeshTasksIndirectCommandEXT {
8589 /// groupCountX is the number of local workgroups to dispatch in the X dimension.
8690 pub group_count_x : u32 ,
@@ -115,6 +119,7 @@ impl From<DrawMeshTasksIndirectCommandEXT> for UVec3 {
115119/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTraceRaysIndirectCommandKHR.html>
116120#[ repr( C ) ]
117121#[ derive( Copy , Clone , Debug , Default ) ]
122+ #[ cfg_attr( feature = "bytemuck" , derive( bytemuck:: Zeroable , bytemuck:: Pod ) ) ]
118123pub struct TraceRaysIndirectCommandKHR {
119124 /// width is the width of the ray trace query dimensions.
120125 pub width : u32 ,
@@ -149,7 +154,7 @@ impl From<TraceRaysIndirectCommandKHR> for UVec3 {
149154/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTraceRaysIndirectCommand2KHR.html>
150155#[ repr( C ) ]
151156#[ derive( Copy , Clone , Debug , Default ) ]
152- #[ must_use ]
157+ #[ cfg_attr ( feature = "bytemuck" , derive ( bytemuck :: AnyBitPattern ) ) ]
153158pub struct TraceRaysIndirectCommand2KHR {
154159 /// raygenShaderRecordAddress is a `VkDeviceAddress` of the ray generation shader binding table record used by this command.
155160 pub raygen_shader_record_address : DeviceAddress ,
0 commit comments