aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-09-20 11:58:49 +0200
committerKenny Levinsen <kl@kl.wtf>2021-09-20 14:22:35 +0200
commit82d5f12914d198b403bf14b19219581de3c6199f (patch)
tree6de55bbaf7922211584d96b7d2d0f9df482e3c86
parent033061aee602a54f65340e2a300054d2790c22ea (diff)
Add -Dnoscanout debug option
This can help debugging direct scan-out issues, such as [1]. [1]: https://github.com/swaywm/wlroots/issues/3185
-rw-r--r--include/sway/server.h1
-rw-r--r--sway/desktop/output.c2
-rw-r--r--sway/main.c2
3 files changed, 4 insertions, 1 deletions
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);
}