Skip to main content

Module render_bump_recovery

Module render_bump_recovery 

Expand description

Repaint after a presented frame overflowed Vello’s bump buffers.

An overflowing render drops geometry, and Vello only learns that from a counter readback that completes after the frame was presented. It grows its reservation then, but the dropped pixels stay in the retained target: later frames repaint only their damage, and an idle window has no later frame at all. A host that keeps its target (the native render worker, the browser) therefore polls the counters without waiting for the GPU — after every frame and, while a readback is outstanding, again shortly after — and repaints the whole surface once an overflow has been collected, which is when the grown reservation takes effect.

Structs§

BumpRecovery
One renderer’s overflow recovery: whether a readback is out, and how many repaints in a row an overflow has asked for.
Overflows
The overflows collected from one renderer, for a host whose retained targets it draws (crate::retained_raster::RetainedFrames::note_scratch): each target repaints whole once after its scratch changes.
Scratch
A renderer’s scratch as one moment saw it (Overflows::scratch).

Enums§

BumpStep
What a poll of the counters asks of the host.

Constants§

MAX_REPAINTS
Consecutive overflowing repaints before giving up. Vello may grow more than one stage in turn (each needs its own repaint); a reservation at its ceiling cannot grow and would otherwise repaint forever.
POLL_INTERVAL
How often an otherwise idle host looks at an outstanding readback.