mirror of
https://github.com/swaywm/sway.git
synced 2024-11-10 20:44:01 +01:00
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:
parent
b1d08db5f5
commit
a8a6ed667d
@ -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
|
||||
|
@ -186,21 +186,29 @@ set|plus|minus <amount>
|
||||
Cycles the layout mode of the focused container through a list of layouts.
|
||||
|
||||
*max_render_time* off|<msec>
|
||||
Works together with *output max_render_time* to reduce the latency even
|
||||
further by delaying the frame callbacks sent to a surface. When set to
|
||||
a positive number of milliseconds, delays the frame callback in such a
|
||||
way that the surface has the specified number of milliseconds to render
|
||||
and commit new contents before being sampled by the compositor for the
|
||||
next presentation. See *max_render_time* in *sway-output*(5) for
|
||||
further details.
|
||||
Controls when the relevant application is told to render this window, as a
|
||||
positive number of milliseconds before the next time sway composites the
|
||||
output. A smaller number leads to fresher rendered frames being composited
|
||||
by sway and lower perceived input latency, but if set too low, the
|
||||
application may not finish rendering before sway composites the output,
|
||||
leading to delayed frames.
|
||||
|
||||
When set to off, the relevant application is told to render this window
|
||||
immediately after display refresh. How much time is left for rendering
|
||||
before sway composites the output at that point depends on the output
|
||||
*max_render_time* setting.
|
||||
|
||||
To set this up for optimal latency:
|
||||
. Set up *output max_render_time*.
|
||||
. Set up *output max_render_time* (see *sway-output*(5)).
|
||||
. Put the target application in _full-screen_ and have it continuously
|
||||
render something.
|
||||
. Start by setting *max_render_time 1*. If the application drops
|
||||
frames, increment by *1*.
|
||||
|
||||
This setting only has an effect if a per-output *max_render_time* is in
|
||||
effect on the output the window is currently on. See *sway-output*(5) for
|
||||
further details.
|
||||
|
||||
*move* left|right|up|down [<px> px]
|
||||
Moves the focused container in the direction specified. If the container,
|
||||
the optional _px_ argument specifies how many pixels to move the container.
|
||||
|
Loading…
Reference in New Issue
Block a user