From 2a9a3781764793caee86d3c6a6747829d80ba6e6 Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Sat, 12 Nov 2022 15:51:46 +0000 Subject: [PATCH] output: test adaptive sync Required by https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3637 See also swaywm/sway@07bfeb2 Fixes #516 --- src/output.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/output.c b/src/output.c index d61518b0..0e9d898b 100644 --- a/src/output.c +++ b/src/output.c @@ -176,9 +176,17 @@ new_output_notify(struct wl_listener *listener, void *data) wlr_scene_node_raise_to_top(&output->layer_popup_tree->node); if (rc.adaptive_sync) { - wlr_log(WLR_INFO, "enable adaptive sync on %s", - wlr_output->name); - wlr_output_enable_adaptive_sync(wlr_output, true); + wlr_log(WLR_INFO, "enable adaptive sync on %s", wlr_output->name); + struct wlr_output_state pending = { 0 }; + wlr_output_state_set_adaptive_sync_enabled(&pending, true); + if (!wlr_output_test_state(wlr_output, &pending)) { + wlr_log(WLR_ERROR, "adaptive sync failed, ignoring"); + wlr_output_state_set_adaptive_sync_enabled(&pending, false); + } + if (!wlr_output_commit_state(wlr_output, &pending)) { + wlr_log(WLR_ERROR, "failed to commit output %s", + wlr_output->name); + } } /*