Skip to main content

CommandEncoder

Trait CommandEncoder 

Source
pub trait CommandEncoder<D: Device>: Sized {
    type RenderPass<'e>: RenderPassEncoder<D>
       where Self: 'e;
    type ComputePass<'e>: ComputePassEncoder<D>
       where Self: 'e;

    // Required methods
    fn begin_render_pass<'e>(
        &'e mut self,
        desc: &RenderPassDesc<'_, D>,
    ) -> Self::RenderPass<'e>;
    fn begin_compute_pass<'e>(
        &'e mut self,
        desc: &ComputePassDesc<'_, D>,
    ) -> Self::ComputePass<'e>;
    fn copy_buffer_to_buffer(
        &mut self,
        src: &D::Buffer,
        src_offset: u64,
        dst: &D::Buffer,
        dst_offset: u64,
        size: u64,
    );
    fn copy_texture_to_buffer(
        &mut self,
        src: &D::Texture,
        origin: (u32, u32),
        size: (u32, u32),
        bytes_per_row: u32,
        destination_offset: u64,
        dst: &D::Buffer,
    );
    fn resolve_query_set(
        &mut self,
        queries: &D::QuerySet,
        range: Range<u32>,
        dst: &D::Buffer,
        offset: u64,
    );

    // Provided methods
    fn build_blas(
        &mut self,
        _desc: &BlasBuildDesc<'_, D>,
    ) -> Result<(), GpuError> { ... }
    fn build_tlas(&mut self, _tlas: &D::Tlas) -> Result<(), GpuError> { ... }
}
Expand description

Records passes and copies into one submission.

Required Associated Types§

Source

type RenderPass<'e>: RenderPassEncoder<D> where Self: 'e

The recording handle of an open render pass.

Source

type ComputePass<'e>: ComputePassEncoder<D> where Self: 'e

The recording handle of an open compute pass.

Required Methods§

Source

fn begin_render_pass<'e>( &'e mut self, desc: &RenderPassDesc<'_, D>, ) -> Self::RenderPass<'e>

Begins a render pass over the given attachments.

Source

fn begin_compute_pass<'e>( &'e mut self, desc: &ComputePassDesc<'_, D>, ) -> Self::ComputePass<'e>

Begins a compute pass.

Source

fn copy_buffer_to_buffer( &mut self, src: &D::Buffer, src_offset: u64, dst: &D::Buffer, dst_offset: u64, size: u64, )

GPU-to-GPU buffer copy; how indirect-argument templates reset per-frame counts without a host write.

Source

fn copy_texture_to_buffer( &mut self, src: &D::Texture, origin: (u32, u32), size: (u32, u32), bytes_per_row: u32, destination_offset: u64, dst: &D::Buffer, )

Copies one texture’s contents into a buffer, tightly packed rows. Off the frame path except for picking’s few-texel read.

Source

fn resolve_query_set( &mut self, queries: &D::QuerySet, range: Range<u32>, dst: &D::Buffer, offset: u64, )

Resolves query values into a GPU buffer for later copy/readback.

Provided Methods§

Source

fn build_blas(&mut self, _desc: &BlasBuildDesc<'_, D>) -> Result<(), GpuError>

Records one BLAS build.

§Errors

Returns a capability, validation or backend recording failure.

Source

fn build_tlas(&mut self, _tlas: &D::Tlas) -> Result<(), GpuError>

Records one TLAS build.

§Errors

Returns a capability, validation or backend recording failure.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§