wgpu_core/command/
encoder_command.rs

1use 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}