pub struct ConvertStats {
pub src_imports: u64,
pub src_pbo_uploads: u64,
pub src_uploads: u64,
pub zero_copy_declines: u64,
}Expand description
Per-processor zero-copy telemetry: how convert sources reached the GPU and how often a zero-copy opportunity was declined into a copy path.
This is deliberately SEPARATE from GlCacheStats: that struct is the
steady-state import-cache equality gate (tests assert exact equality on
it), while these counters change on every convert. src_uploads staying
at 0 across a Dma-source workload is the “no silent zero-copy drop”
assertion callers (and the on-device validation harness) can make —
EGLImage miss counts alone are blind to uploads.
Fields§
§src_imports: u64Sources fed zero-copy: the tensor’s Dma buffer became the sampled texture’s storage (EGLImage attach / IOSurface pbuffer bind).
src_pbo_uploads: u64Sources fed from a PBO (GL-internal copy, no CPU visit).
src_uploads: u64Sources fed by CPU map + TexImage upload — the copy path.
zero_copy_declines: u64Times a zero-copy source feed was attempted and DECLINED into a copy path (import/attach failure). A nonzero value with Dma sources means the platform/driver refused the fast path.
Trait Implementations§
Source§impl Clone for ConvertStats
impl Clone for ConvertStats
Source§fn clone(&self) -> ConvertStats
fn clone(&self) -> ConvertStats
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ConvertStats
Source§impl Debug for ConvertStats
impl Debug for ConvertStats
Source§impl Default for ConvertStats
impl Default for ConvertStats
Source§fn default() -> ConvertStats
fn default() -> ConvertStats
impl Eq for ConvertStats
Source§impl PartialEq for ConvertStats
impl PartialEq for ConvertStats
impl StructuralPartialEq for ConvertStats
Auto Trait Implementations§
impl Freeze for ConvertStats
impl RefUnwindSafe for ConvertStats
impl Send for ConvertStats
impl Sync for ConvertStats
impl Unpin for ConvertStats
impl UnsafeUnpin for ConvertStats
impl UnwindSafe for ConvertStats
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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