Struct wgpu_core::init_tracker::InitTracker

source ·
pub(crate) struct InitTracker<Idx: Ord + Copy + Default> {
    uninitialized_ranges: SmallVec<[Range<Idx>; 1]>,
}
Expand description

Tracks initialization status of a linear range from 0..size

Fields§

§uninitialized_ranges: SmallVec<[Range<Idx>; 1]>

Non-overlapping list of all uninitialized ranges, sorted by range end.

Implementations§

source§

impl InitTracker<BufferAddress>

source

pub(crate) fn check_action( &self, action: &BufferInitTrackerAction, ) -> Option<BufferInitTrackerAction>

Checks if an action has/requires any effect on the initialization status and shrinks its range if possible.

source

pub(crate) fn create_action( &self, buffer: &Arc<Buffer>, query_range: Range<BufferAddress>, kind: MemoryInitKind, ) -> Option<BufferInitTrackerAction>

Creates an action if it would have any effect on the initialization status and shrinks the range if possible.

source§

impl<Idx> InitTracker<Idx>
where Idx: Debug + Ord + Copy + Default,

source

pub(crate) fn new(size: Idx) -> Self

source

pub(crate) fn check(&self, query_range: Range<Idx>) -> Option<Range<Idx>>

Checks for uninitialized ranges within a given query range.

If query_range includes any uninitialized portions of this init tracker’s resource, return the smallest subrange of query_range that covers all uninitialized regions.

The returned range may be larger than necessary, to keep this function O(log n).

source

pub(crate) fn uninitialized( &mut self, drain_range: Range<Idx>, ) -> UninitializedIter<'_, Idx>

source

pub(crate) fn drain( &mut self, drain_range: Range<Idx>, ) -> InitTrackerDrain<'_, Idx>

source§

impl InitTracker<u32>

source

pub(crate) fn discard(&mut self, pos: u32)

Trait Implementations§

source§

impl<Idx: Clone + Ord + Copy + Default> Clone for InitTracker<Idx>

source§

fn clone(&self) -> InitTracker<Idx>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Idx: Debug + Ord + Copy + Default> Debug for InitTracker<Idx>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<Idx> Freeze for InitTracker<Idx>
where Idx: Freeze,

§

impl<Idx> RefUnwindSafe for InitTracker<Idx>
where Idx: RefUnwindSafe,

§

impl<Idx> Send for InitTracker<Idx>
where Idx: Send,

§

impl<Idx> Sync for InitTracker<Idx>
where Idx: Sync,

§

impl<Idx> Unpin for InitTracker<Idx>
where Idx: Unpin,

§

impl<Idx> UnwindSafe for InitTracker<Idx>

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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,