pub struct StagingBuffer<A>
where A: HalApi,
{ /* private fields */ }
Expand description

A temporary buffer, consumed by the command that uses it.

A StagingBuffer is designed for one-shot uploads of data to the GPU. It is always created mapped, and the command that uses it destroys the buffer when it is done.

StagingBuffers can be created with queue_create_staging_buffer and used with queue_write_staging_buffer. They are also used internally by operations like queue_write_texture that need to upload data to the GPU, but that don’t belong to any particular wgpu command buffer.

Used StagingBuffers are accumulated in Device::pending_writes, to be freed once their associated operation’s queue submission has finished execution.

Trait Implementations§

source§

impl<A> Debug for StagingBuffer<A>
where A: Debug + HalApi, <A as Api>::Buffer: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<A> Drop for StagingBuffer<A>
where A: HalApi,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<A> Resource<Id<StagingBuffer<Api>>> for StagingBuffer<A>
where A: HalApi,

source§

const TYPE: &'static str = "StagingBuffer"

source§

fn as_info(&self) -> &ResourceInfo<Id<StagingBuffer<Api>>>

source§

fn as_info_mut(&mut self) -> &mut ResourceInfo<Id<StagingBuffer<Api>>>

source§

fn label(&self) -> String

source§

fn ref_count(self: &Arc<Self>) -> usize

source§

fn is_unique(self: &Arc<Self>) -> bool

source§

fn is_equal(&self, other: &Self) -> bool

Auto Trait Implementations§

§

impl<A> !RefUnwindSafe for StagingBuffer<A>

§

impl<A> Send for StagingBuffer<A>

§

impl<A> Sync for StagingBuffer<A>

§

impl<A> Unpin for StagingBuffer<A>
where <A as Api>::Buffer: Unpin,

§

impl<A> !UnwindSafe for StagingBuffer<A>

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>,

§

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>,

§

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,