Skip to main content

SlotRewriteQueue

Struct SlotRewriteQueue 

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

Defers draw-slot rewrites until every in-flight frame has retired.

Implementations§

Source§

impl SlotRewriteQueue

Source

pub fn new(frames_in_flight: usize) -> Self

A queue sized for frames_in_flight in-flight frames.

Source

pub fn queue(&mut self, slot: usize)

Queue pool slot for rewriting in every per-frame copy. Re-queueing a slot mid-propagation restarts its countdown, so every copy ends on the view the caller swapped in last (the rewrite reads the pool at apply time, not at queue time).

Source

pub fn begin_frame(&mut self) -> Vec<usize>

The slots whose descriptor must be rewritten in the frame copy about to record. Call exactly once per frame, after the frame slot’s fence wait. Entries that have now covered every copy are dropped.

Source

pub fn remove(&mut self, slot: usize)

Drop a queued slot: the caller rewrote every copy itself (e.g. a fallback full rewrite under a device drain).

Source

pub fn is_empty(&self) -> bool

Whether nothing is queued.

Trait Implementations§

Source§

impl Debug for SlotRewriteQueue

Source§

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

Formats the value using the given formatter. Read more

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> 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 = !

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.