Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

Atomic output updates #1640

Open
emersion opened this issue Mar 28, 2019 · 2 comments
Open

Atomic output updates #1640

emersion opened this issue Mar 28, 2019 · 2 comments

Comments

@emersion
Copy link
Member

emersion commented Mar 28, 2019

This would let us:

  • Enable and disable multiple outputs without the fear of hitting the CRTC limit
  • Test configurations before applying them
  • Rollback if something fails
  • More cool stuff

swaywm/wlr-protocols#38 (comment)


wlroots has migrated to gitlab.freedesktop.org. This issue has been moved to:

https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1640

@emersion
Copy link
Member Author

emersion commented Mar 31, 2019

API proposal:

  1. Make wlr_output_set_* functions double-buffered
  2. Add wlr_output_commit to apply the pending state
  3. Add wlr_backend_commit to apply the pending state for all outputs. Backends can choose not to implement this, in which case the function will fallback to calling wlr_output_commit on each output
  4. Add wlr_output_test to check if the pending state is valid without applying it
  5. Deprecate non-atomic events (enable, mode, scale, transform)

emersion added a commit to emersion/wlroots that referenced this issue Jul 18, 2019
This commit makes more output properties (mode, enabled, scale and transform)
atomic. This means that they are double-buffered and only applied on commit.

Compositors now need to call wlr_output_commit after setting any of those
properties.

Internally, backends still apply properties sequentially. The behaviour should
be exactly the same as before. Future commits will update some backends to take
advantage of the atomic interface. Some backends are non-atomic by design, e.g.
the X11 backend or the legacy DRM backend.

Updates: swaywm#1640
ddevault pushed a commit that referenced this issue Aug 2, 2019
This commit makes more output properties (mode, enabled, scale and transform)
atomic. This means that they are double-buffered and only applied on commit.

Compositors now need to call wlr_output_commit after setting any of those
properties.

Internally, backends still apply properties sequentially. The behaviour should
be exactly the same as before. Future commits will update some backends to take
advantage of the atomic interface. Some backends are non-atomic by design, e.g.
the X11 backend or the legacy DRM backend.

Updates: #1640
ddevault pushed a commit to swaywm/rootston that referenced this issue Aug 8, 2019
This commit makes more output properties (mode, enabled, scale and transform)
atomic. This means that they are double-buffered and only applied on commit.

Compositors now need to call wlr_output_commit after setting any of those
properties.

Internally, backends still apply properties sequentially. The behaviour should
be exactly the same as before. Future commits will update some backends to take
advantage of the atomic interface. Some backends are non-atomic by design, e.g.
the X11 backend or the legacy DRM backend.

Updates: swaywm/wlroots#1640
emersion added a commit to emersion/wlroots that referenced this issue Aug 16, 2019
emersion added a commit to emersion/wlroots that referenced this issue Aug 16, 2019
emersion added a commit to emersion/wlroots that referenced this issue Dec 27, 2019
emersion added a commit to emersion/wlroots that referenced this issue Dec 27, 2019
This reverts commit 01f9038 and re-applies
commit ee5f98a.

Updates: swaywm#1640 (Atomic output updates issue)
See also: swaywm#1762 (Atomic output updates original PR)
See also: swaywm#1780 (Issue caused by atomic output updates)
See also: swaywm/sway#4419 (Issue caused by atomic output updates)
See also: swaywm#1781 (Revert PR)
ddevault pushed a commit that referenced this issue Dec 30, 2019
This reverts commit 01f9038 and re-applies
commit ee5f98a.

Updates: #1640 (Atomic output updates issue)
See also: #1762 (Atomic output updates original PR)
See also: #1780 (Issue caused by atomic output updates)
See also: swaywm/sway#4419 (Issue caused by atomic output updates)
See also: #1781 (Revert PR)
filips pushed a commit to filips/wlroots that referenced this issue Mar 15, 2020
This reverts commit 01f9038 and re-applies
commit ee5f98a.

Updates: swaywm#1640 (Atomic output updates issue)
See also: swaywm#1762 (Atomic output updates original PR)
See also: swaywm#1780 (Issue caused by atomic output updates)
See also: swaywm/sway#4419 (Issue caused by atomic output updates)
See also: swaywm#1781 (Revert PR)
@emersion
Copy link
Member Author

emersion commented Jun 4, 2020

Items 1, 2 and 4 are now done.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

No branches or pull requests

1 participant