From 82d5f12914d198b403bf14b19219581de3c6199f Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 20 Sep 2021 11:58:49 +0200 Subject: [PATCH] Add -Dnoscanout debug option This can help debugging direct scan-out issues, such as [1]. [1]: https://github.com/swaywm/wlroots/issues/3185 --- include/sway/server.h | 1 + sway/desktop/output.c | 2 +- sway/main.c | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/sway/server.h b/include/sway/server.h index f3522a49..88dda097 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -119,6 +119,7 @@ struct sway_debug { bool noatomic; // Ignore atomic layout updates bool txn_timings; // Log verbose messages about transactions bool txn_wait; // Always wait for the timeout before applying + bool noscanout; // Disable direct scan-out enum { DAMAGE_DEFAULT, // Default behaviour diff --git a/sway/desktop/output.c b/sway/desktop/output.c index a980e958..8cdd47f5 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -507,7 +507,7 @@ static int output_repaint_timer_handler(void *data) { fullscreen_con = workspace->current.fullscreen; } - if (fullscreen_con && fullscreen_con->view) { + if (fullscreen_con && fullscreen_con->view && !debug.noscanout) { // Try to scan-out the fullscreen view static bool last_scanned_out = false; bool scanned_out = diff --git a/sway/main.c b/sway/main.c index 0611e80b..e960c4e2 100644 --- a/sway/main.c +++ b/sway/main.c @@ -182,6 +182,8 @@ void enable_debug_flag(const char *flag) { debug.txn_timings = true; } else if (strncmp(flag, "txn-timeout=", 12) == 0) { server.txn_timeout_ms = atoi(&flag[12]); + } else if (strcmp(flag, "noscanout") == 0) { + debug.noscanout = true; } else { sway_log(SWAY_ERROR, "Unknown debug flag: %s", flag); }