aboutsummaryrefslogtreecommitdiff
path: root/sway/sway-output.5.scd
diff options
context:
space:
mode:
authorKenny Levinsen <kl@kl.wtf>2020-05-01 17:20:41 +0200
committerSimon Ser <contact@emersion.fr>2020-05-11 10:36:33 +0200
commita8a6ed667d0f9fe747a86bd8607f875e097e3af5 (patch)
tree0aa0a359bd91f506a1b98fc0f90f7f7d631b64e3 /sway/sway-output.5.scd
parentb1d08db5f5112ab562f89564825e3e791b0682c4 (diff)
Simplify repaint scheduling documentation
The current documentation for repaint scheduling is very technical and somewhat confusing. Closes: https://github.com/swaywm/sway/issues/4769
Diffstat (limited to 'sway/sway-output.5.scd')
-rw-r--r--sway/sway-output.5.scd37
1 files changed, 13 insertions, 24 deletions
diff --git a/sway/sway-output.5.scd b/sway/sway-output.5.scd
index a95cfaa2..69f529fe 100644
--- a/sway/sway-output.5.scd
+++ b/sway/sway-output.5.scd
@@ -117,22 +117,17 @@ must be separated by one space. For example:
(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.
+ Controls when sway composites the output, as a positive number of
+ milliseconds before the next display refresh. A smaller number leads to
+ fresher composited frames and lower perceived input latency, but if set too
+ low, sway may not finish compositing in time for display refresh, leading to
+ delayed frames.
+
+ When set to off, sway composites immediately after display refresh,
+ maximizing time available for compositing.
+
+ To adjust when applications are instructed to render, see *max_render_time*
+ in *sway*(5).
To set this up for optimal latency:
. Launch some _full-screen_ application that renders continuously, like
@@ -140,14 +135,8 @@ must be separated by one space. For example:
. Start with *max_render_time 1*. Increment by *1* if you see frame
drops.
- To achieve even lower latency, see the *max_render_time* surface
- property in *sway*(5).
-
- Note that this property has an effect only on backends which report the
- presentation timestamp and the predicted output refresh rateā€”the DRM
- and the Wayland backends. Furthermore, under the Wayland backend the
- optimal max_render_time value may vary based on the parent compositor
- rendering timings.
+ This setting only has an effect on Wayland and DRM backends, as support for
+ presentation timestamps and predicted output refresh rate is required.
*output* <name> adaptive_sync on|off
Enables or disables adaptive synchronization (often referred to as Variable