wlroots/backend
Simon Ser 507d9bc19e Add wlr_output_impl.rollback
Most of the pending output state is not forwarded to the backend prior
to an output commit. For instance, wlr_output_set_mode just stashes the
mode without calling any wlr_output_impl function.
wlr_output_impl.commit is responsible for applying the pending mode.

However, there are exceptions to this rule. The first one is
wlr_output_attach_render. It won't go away before renderer v6 is
complete, because it needs to set the current EGL surface.

The second one is wlr_output_attach_buffer.
wlr_output_impl.attach_buffer is removed in [1].

When wlr_output_rollback is called, all pending state is supposed to be
cleared. This works for all the state except the two exceptions
mentionned above. To fix this, introduce wlr_output_impl.rollback.

Right now, the backend resets the current EGL surface. This prevents GL
commands from affecting the output after wlr_output_rollback.

This patch is required for FBO-based outputs to work properly. The
compositor might be using FBOs for its own purposes [2], having leftover
FBO state can have bad consequences.

[1]: https://github.com/swaywm/wlroots/pull/2097
[2]: https://github.com/swaywm/wlroots/pull/2063#issuecomment-597614312
2020-04-08 17:33:00 +02:00
..
drm Add wlr_output_impl.rollback 2020-04-08 17:33:00 +02:00
headless Add wlr_output_impl.rollback 2020-04-08 17:33:00 +02:00
libinput meson: Various improvements 2019-12-23 07:48:29 -05:00
multi meson: Various improvements 2019-12-23 07:48:29 -05:00
noop output: re-introduce atomic mode, enabled, scale and transform 2019-12-30 11:21:11 -07:00
session build: Add 'auto' to logind-provider combo option 2020-03-24 14:11:39 +01:00
wayland Add wlr_output_impl.rollback 2020-04-08 17:33:00 +02:00
x11 Add wlr_output_impl.rollback 2020-04-08 17:33:00 +02:00
backend.c Drop RDP backend 2020-01-10 19:38:39 +01:00
meson.build Drop RDP backend 2020-01-10 19:38:39 +01:00