Skip to content
  • Daniel van Vugt's avatar
    clutter/stage-cogl: Reschedule update on present · 4faeb127
    Daniel van Vugt authored and Marco Trevisan's avatar Marco Trevisan committed
    If an update (new frame) had been scheduled already before
    `_clutter_stage_cogl_presented` was called then that means it was
    scheduled for the wrong time. Because the `last_presentation_time` has
    changed since then. And using an `update_time` based on an outdated
    presentation time results in scheduling frames too early, filling the
    buffer queue (triple buffering or worse) and high visual latency.
    
    So if we do receive a presentation event when an update is already
    scheduled, remember to reschedule the update based on the newer
    `last_presentation_time`. This way we avoid overfilling the buffer queue
    and limit ourselves to double buffering for less visible lag.
    
    Closes: GNOME/mutter#334
    
    Prerequisite: GNOME/mutter!520
    
    GNOME/mutter!281
    4faeb127