Add a mechanism to create, recycle and destroy window buffers when needed. Typically, this adds a new `xwl_window_buffer` structure which represents a buffer for a given Xwayland window. Each Xwayland window has two different pools of buffers: - The available buffers pool: Those are buffers which where created previously and that have either not been submitted to the compositor or submitted and released. - The unavailable buffers pool: Those are typically the buffers which are being used by the compositor, awaiting a release. Initially, an Xwayland window starts with both pools empty. As soon as a new buffer is needed, it's either created (if there is none available) or picked from the pool of available buffers. Once submitted to the compositor, the buffer is moved to the pool of unavailable buffers. When the corresponding `wl_buffer` is released by the compositor, it is moved back to pool of available buffers again to be reused when needed. To avoid keeping too many buffers around doing nothing, a garbage collection of older, unused buffers also takes care of disposing the buffers being unused for some time. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> |
||
---|---|---|
.. | ||
dmx | ||
kdrive | ||
vfb | ||
xfree86 | ||
xnest | ||
xquartz | ||
xwayland | ||
xwin | ||
Makefile.am | ||
meson.build |