Skip to content

xwayland: Complete "synchronous" Present flips from xwl_present_msc_bump

Completing them from xwl_present_sync_callback had at least two issues:

  • It was before the MSC was incremented in xwl_present_frame_callback, so the MSC value in the completion event could be lower than the target specified by the client. This could cause hangs with the Mesa Vulkan drivers.
  • It allowed clients to run at a frame-rate higher than the Wayland compositor's frame-rate, wasting energy on generating frames which were never displayed. This isn't expected to happen unless the client specified PresentOptionAsync (in which case flips are still completed from xwl_present_sync_callback, allowing higher frame-rates).

Bugzilla: https://bugs.freedesktop.org/106713

Merge request reports