aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/output
diff options
context:
space:
mode:
authorLibravatar Simon Ser <contact@emersion.fr>2020-03-02 15:30:50 +0100
committerLibravatar Drew DeVault <sir@cmpwn.com>2020-03-07 00:32:04 +0100
commit5d692b05811f939024fbf92c2e6eb7e66e0790dc (patch)
treeadc2973635c6a189e10d444da6d42337131afcf9 /sway/commands/output
parentUse wlr_client_buffer (diff)
downloadsway-5d692b05811f939024fbf92c2e6eb7e66e0790dc.tar.gz
sway-5d692b05811f939024fbf92c2e6eb7e66e0790dc.tar.zst
sway-5d692b05811f939024fbf92c2e6eb7e66e0790dc.zip
Add an adaptive_sync output command
This enables/disables adaptive synchronization on the output. For now, the default is disabled because it might cause flickering on some hardware if clients don't submit frames at regular enough intervals. In the future an "auto" option will only enable adaptive sync if a fullscreen client opts-in via a Wayland protocol.
Diffstat (limited to 'sway/commands/output')
-rw-r--r--sway/commands/output/adaptive_sync.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sway/commands/output/adaptive_sync.c b/sway/commands/output/adaptive_sync.c
new file mode 100644
index 00000000..7382e2ee
--- /dev/null
+++ b/sway/commands/output/adaptive_sync.c
@@ -0,0 +1,22 @@
1#include "sway/commands.h"
2#include "sway/config.h"
3#include "util.h"
4
5struct cmd_results *output_cmd_adaptive_sync(int argc, char **argv) {
6 if (!config->handler_context.output_config) {
7 return cmd_results_new(CMD_FAILURE, "Missing output config");
8 }
9 if (argc == 0) {
10 return cmd_results_new(CMD_INVALID, "Missing adaptive_sync argument");
11 }
12
13 if (parse_boolean(argv[0], true)) {
14 config->handler_context.output_config->adaptive_sync = 1;
15 } else {
16 config->handler_context.output_config->adaptive_sync = 0;
17 }
18
19 config->handler_context.leftovers.argc = argc - 1;
20 config->handler_context.leftovers.argv = argv + 1;
21 return NULL;
22}