Mutter does not enforce that buffer size is a integer multiple of buffer_scale (retry again)
The Wayland core protocol states:
The new size of the surface is calculated based on the buffer
size transformed by the inverse buffer_transform and the
inverse buffer_scale. This means that at commit time the supplied
buffer size must be an integer multiple of the buffer_scale. If
that's not the case, an invalid_size error is sent.
This was reported initially in #1938 (closed) and fixed with !2188 (merged).
Unfortunately, that introduced a regression with cursors are these may not be divisible by the scale (as discussed in https://gitlab.freedesktop.org/wayland/wayland/-/issues/194) so the change was reverted in !2335 (merged) to fix #2083 (closed).
So mutter
still does not enforce the size requirement and applications may violate that rule without noticing when running on GNOME Shell (e.g. https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733#note_1738935).
This is a request to re-instantiate the buffer size requirement in mutter, excluding the cursors from the rule.
Edited by Olivier Fourdan