struct ActiveSubmission<A: Api> {
    index: FenceValue,
    last_resources: NonReferencedResources<A>,
    mapped: Vec<Valid<BufferId>>,
    encoders: Vec<EncoderInFlight<A>>,
    work_done_closures: SmallVec<[SubmittedWorkDoneClosure; 1]>,
}
Expand description

Resources used by a queue submission, and work to be done once it completes.

Fields§

§index: FenceValue

The index of the submission we track.

When Device::fence’s value is greater than or equal to this, our queue submission has completed.

§last_resources: NonReferencedResources<A>

Resources to be freed once this queue submission has completed.

When the device is polled, for completed submissions, triage_submissions merges these into LifetimeTracker::free_resources. From there, LifetimeTracker::cleanup passes them to the hal to be freed.

This includes things like temporary resources and resources that are used by submitted commands but have been dropped by the user (meaning that this submission is their last reference.)

§mapped: Vec<Valid<BufferId>>

Buffers to be mapped once this submission has completed.

§encoders: Vec<EncoderInFlight<A>>§work_done_closures: SmallVec<[SubmittedWorkDoneClosure; 1]>

List of queue “on_submitted_work_done” closures to be called once this submission has completed.

Auto Trait Implementations§

§

impl<A> !RefUnwindSafe for ActiveSubmission<A>

§

impl<A> Send for ActiveSubmission<A>

§

impl<A> !Sync for ActiveSubmission<A>

§

impl<A> Unpin for ActiveSubmission<A>where <A as Api>::BindGroup: Unpin, <A as Api>::BindGroupLayout: Unpin, <A as Api>::Buffer: Unpin, <A as Api>::CommandBuffer: Unpin, <A as Api>::CommandEncoder: Unpin, <A as Api>::ComputePipeline: Unpin, <A as Api>::PipelineLayout: Unpin, <A as Api>::QuerySet: Unpin, <A as Api>::RenderPipeline: Unpin, <A as Api>::Sampler: Unpin, <A as Api>::Texture: Unpin, <A as Api>::TextureView: Unpin,

§

impl<A> !UnwindSafe for ActiveSubmission<A>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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> WasmNotSend for Twhere T: Send,