pub struct RenderStats {
pub draw_calls: u32,
pub objects: u32,
pub skinned_visible: u32,
pub skinned_pool_free: u32,
pub gpu_frame_us: u32,
pub vram_bytes: u64,
pub transient_pool_bytes: u64,
pub pass_times_us: [PassTiming; 32],
pub auto_exposure_ev: Option<f32>,
pub max_edr: Option<f32>,
}Expand description
Per-frame render-backend statistics.
Fields§
§draw_calls: u32CPU-issued geometry draw calls this frame: the shadow, main, and
composite + text passes. The optional screen-space-effect passes (SSR,
SSAO, TAA, bloom) issue a fixed handful of fullscreen draws and are not
counted here – gpu_frame_us still covers their GPU time.
objects: u32Renderable objects in the scene this frame: static draw objects, every instanced-cluster instance, and skinned meshes.
skinned_visible: u32Visible skinned objects this frame: the authored skinned meshes plus any
live runtime-spawned instances, excluding the hidden pre-reserved
instance-pool slots. Unlike objects (which counts the whole pre-reserved
pool and so stays flat across skinned spawn/despawn), this tracks the live
count, so a spawn bumps it and a despawn drops it.
skinned_pool_free: u32Free slots remaining in the pre-reserved skinned instance pool across all templates. Drains by one when a skinned instance spawns and refills when one despawns, so a probe can watch the free-list recycle directly.
gpu_frame_us: u32GPU execution time of the most recently completed frame, in microseconds. Reported one or more frames late: the GPU timestamps are only known once that frame’s command buffer completion handler fires.
vram_bytes: u64Bytes of GPU memory currently allocated by the render device. On unified-memory hardware (Apple Silicon) this is the device’s share of system memory rather than dedicated VRAM.
transient_pool_bytes: u64Bytes the render graph’s transient pool holds: the aliased footprint of
the slots backing the graph-owned transients. Part of vram_bytes, which
is a device-wide total; carried separately so the shared memory ledger can
attribute it rather than leaving it in the unaccounted remainder.
pass_times_us: [PassTiming; 32]Per-pass GPU microseconds for the most recently completed frame.
Filled by the active backend only when its GPU supports timestamp
sampling; otherwise every slot stays at the default
("", 0). Slot order is backend-defined and stable for the process
lifetime.
auto_exposure_ev: Option<f32>Current adapted exposure value (EV) from the auto-exposure EMA.
None when the world did not opt in to auto-exposure (or the active
backend has not yet wired the readout). The StatHud overlay reads
this to render the on-screen EV chip; downstream consumers can map
it to an exposure multiplier via 2^ev.
max_edr: Option<f32>Active display’s reported maximum extended-range colour-component
multiplier when the renderer is on the HDR path. Some(2.0) on a
typical HDR400 panel, Some(8.0+) on HDR1000-class panels; None
on SDR (because the world disabled HDR, the platform fell back, or
the active backend has not wired the readout). The StatHud overlay
reads this to render the on-screen EDR chip; the value is also
the linear scaling factor between SDR reference white and the
panel’s peak brightness, so a colour-grading consumer can interpret
it directly.
Trait Implementations§
Source§impl Clone for RenderStats
impl Clone for RenderStats
Source§fn clone(&self) -> RenderStats
fn clone(&self) -> RenderStats
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more