wgpu_core/command/
encoder_command.rs1use core::convert::Infallible;
2
3use alloc::{string::String, vec::Vec};
4
5use crate::id;
6
7#[derive(Clone, Debug)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9pub enum Command {
10 CopyBufferToBuffer {
11 src: id::BufferId,
12 src_offset: wgt::BufferAddress,
13 dst: id::BufferId,
14 dst_offset: wgt::BufferAddress,
15 size: Option<wgt::BufferAddress>,
16 },
17 CopyBufferToTexture {
18 src: wgt::TexelCopyBufferInfo<id::BufferId>,
19 dst: wgt::TexelCopyTextureInfo<id::TextureId>,
20 size: wgt::Extent3d,
21 },
22 CopyTextureToBuffer {
23 src: wgt::TexelCopyTextureInfo<id::TextureId>,
24 dst: wgt::TexelCopyBufferInfo<id::BufferId>,
25 size: wgt::Extent3d,
26 },
27 CopyTextureToTexture {
28 src: wgt::TexelCopyTextureInfo<id::TextureId>,
29 dst: wgt::TexelCopyTextureInfo<id::TextureId>,
30 size: wgt::Extent3d,
31 },
32 ClearBuffer {
33 dst: id::BufferId,
34 offset: wgt::BufferAddress,
35 size: Option<wgt::BufferAddress>,
36 },
37 ClearTexture {
38 dst: id::TextureId,
39 subresource_range: wgt::ImageSubresourceRange,
40 },
41 WriteTimestamp {
42 query_set_id: id::QuerySetId,
43 query_index: u32,
44 },
45 ResolveQuerySet {
46 query_set_id: id::QuerySetId,
47 start_query: u32,
48 query_count: u32,
49 destination: id::BufferId,
50 destination_offset: wgt::BufferAddress,
51 },
52 PushDebugGroup(String),
53 PopDebugGroup,
54 InsertDebugMarker(String),
55 RunComputePass {
56 base: crate::command::BasePass<crate::command::ComputeCommand, Infallible>,
57 timestamp_writes: Option<crate::command::PassTimestampWrites>,
58 },
59 RunRenderPass {
60 base: crate::command::BasePass<crate::command::RenderCommand, Infallible>,
61 target_colors: Vec<Option<crate::command::RenderPassColorAttachment>>,
62 target_depth_stencil: Option<crate::command::RenderPassDepthStencilAttachment>,
63 timestamp_writes: Option<crate::command::PassTimestampWrites>,
64 occlusion_query_set_id: Option<id::QuerySetId>,
65 },
66 BuildAccelerationStructures {
67 blas: Vec<crate::ray_tracing::TraceBlasBuildEntry>,
68 tlas: Vec<crate::ray_tracing::TraceTlasPackage>,
69 },
70}