pub struct SceneLayerCounts {
pub wanted: u32,
pub used: u32,
pub max_depth: u32,
pub by_site: [u32; 8],
}Expand description
How many layers one painted scene asked for, and what it got.
Clip and opacity layers are the part of scene complexity a renderer pays
most for: each one is a push, a pop and a region the rasteriser has to
composite separately. When render_to_texture inside vello is the largest
item in a frame, this count is the lever on it, because the submit path is
not the cost and the encode is charged elsewhere.
wanted exceeding used is not just a performance note. It means the
scene hit LAYER_LIMIT and clipping was silently skipped, so content that
should have been cut off was drawn in full.
Fields§
§wanted: u32Layers the painter asked to push.
used: u32Layers actually pushed. Lower than wanted only past the limit.
max_depth: u32Deepest nesting reached, which bounds what the rasteriser holds at once.
by_site: [u32; 8]Layers pushed per LayerSite, indexed by LayerSite::ALL.
These count pushes, including the three sites the manager never sees, so
their sum is larger than used rather than a breakdown of it.
Trait Implementations§
Source§impl Clone for SceneLayerCounts
impl Clone for SceneLayerCounts
impl Copy for SceneLayerCounts
Source§impl Debug for SceneLayerCounts
impl Debug for SceneLayerCounts
Source§impl Default for SceneLayerCounts
impl Default for SceneLayerCounts
impl Eq for SceneLayerCounts
Source§impl PartialEq for SceneLayerCounts
impl PartialEq for SceneLayerCounts
impl StructuralPartialEq for SceneLayerCounts
Auto Trait Implementations§
impl Freeze for SceneLayerCounts
impl RefUnwindSafe for SceneLayerCounts
impl Send for SceneLayerCounts
impl Sync for SceneLayerCounts
impl Unpin for SceneLayerCounts
impl UnsafeUnpin for SceneLayerCounts
impl UnwindSafe for SceneLayerCounts
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<T> Brush for 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§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.impl<T> ErasedDestructor for Twhere
T: 'static,
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