Remove assumption about fixed refresh rate in empty frame handling
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 (merged)), 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.