aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/atomic.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-06-18 12:40:07 +0200
committerSimon Ser <contact@emersion.fr>2022-08-30 17:53:50 +0000
commit8c70245d5fe044f09882653437e0a9dc7c336a0c (patch)
tree3e82af4e461fd5370a145a42e00a4aab4ebcbe4a /backend/drm/atomic.c
parent26e1812ab3eb75ba5c13f1a4060dd74fb4c93263 (diff)
output: fail commits if adaptive sync cannot be enabled
Previously, adaptive sync was just a hint and wouldn't make any atomic commit fail if the backend didn't support it. The main reason is wlr_output_test wasn't supported at the time. Now that we have a way for compositors to test whether a change can work, let's remove the exception for adaptive sync and convert it to a regular output state field.
Diffstat (limited to 'backend/drm/atomic.c')
-rw-r--r--backend/drm/atomic.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/backend/drm/atomic.c b/backend/drm/atomic.c
index ab1b2160..05d01125 100644
--- a/backend/drm/atomic.c
+++ b/backend/drm/atomic.c
@@ -254,8 +254,10 @@ static bool atomic_crtc_commit(struct wlr_drm_connector *conn,
bool prev_vrr_enabled =
output->adaptive_sync_status == WLR_OUTPUT_ADAPTIVE_SYNC_ENABLED;
bool vrr_enabled = prev_vrr_enabled;
- if ((state->base->committed & WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED) &&
- drm_connector_supports_vrr(conn)) {
+ if ((state->base->committed & WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED)) {
+ if (!drm_connector_supports_vrr(conn)) {
+ return false;
+ }
vrr_enabled = state->base->adaptive_sync_enabled;
}