Simplify repaint scheduling documentation

The current documentation for repaint scheduling is very technical and
somewhat confusing.

Closes: https://github.com/swaywm/sway/issues/4769
This commit is contained in:
Kenny Levinsen 2020-05-01 17:20:41 +02:00 committed by Simon Ser
parent b1d08db5f5
commit a8a6ed667d
2 changed files with 28 additions and 31 deletions

View file

@ -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.
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.
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.
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