Skip to content

Remove assumption about fixed refresh rate in empty frame handling

Dor Askayo requested to merge doraskayo/mutter:improve-empty-frames into main

Context

This MR removes an assumption that the refresh rate is fixed in the current handling of empty frames (Wayland client commits that are sent without a buffer attached) so that this assumption is encapsulated in ClutterFrameClock.

This encapsulation is important for upcoming changes to support empty frame handling with VRR (as part of !1154), which in turn should fix frame pacing in Firefox (Wayland) based on recent tests.

Description

The MR includes one commit (wayland: Remove unnecessary dispatch of frame callback source) that can change behavior in theory, but is not expected affect frame pacing in practice for the fixed refresh rate case (and thus, at all). The rest of the commits should not change the current behavior and either include preparatory work or follow-up cleanups to simplify the code and introduce better encapsulation.

See commit messages for more information.

Testing

I tested these changes thoroughly a few months ago, and the current rebase was tested for sanity in various generic desktop scenarios (including Firefox with https://www.vsynctester.com/). No issues were identified.

If any specific tests are required, please let me know.

CC: @rmader, @daenzer, @jadahl

Edited by Dor Askayo

Merge request reports