Enum wgpu_core::command::CommandEncoderStatus

source ·
pub(crate) enum CommandEncoderStatus {
    Recording(CommandBufferMutable),
    Locked(CommandBufferMutable),
    Finished(CommandBufferMutable),
    Error,
}
Expand description

The current state of a CommandBuffer.

Variants§

§

Recording(CommandBufferMutable)

Ready to record commands. An encoder’s initial state.

Command building methods like command_encoder_clear_buffer and compute_pass_end require the encoder to be in this state.

This corresponds to WebGPU’s “open” state. See https://www.w3.org/TR/webgpu/#encoder-state-open

§

Locked(CommandBufferMutable)

Locked by a render or compute pass.

This state is entered when a render/compute pass is created, and exited when the pass is ended.

As long as the command encoder is locked, any command building operation on it will fail and put the encoder into the Self::Error state. See https://www.w3.org/TR/webgpu/#encoder-state-locked

§

Finished(CommandBufferMutable)

Command recording is complete, and the buffer is ready for submission.

Global::command_encoder_finish transitions a CommandBuffer from the Recording state into this state.

Global::queue_submit drops command buffers unless they are in this state.

§

Error

An error occurred while recording a compute or render pass.

When a CommandEncoder is left in this state, we have also returned an error result from the function that encountered the problem. Future attempts to use the encoder (for example, calls to Self::record) will also return errors.

Implementations§

source§

impl CommandEncoderStatus

source

pub(crate) fn record( &mut self, ) -> Result<RecordingGuard<'_>, CommandEncoderError>

Checks that the encoder is in the Self::Recording state.

source

fn lock_encoder(&mut self) -> Result<(), CommandEncoderError>

Locks the encoder by putting it in the Self::Locked state.

Call Self::unlock_encoder to put the CommandBuffer back into the Self::Recording state.

source

fn unlock_encoder(&mut self) -> Result<RecordingGuard<'_>, CommandEncoderError>

Unlocks the CommandBuffer and puts it back into the Self::Recording state.

This function is the unlocking counterpart to Self::lock_encoder.

It is only valid to call this function if the encoder is in the Self::Locked state.

source

fn finish(&mut self, device: &Device) -> Result<(), CommandEncoderError>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,