Skip to content

backend/wayland: allow superseding a previous commit

Simon Ser requested to merge emersion/wlroots:wl-modeset into master

During a modeset, the core wlr_output logic will allocate a buffer with a new size and commit it. However if we still have a frame callback pending we'd refuse to perform the commit. This is inconsistent with the DRM backend, which performs a blocking modeset.

This is visible when resizing the Wayland toplevel. The logs are filled with "Skipping buffer swap", and the wlr_damage_ring's bounds are not properly updated.

Fix this by destroying the pending frame wl_callback.

Merge request reports