pub struct FrameTiming {
pub gpu_ns: u64,
pub gpu_timing_resolved: bool,
pub cpu_ns: u64,
pub frame_ns: u64,
pub residency: ResidencyMetrics,
}Expand description
One measured frame. GPU time covers the complete scheduled render graph; CPU time covers scene synchronization, graph recording, and submission.
Fields§
§gpu_ns: u64Device execution time in nanoseconds.
gpu_timing_resolved: boolWhether the timestamp query readback resolved this duration.
A zero duration is evidence only when this is true. Backends may
expose timestamp queries while returning an unresolved zero sentinel.
cpu_ns: u64Host frame-construction time in nanoseconds.
frame_ns: u64End-to-end blocking profile duration, including device completion and timestamp readback. This is the conservative frame-budget metric when an adapter reports unusable timestamp values.
residency: ResidencyMetricsReal residency, upload, command and backpressure counters at completion.
Implementations§
Source§impl FrameTiming
impl FrameTiming
Sourcepub fn residency_counters(self) -> ResidencyCounters
pub fn residency_counters(self) -> ResidencyCounters
Flat cumulative residency counters at measurement completion.
Trait Implementations§
Source§impl Clone for FrameTiming
impl Clone for FrameTiming
impl Copy for FrameTiming
Source§impl Debug for FrameTiming
impl Debug for FrameTiming
impl Eq for FrameTiming
Source§impl PartialEq for FrameTiming
impl PartialEq for FrameTiming
impl StructuralPartialEq for FrameTiming
Auto Trait Implementations§
impl Freeze for FrameTiming
impl RefUnwindSafe for FrameTiming
impl Send for FrameTiming
impl Sync for FrameTiming
impl Unpin for FrameTiming
impl UnsafeUnpin for FrameTiming
impl UnwindSafe for FrameTiming
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
Mutably borrows from an owned value. Read more
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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