mtl_gpu/encoder/mod.rs
1//! Metal command encoders.
2//!
3//! Corresponds to `Metal/MTLCommandEncoder.hpp`, `Metal/MTLBlitCommandEncoder.hpp`,
4//! `Metal/MTLComputeCommandEncoder.hpp`, `Metal/MTLRenderCommandEncoder.hpp`,
5//! `Metal/MTLParallelRenderCommandEncoder.hpp`, and `Metal/MTLResourceStateCommandEncoder.hpp`.
6//!
7//! Command encoders are used to encode GPU commands into command buffers.
8//! Each encoder type corresponds to a specific type of GPU work:
9//! - [`BlitCommandEncoder`] - Data transfer operations
10//! - [`ComputeCommandEncoder`] - Compute shader dispatch
11//! - [`RenderCommandEncoder`] - Graphics rendering
12//! - [`ParallelRenderCommandEncoder`] - Parallel rendering with multiple render encoders
13//! - [`ResourceStateCommandEncoder`] - Sparse texture mapping operations
14
15mod blit_encoder;
16mod compute_encoder;
17mod parallel_render_encoder;
18mod render_encoder;
19mod resource_state_encoder;
20
21pub use blit_encoder::BlitCommandEncoder;
22pub use compute_encoder::ComputeCommandEncoder;
23pub use parallel_render_encoder::ParallelRenderCommandEncoder;
24pub use render_encoder::RenderCommandEncoder;
25pub use resource_state_encoder::{MapIndirectArguments, ResourceStateCommandEncoder};
26
27// Re-export compute types
28pub use compute_encoder::{
29 DispatchThreadgroupsIndirectArguments, DispatchThreadsIndirectArguments,
30 StageInRegionIndirectArguments,
31};