weston/include/libweston
Daniel Stone a42908204f weston_buffer: Separate buffer release from lifetime
In the original conception, a weston_buffer_reference indicated that the
underlying contents of the wl_buffer would or could be accessed, so
wl_buffer.release must not be sent until the last reference was
released, as the compositor may still use it.

This meant that renderers or backends which copied the buffer content -
such as the GL renderer with SHM buffers - could only send a buffer
release event to the client by 'losing' the buffer reference altogether.
The main side effect is that `weston-debug scene-graph` could not show
any information at all about SHM buffers when using the GL renderer, but
it also meant that renderers and backends grew increasingly exotic
structures to cache information about the buffer.

Now that we have an additional buffer-reference mode (still referring to
the weston_buffer/wl_buffer, but not going to access its content), we
can allow the weston_buffer_reference and weston_buffer to live as long
as the buffer itself, even if we do send a release event.

This will enable a bunch of backend and renderer deduplication, as well
as finally making scene-graph more useful.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2022-04-25 14:27:08 +00:00
..
backend-drm.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
backend-headless.h headless, gl-renderer: support pbuffer outputs 2019-10-11 12:16:35 +00:00
backend-rdp.h rdp: Allow disabling RemoteFX codec 2022-04-21 07:20:59 -05:00
backend-wayland.h Rename public backend headers 2019-04-18 12:31:46 +03:00
backend-x11.h Rename public backend headers 2019-04-18 12:31:46 +03:00
config-parser.h include: drop unused config-parser.h types 2022-03-14 08:50:30 +00:00
libweston.h weston_buffer: Separate buffer release from lifetime 2022-04-25 14:27:08 +00:00
matrix.h Rename matrix.h to libweston/matrix.h 2019-04-18 12:31:46 +03:00
meson.build libweston: remove fbdev backend 2022-03-15 11:32:46 +02:00
pipewire-plugin.h plug-ins: Migrate pipewire and remoting plug-ins headers to public header 2020-09-04 10:36:48 +00:00
plugin-registry.h Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
remoting-plugin.h plug-ins: Migrate pipewire and remoting plug-ins headers to public header 2020-09-04 10:36:48 +00:00
version.h.in Rename version.h to libweston/version.h 2019-04-18 12:31:46 +03:00
weston-log.h weston-log: Extract helper for generating a time stamp 2022-03-10 17:11:31 +02:00
windowed-output-api.h Fix indentation all through the project 2021-07-31 15:28:20 +00:00
xwayland-api.h Rename xwayland-api.h to libweston/xwayland-api.h 2019-04-18 12:31:46 +03:00
zalloc.h Rename zalloc.h to libweston/zalloc.h 2019-04-18 12:31:46 +03:00