From 735dbde48294f9d0a8c3d791c44df14da9b91fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Fri, 17 Sep 2021 11:55:52 +0200 Subject: [PATCH] xwayland/present: Move xwl_present_reset_timer call out of xwl_present_flip xwl_present_reset_timer checks if the pending flip is synchronous, so we need to call it after adding the pending flip to the flip queue. Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1219 Fixes: b2a06e0700fa "xwayland/present: Drop sync_flip member of struct xwl_present_window" Tested-by: Olivier Fourdan Acked-by: Olivier Fourdan --- hw/xwayland/xwayland-present.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/xwayland/xwayland-present.c b/hw/xwayland/xwayland-present.c index c9cf8c2f5..69c02dce4 100644 --- a/hw/xwayland/xwayland-present.c +++ b/hw/xwayland/xwayland-present.c @@ -689,9 +689,6 @@ xwl_present_flip(WindowPtr present_window, &xwl_window->frame_callback_list); } - /* Realign timer */ - xwl_present_reset_timer(xwl_present_window); - xwl_surface_damage(xwl_window->xwl_screen, xwl_window->surface, damage_box->x1 - present_window->drawable.x, damage_box->y1 - present_window->drawable.y, @@ -784,6 +781,10 @@ xwl_present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) /* Put pending flip at the flip queue head */ xorg_list_add(&vblank->event_queue, &xwl_present_window->flip_queue); + + /* Realign timer */ + xwl_present_reset_timer(xwl_present_window); + return; }