Screen Redraws (Surface Redraws, GPU Redraws) in Wayland
Pekka Paalanen
ppaalanen at gmail.com
Sat May 13 09:07:30 UTC 2017
On Fri, 12 May 2017 11:17:43 -0600
Ryan Sipes <ryan at system76.com> wrote:
> Hey Daniel,
>
> Thanks for the info! I didn't realize this was higher up the stack.
> Reading Pekka's post now!
Hi Ryan,
indeed, Wayland provides the tools by building in the concept of
complete frames and atomic window state updates as a fundamental
feature:
- Clients are required to post complete (or guaranteed to finish
first, e.g. by using fences) frames, that is, completely drawn
buffers.
- The frame callback in the protocol notifies clients when it's a
good time to start drawing the next frame. Also EGL
implementations are expected to use this for SwapInterval=1
throttling. The frame callback concept is not tied to vsync
though. If a window is completely invisible, it is allowed for a
compositor to delay the callbacks indefinitely or reduce them to
1/s or something to throttle down the client.
- The presentation timing extension offers more information about
the timings.
- Many protocol extensions, like those that deal with window
states, hook onto wl_surface.commit request as the "latch in all
new state in one go".
The design principle is that partially drawn or transient (glitch)
content or inconsistent content and state will never be composited
or shown.
How clients and compositors make use of the above tools is up to
them, really, but I have faith that all implementations aim to do
the right thing and avoid useless rendering (except games that
maximize their fps regardless of display capabilities).
Some people have actually criticised that there is no guaranteed
provision for tearing and unthrottled (not vsync'd) redraws. Yet, at
least. Of course clients can always draw as often as they want, but
servers will still be vsync'd and not tearing.
Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20170513/9d29c293/attachment.sig>
More information about the wayland-devel
mailing list