aboutsummaryrefslogtreecommitdiff
path: root/sway/sway-output.5.scd
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2019-09-25 13:58:27 +0300
committerSimon Ser <contact@emersion.fr>2019-11-17 20:18:42 +0100
commit022df2542baa057b1965a7c7ee9c32e738f637d2 (patch)
treee650befe8f210c0fc44eb8fadf3b125c70a1b01f /sway/sway-output.5.scd
parentcb905effde03b19b3e32aaf6ea1fee1ed82c9f33 (diff)
output: add max_render_time
Diffstat (limited to 'sway/sway-output.5.scd')
-rw-r--r--sway/sway-output.5.scd24
1 files changed, 24 insertions, 0 deletions
diff --git a/sway/sway-output.5.scd b/sway/sway-output.5.scd
index ae6ced24..01496f19 100644
--- a/sway/sway-output.5.scd
+++ b/sway/sway-output.5.scd
@@ -107,6 +107,30 @@ must be separated by one space. For example:
Enables or disables the specified output via DPMS. To turn an output off
(ie. blank the screen but keep workspaces as-is), one can set DPMS to off.
+*output* <name> max_render_time off|<msec>
+ When set to a positive number of milliseconds, enables delaying output
+ rendering to reduce latency. The rendering is delayed in such a way as
+ to leave the specified number of milliseconds before the next
+ presentation for rendering.
+
+ The output rendering normally takes place immediately after a
+ presentation (vblank, buffer flip, etc.) and the frame callbacks are
+ sent to surfaces immediately after the rendering to give surfaces the
+ most time to draw their next frame. This results in slightly below 2
+ frames of latency between the surface rendering and committing new
+ contents, and the contents being shown on screen, on average. When the
+ output rendering is delayed, the frame callbacks are sent immediately
+ after presentation, and the surfaces have a small timespan (1 /
+ (refresh rate) - max_render_time) to render and commit new contents to
+ be shown on the next presentation, resulting in below 1 frame of
+ latency.
+
+ To set this up for optimal latency:
+ . Launch some _full-screen_ application that renders continuously, like
+ *glxgears*.
+ . Start with *max_render_time 1*. Increment by *1* if you see frame
+ drops.
+
# SEE ALSO
*sway*(5) *sway-input*(5)