Skip to main content

Stream

Struct Stream 

Source
pub struct Stream { /* private fields */ }
Expand description

Stream for asynchronous GPU operations.

Tracks a monotonically increasing “pending operations” counter. Each operation increments the counter when submitted and decrements when complete. On CPU backends the counter is always zero after synchronous execution.

Implementations§

Source§

impl Stream

Source

pub fn new(device: Arc<Device>) -> Result<Self>

Create a new stream associated with device.

Source

pub fn device(&self) -> Arc<Device>

Get the device associated with this stream.

Source

pub fn record_submit(&self)

Record a submitted operation (increment pending counter).

Source

pub fn record_complete(&self)

Record a completed operation (decrement pending counter).

Source

pub fn synchronize(&self) -> Result<()>

Synchronize the stream — block until all pending operations complete.

On CPU backends all operations are already synchronous, so this simply verifies the pending counter is zero.

Source

pub fn is_complete(&self) -> bool

Check if all stream operations are complete.

Source

pub fn pending_ops(&self) -> u64

Get the number of pending operations.

Source

pub fn total_ops(&self) -> u64

Get the total number of operations submitted.

Auto Trait Implementations§

§

impl !Freeze for Stream

§

impl RefUnwindSafe for Stream

§

impl Send for Stream

§

impl Sync for Stream

§

impl Unpin for Stream

§

impl UnwindSafe for Stream

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

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

Source§

impl<T> WasmNotSendSync for T

Source§

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