backend/drm: atomic improvements
This PR:
- Makes adaptive sync atomic
- Performs a blocking atomic commit if no modeset or buffer is pending
The second point fixes output state updates not applied when no modeset or page-flip is performed. For instance, wlr_output_set_gamma
followed by wlr_output_commit
was a no-op (but shouldn't be).
No Sway PR required, since wlr_output_enable_adaptive_sync
is already followed by wlr_output_commit
.
Closes: https://github.com/swaywm/wlroots/issues/2096
Breaking change: wlr_output_enable_adaptive_sync
must now be followed by wlr_output_commit
to apply the change.