pub struct SurfaceStats {
pub free: usize,
pub writing: usize,
pub published: usize,
pub presents: u64,
pub would_block: u64,
pub waiting: usize,
pub composited: u64,
pub unshown: u64,
pub composite_latency_ms: f32,
}Expand description
Counters for diagnostics and pressure tests.
Fields§
§free: usizeSlots available to acquire.
writing: usizeSlots acquired and not yet presented or dropped.
published: usizeSlots presented and still referenced (latest frame, retained scenes or in-flight composition).
presents: u64Total successful presents.
would_block: u64Total acquire calls that returned WouldBlock.
waiting: usizePresented frames not shown yet because their sync point has not been
observed reached (see EngineSurface::present).
composited: u64Presented frames the compositor has composited at least once.
unshown: u64Presented frames dropped without ever being composited: the engine produced them faster than the compositor showed them.
composite_latency_ms: f32Delay from present to the first composition of the latest
composited frame. Rising values mean the compositor is falling
behind (for example, the GPU is saturated); engines can throttle.
Trait Implementations§
Source§impl Clone for SurfaceStats
impl Clone for SurfaceStats
impl Copy for SurfaceStats
Source§impl Debug for SurfaceStats
impl Debug for SurfaceStats
Source§impl Default for SurfaceStats
impl Default for SurfaceStats
Source§impl PartialEq for SurfaceStats
impl PartialEq for SurfaceStats
impl StructuralPartialEq for SurfaceStats
Auto Trait Implementations§
impl Forget for SurfaceStats
impl Freeze for SurfaceStats
impl Move for SurfaceStats
impl RefUnwindSafe for SurfaceStats
impl Send for SurfaceStats
impl Sync for SurfaceStats
impl Unpin for SurfaceStats
impl UnsafeUnpin for SurfaceStats
impl UnwindSafe for SurfaceStats
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,
impl<T> ErasedDestructor for Twhere
T: 'static,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().