pub struct CopyPool {Show 14 fields
pool: Retained<ProtocolObject<dyn MTLBuffer>>,
_set: Retained<ProtocolObject<dyn MTLResidencySet>>,
base: usize,
gpu_base: u64,
stride: usize,
slot_stride: usize,
slot_rec: Vec<u32>,
slot_used: Vec<u64>,
rec_slot: Vec<u32>,
slot_kind: Vec<u8>,
low_file: Option<File>,
low_stride: usize,
default_kind: u8,
pub budget: usize,
}Fields§
§pool: Retained<ProtocolObject<dyn MTLBuffer>>§_set: Retained<ProtocolObject<dyn MTLResidencySet>>This set keeps the pool resident for the queue. The GPU reaches it through addresses rather than a binding.
base: usize§gpu_base: u64§stride: usize§slot_stride: usizeBytes per slot (the low-bit stride when every record is low-bit).
slot_rec: Vec<u32>Record id held by each slot (u32::MAX = empty).
slot_used: Vec<u64>Step number of each slot’s last use (eviction guard and LRU key).
rec_slot: Vec<u32>Slot of each record id (u32::MAX = not resident).
slot_kind: Vec<u8>Store held by each slot: 0 = 4-bit record, 1 = 3-bit, 2 = 2-bit
(one low-bit store is attached at a time; low_file/low_stride).
low_file: Option<File>§low_stride: usize§default_kind: u8Kind a freshly taken slot gets (0 unless every record is low-bit).
budget: usizeImplementations§
Auto Trait Implementations§
impl !RefUnwindSafe for CopyPool
impl !Send for CopyPool
impl !Sync for CopyPool
impl !UnwindSafe for CopyPool
impl Freeze for CopyPool
impl Unpin for CopyPool
impl UnsafeUnpin for CopyPool
Blanket Implementations§
impl<T> AutoreleaseSafe for Twhere
T: ?Sized,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more