#[non_exhaustive]pub struct Diagnostics {
pub test_commits_issued: usize,
pub fb_delta_fast_path: bool,
pub budget_exhausted: bool,
}Expand description
What one allocation pass did.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.test_commits_issued: usizeTEST_ONLY commits issued while probing for a viable assignment.
1 in steady state — warm re-validation of the cached assignment. Higher when the cache misses and the full search has to preseed, greedy, and backtrack. 0 when the FB-only fast path skipped re-validation.
fb_delta_fast_path: boolWhether the cached allocation was reused and the TEST_ONLY skipped
because only content changed on already-placed layers.
Implies test_commits_issued == 0 for the frame. This is the counter
invariant 4 is stated in terms of.
budget_exhausted: boolWhether the per-frame test-commit budget ran out before every layer had been offered a plane.
The budget bounds how many round trips to the kernel one frame may
cost. Spending it is not an error – the layers it could not reach fall
through to composition and still reach the screen – but it is a
capacity limit rather than a hardware one, and the two look identical
in layers_composited. On a device with many planes and a scene of
spatially disjoint layers, each layer forms its own group costing one
test commit, so a 17-layer scene exhausts the default budget of 16 and
composites its last layer with a free, compatible plane sitting unused.
Without this flag that reads as “the hardware ran out of planes”.