From 81e67e18bbf047c17e178607dc45ba9822dad9ba Mon Sep 17 00:00:00 2001 From: Ricardo Steijn Date: Sat, 6 Jul 2024 22:43:02 +0200 Subject: [PATCH] fix: try page-flip without tearing when the output test fails --- sway/desktop/output.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 58aa79080..9a2b0e264 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -303,9 +303,15 @@ static int output_repaint_timer_handler(void *data) { pending.tearing_page_flip = true; if (!wlr_output_test_state(output->wlr_output, &pending)) { - output->allow_tearing = false; - wlr_output_state_finish(&pending); - return 0; + sway_log(SWAY_ERROR, "Output test failed on '%s', retrying without tearing page-flip", + output->wlr_output->name); + + pending.tearing_page_flip = false; + + if (!wlr_output_test_state(output->wlr_output, &pending)) { + wlr_output_state_finish(&pending); + return 0; + } } }