Mutter Wayland does not send the fractional scale for an xdg_toplevel surface until a buffer is attached and committed
Mutter 44.5
When I create a maximized xdg_toplevel
surface I receive a wl_surface::configure
event with the size, confirming that mutter knows which output it will place the surface on, but I don't receive the corresponding wp_fractional_scale_v1::preferred_scale
which should be already known as well. Instead, mutter waits until a buffer is attached to send such information. This means my client needs first to attach a buffer with the wrong scale before mutter can tell me the correct scale.
This violates the "every frame is perfect" principle, as the first frame is indeed not perfect.
Relevant wayland issue: https://gitlab.freedesktop.org/wayland/wayland/-/issues/133
Relevant protocol change that clarifies this behaviour: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/213