pub struct FrameMetrics {
pub tracked_chunks: usize,
pub upload_in_flight_bytes: u64,
pub pending_frame_submissions: u32,
pub last_submission_id: u64,
pub submission_timestamp_ns: u64,
pub completion_timestamp_ns: Option<u64>,
pub derived_cache_gpu_bytes: u64,
pub derived_cache_peak_gpu_bytes: u64,
pub physical_buffer_bytes: u64,
pub physical_texture_bytes: u64,
pub physical_total_bytes: u64,
pub physical_peak_bytes: u64,
}Expand description
Stable, allocation-free counters captured with a frame report.
Fields§
§tracked_chunks: usizeProvider chunks tracked by the GPU residency layer.
upload_in_flight_bytes: u64Upload bytes still protected by GPU fences.
pending_frame_submissions: u32Presentation submissions not yet reported complete by the GPU.
last_submission_id: u64Monotonic identifier for the most recently submitted frame.
submission_timestamp_ns: u64Submission timestamp in the engine monotonic clock, in nanoseconds:
host time when the frame’s encoder reached the queue. CPU cost of the
frame is separately observable as the duration of the native render
call; this is not device execution time.
completion_timestamp_ns: Option<u64>Host timestamp when the last submission’s fence was observed complete,
in the same monotonic clock. None while the frame is pending, and
None on native backends because the engine only observes the fence on
the browser path; even when set, this is host-observation latency, not
exact device completion or GPU execution time. GPU execution time
requires timestamp queries via the profiling path.
derived_cache_gpu_bytes: u64Retained recomputable device bytes.
derived_cache_peak_gpu_bytes: u64Peak recomputable device bytes since engine construction.
physical_buffer_bytes: u64Live physical GPU buffer bytes owned through the device boundary.
physical_texture_bytes: u64Live physical GPU texture bytes owned through the device boundary.
physical_total_bytes: u64Total live physical GPU bytes owned through the device boundary.
physical_peak_bytes: u64Peak live physical GPU bytes since device construction.
Trait Implementations§
Source§impl Clone for FrameMetrics
impl Clone for FrameMetrics
impl Copy for FrameMetrics
Source§impl Debug for FrameMetrics
impl Debug for FrameMetrics
Source§impl Default for FrameMetrics
impl Default for FrameMetrics
impl Eq for FrameMetrics
Source§impl PartialEq for FrameMetrics
impl PartialEq for FrameMetrics
impl StructuralPartialEq for FrameMetrics
Auto Trait Implementations§
impl Freeze for FrameMetrics
impl RefUnwindSafe for FrameMetrics
impl Send for FrameMetrics
impl Sync for FrameMetrics
impl Unpin for FrameMetrics
impl UnsafeUnpin for FrameMetrics
impl UnwindSafe for FrameMetrics
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
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
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> ⓘ
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