wlroots-hyprland/backend/drm
Simon Ser a0345f2854 output: add wlr_output_state.allow_artifacts
When starting up, the compositor might call wlr_output_set_mode()
with a mode which is already the current one. wlroots will detect
this and make the wlr_output_set_mode() call a no-op. During the
next wlr_output_commit() call, wlroots will perform an atomic
commit without the ALLOW_MODESET flag.

This is an issue, because some drivers need ALLOW_MODESET even if
the mode is the same. For instance, if the FB stride or modifier
changed, some drivers require a modeset.

Add a new flag "allow_artifacts" which is set when the compositor
calls mode-setting functions. Use this flag to figure out whether
we want to perform atomic commits with ALLOW_MODESET.

(The name "allow_artifacts" is picked because ALLOW_MODESET is a
misnomer, see [1].)

[1]: https://patchwork.freedesktop.org/patch/505107/

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3499
2022-09-30 10:58:17 +00:00
..
atomic.c Only set max_bpc when full modesetting is being done. 2022-09-16 14:15:58 +00:00
backend.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
cvt.c backend/drm: add support for custom modes 2019-10-27 10:46:47 -04:00
drm.c output: add wlr_output_state.allow_artifacts 2022-09-30 10:58:17 +00:00
legacy.c output: fail commits if adaptive sync cannot be enabled 2022-08-30 17:53:50 +00:00
meson.build backend/drm: add wlr_drm_backend_monitor 2021-12-13 14:55:16 +01:00
monitor.c backend/drm: add wlr_drm_backend_monitor 2021-12-13 14:55:16 +01:00
properties.c backend/drm: set "max bpc" to the max 2022-06-19 16:55:36 +00:00
renderer.c backend/drm: fix crash in init_drm_surface 2022-05-26 09:38:48 +02:00
util.c backend/drm: pass through mode picture aspect ratio 2022-09-22 09:38:27 +02:00