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: b2a06e0700 "xwayland/present: Drop sync_flip member of struct xwl_present_window"
Tested-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
This commit is contained in:
Michel Dänzer 2021-09-17 11:55:52 +02:00 committed by Michel Dänzer
parent db9e9d45e8
commit 735dbde482

View File

@ -689,9 +689,6 @@ xwl_present_flip(WindowPtr present_window,
&xwl_window->frame_callback_list); &xwl_window->frame_callback_list);
} }
/* Realign timer */
xwl_present_reset_timer(xwl_present_window);
xwl_surface_damage(xwl_window->xwl_screen, xwl_window->surface, xwl_surface_damage(xwl_window->xwl_screen, xwl_window->surface,
damage_box->x1 - present_window->drawable.x, damage_box->x1 - present_window->drawable.x,
damage_box->y1 - present_window->drawable.y, 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 */ /* Put pending flip at the flip queue head */
xorg_list_add(&vblank->event_queue, &xwl_present_window->flip_queue); xorg_list_add(&vblank->event_queue, &xwl_present_window->flip_queue);
/* Realign timer */
xwl_present_reset_timer(xwl_present_window);
return; return;
} }