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§
- Bump
Recovery - 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§
- Bump
Step - 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.