[Backport to Xwayland 21.1] xwayland: Always hook up frame_callback_list in xwl_present_queue_vblank
requested to merge ofourdan/xserver:backport-xwayland-21.1-frame_callback_list-fix into xwayland-21.1
Even if there's no pending frame callback yet.
Without this, if there was no pending frame callback yet in xwl_present_queue_vblank, xwl_present_msc_bump would only get called from xwl_present_timer_callback, resulting in the MSC ticking at ~58 Hertz.
Doing this requires some adjustments elsewhere:
- xwl_present_reset_timer needs to check for a pending frame callback as well.
- xwl_window_create_frame_callback needs to call xwl_present_reset_timer for all child windows hooked up to frame_callback_list, to make sure the timer length takes the pending frame callback into account.
- xwl_present_flip needs to hook up the window to frame_callback_list before calling xwl_window_create_frame_callback, for 2. to work.
Closes: #1309 (closed) Fixes: 9b31358c ("xwayland: Use frame callbacks for Present vblank events") Reviewed-by: Olivier Fourdan ofourdan@redhat.com (cherry picked from commit 9e5a3796)