Skip to content

xwayland: Always hook up frame_callback_list in xwl_present_queue_vblank

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:

  1. xwl_present_reset_timer needs to check for a pending frame callback as well.
  2. 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.
  3. 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)

Edited by Michel Dänzer

Merge request reports