Struct OffscreenRenderTiming
pub struct OffscreenRenderTiming {Show 47 fields
pub vello_submit_us: u128,
pub copy_submit_us: u128,
pub settle_wait_us: u128,
pub full_attempts: u32,
pub damage_setup_us: u128,
pub damage_target_creations: u32,
pub sparse_submissions: u32,
pub sparse_coarse_active_bins_submissions: u32,
pub sparse_coarse_adaptive_submissions: u32,
pub sparse_coarse_adaptive_dense_submissions: u32,
pub sparse_coarse_native_bins: u64,
pub sparse_coarse_selected_native_bins: u64,
pub sparse_path_tile_bounds_submissions: u32,
pub sparse_path_tile_bounds_tiles: u64,
pub sparse_coarse_opaque_prune_submissions: u32,
pub sparse_solid_fuse_submissions: u32,
pub sparse_segment_row_mask_submissions: u32,
pub canonical_segment_order_sparse_selected_attempts: u32,
pub canonical_segment_order_full_selected_attempts: u32,
pub area_ppt8_sparse_selected_attempts: u32,
pub area_ppt8_full_selected_attempts: u32,
pub clip_single_group_sparse_selected_attempts: u32,
pub clip_single_group_full_selected_attempts: u32,
pub sparse_fine_quad_skip_submissions: u32,
pub sparse_fine_quad_total_quads: u64,
pub sparse_fine_quad_active_quads: u64,
pub sparse_fine_quad_skipped_quads: u64,
pub sparse_fine_tiles: u64,
pub sparse_written_pixels: u64,
pub coarse_prefix_pixels: u64,
pub gpu_timestamp_span_ns: u128,
pub gpu_timestamp_pass_ns: u128,
pub gpu_timestamp_last_pass_ns: u128,
pub gpu_timestamp_other_pass_ns: u128,
pub gpu_timestamp_pass_count: u32,
pub gpu_timestamp_expected_submissions: u32,
pub gpu_timestamp_sampled_submissions: u32,
pub gpu_timestamp_missing_submissions: u32,
pub gpu_dispatch_timestamp_expected_submissions: u32,
pub gpu_dispatch_timestamp_sampled_submissions: u32,
pub gpu_dispatch_timestamp_missing_submissions: u32,
pub gpu_dispatch_timestamp_stale_submissions: u32,
pub gpu_dispatch_timestamp_present_stages: u32,
pub gpu_dispatch_timestamp_stage_duration_ns: [u128; 32],
pub gpu_dispatch_timestamp_stage_dispatch_count: [u32; 32],
pub gpu_dispatch_timestamp_unknown_duration_ns: u128,
pub gpu_dispatch_timestamp_unknown_dispatch_count: u32,
}Expand description
Host-side phases of one completed offscreen render, populated only by
OffscreenRenderer::render_damage_regions_gpu_wait_profiled.
vello_submit_us includes scene resolution, uploads, and Vello’s shared
queue submission, excluding separately measured copy encoding.
copy_submit_us covers only dirty-copy command encoding in Vello’s
post-render callback. settle_wait_us is the blocking GPU-complete wait
while collecting Vello’s bump counters.
Fields§
§vello_submit_us: u128§copy_submit_us: u128§settle_wait_us: u128§full_attempts: u32§damage_setup_us: u128§damage_target_creations: u32§sparse_submissions: u32§sparse_coarse_active_bins_submissions: u32Sparse submissions that actually selected the opt-in native active-bin coarse shader. Capability alone is not counted because oversized selectors fall back to legacy coarse.
sparse_coarse_adaptive_submissions: u32Sparse submissions made while Vello’s opt-in adaptive coarse policy was active.
sparse_coarse_adaptive_dense_submissions: u32Adaptive sparse submissions which deliberately retained dense coarse work.
sparse_coarse_native_bins: u64Sum of representable native coarse bins across adaptive sparse submissions.
sparse_coarse_selected_native_bins: u64Sum of selected native coarse bins across adaptive sparse submissions.
sparse_path_tile_bounds_submissions: u32Sparse submissions where Vello actually applied path-level native tile bounds.
sparse_path_tile_bounds_tiles: u64Sum of native bounding-box tile areas from actually bounded sparse submissions. This is diagnostic coverage accounting, not an allocation or memory-saving metric.
sparse_coarse_opaque_prune_submissions: u32Sparse submissions where the coarse opaque-prune shader was actually selected. This does not claim a number of tiles or commands pruned, or any resource savings.
sparse_solid_fuse_submissions: u32Sparse submissions where the solid-fuse producer/consumer shader path was selected. This does not claim command fusion counts or any resource savings.
sparse_segment_row_mask_submissions: u32Sparse submissions where the segment-row-mask shader path was actually selected. This does not claim a number of rows skipped or any resource savings.
canonical_segment_order_sparse_selected_attempts: u32Sparse submissions where canonical segment ordering was actually recorded. This is route-attempt telemetry, not a completion or speed claim.
canonical_segment_order_full_selected_attempts: u32Full submissions where canonical segment ordering was actually recorded. This is route-attempt telemetry, not a completion or speed claim.
area_ppt8_sparse_selected_attempts: u32Sparse submissions where the Area PPT8 shader was actually selected. This is route-attempt telemetry, not a completion or speed claim.
area_ppt8_full_selected_attempts: u32Full submissions where the Area PPT8 shader was actually selected. This is route-attempt telemetry, not a completion or speed claim.
clip_single_group_sparse_selected_attempts: u32Sparse submissions where the single-workgroup clip leaf shader was selected. This is route-attempt telemetry, not a completion or speed claim.
clip_single_group_full_selected_attempts: u32Full submissions where the single-workgroup clip leaf shader was selected. This is route-attempt telemetry, not a completion or speed claim.
sparse_fine_quad_skip_submissions: u32Sparse submissions where the Area fine shader actually skipped zero-mask quad invocations.
sparse_fine_quad_total_quads: u64Total fine invocation groups considered by the applied quad-skip path.
sparse_fine_quad_active_quads: u64Non-zero-mask fine invocation groups evaluated by the applied quad-skip path.
sparse_fine_quad_skipped_quads: u64Zero-mask fine invocation groups skipped by the applied quad-skip path.
sparse_fine_tiles: u64§sparse_written_pixels: u64§coarse_prefix_pixels: u64§gpu_timestamp_span_ns: u128Rounded GPU timestamp span across verified submissions.
gpu_timestamp_pass_ns: u128Rounded sum of individual GPU pass durations across verified submissions.
gpu_timestamp_last_pass_ns: u128Rounded duration of the final recorded compute pass in verified submissions.
gpu_timestamp_other_pass_ns: u128Rounded duration of all earlier recorded compute passes in verified submissions.
gpu_timestamp_pass_count: u32§gpu_timestamp_expected_submissions: u32§gpu_timestamp_sampled_submissions: u32§gpu_timestamp_missing_submissions: u32Submissions for which timestamp data was disabled, unavailable, stale, or failed.
gpu_dispatch_timestamp_expected_submissions: u32Matched submissions expected to have an opt-in per-dispatch sample.
gpu_dispatch_timestamp_sampled_submissions: u32§gpu_dispatch_timestamp_missing_submissions: u32Missing dispatch samples are not treated as zero GPU time.
gpu_dispatch_timestamp_stale_submissions: u32A completed sample belonging to an older submission was discarded.
gpu_dispatch_timestamp_present_stages: u32Bit stage_id - 1 is set when that stable stage was present.
gpu_dispatch_timestamp_stage_duration_ns: [u128; 32]§gpu_dispatch_timestamp_stage_dispatch_count: [u32; 32]§gpu_dispatch_timestamp_unknown_duration_ns: u128§gpu_dispatch_timestamp_unknown_dispatch_count: u32Trait Implementations§
§impl Clone for OffscreenRenderTiming
impl Clone for OffscreenRenderTiming
§fn clone(&self) -> OffscreenRenderTiming
fn clone(&self) -> OffscreenRenderTiming
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for OffscreenRenderTiming
impl Debug for OffscreenRenderTiming
§impl Default for OffscreenRenderTiming
impl Default for OffscreenRenderTiming
§fn default() -> OffscreenRenderTiming
fn default() -> OffscreenRenderTiming
§impl PartialEq for OffscreenRenderTiming
impl PartialEq for OffscreenRenderTiming
§fn eq(&self, other: &OffscreenRenderTiming) -> bool
fn eq(&self, other: &OffscreenRenderTiming) -> bool
self and other values to be equal, and is used by ==.impl Copy for OffscreenRenderTiming
impl Eq for OffscreenRenderTiming
impl StructuralPartialEq for OffscreenRenderTiming
Auto Trait Implementations§
impl Freeze for OffscreenRenderTiming
impl RefUnwindSafe for OffscreenRenderTiming
impl Send for OffscreenRenderTiming
impl Sync for OffscreenRenderTiming
impl Unpin for OffscreenRenderTiming
impl UnsafeUnpin for OffscreenRenderTiming
impl UnwindSafe for OffscreenRenderTiming
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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