Skip to content

clutter/stage-view: Defer and accumulate redraw-clip on scanout

When taking the scanout path we still want to clear the redraw-clip from the stage-view in order to ensure we skip frames in handle_frame_clock_frame() if no new redraw-clip was recorded. This was not done previously as the accumulated redraw-clip was needed for the next repaint, likely under the assumption that scheduling a scanout repeatedly would be computationally cost-free. This assumption does not hold in a VRR world.

In order to archive both, an accumulated redraw-clip for the next paint and frame-skipping during scanout, introduce new API to defer and accumulate redraw-clips until the next repaint.

Edited by Robert Mader

Merge request reports