libweston: Fix clear timing of output repainted flag
authorTomohito Esaki <etom@igel.co.jp>
Tue, 10 Jul 2018 02:47:15 +0000 (11:47 +0900)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Tue, 10 Jul 2018 12:40:52 +0000 (15:40 +0300)
Since the repaint status of the flushed output may be reset if a output
repaint is failed, it is necessary to clear the repainted flag
immediately after output repaint flush/cancel.

Signed-off-by: Tomohito Esaki <etom@igel.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
libweston/compositor.c

index 516be96..9deb781 100644 (file)
@@ -2450,8 +2450,6 @@ weston_output_maybe_repaint(struct weston_output *output, struct timespec *now,
        int ret = 0;
        int64_t msec_to_repaint;
 
-       output->repainted = false;
-
        /* We're not ready yet; come back to make a decision later. */
        if (output->repaint_status != REPAINT_SCHEDULED)
                return ret;
@@ -2563,6 +2561,9 @@ output_repaint_timer_handler(void *data)
                                                            repaint_data);
        }
 
+       wl_list_for_each(output, &compositor->output_list, link)
+               output->repainted = false;
+
        output_repaint_timer_arm(compositor);
 
        return 0;