weston/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 weston_buffer: Add mode to weston_buffer_reference 2022-04-25 14:27:08 +00:00
backend-headless compositor: remove repaint_data from compositor 2022-04-06 12:47:05 +02:00
backend-rdp rdp: Improved rdp logging infrastructure 2022-04-21 07:33:27 -05:00
backend-wayland compositor: remove repaint_data from compositor 2022-04-06 12:47:05 +02:00
backend-x11 compositor: remove repaint_data from compositor 2022-04-06 12:47:05 +02:00
color-lcms color-lcms: Always use cmsContext for LCMS API which has THR suffix 2022-03-01 22:49:39 -05:00
renderer-gl weston_buffer: Add mode to weston_buffer_reference 2022-04-25 14:27:08 +00:00
animation.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
backend.h compositor: remove repaint_data from compositor 2022-04-06 12:47:05 +02:00
bindings.c Don't send compositor's global key bindings to the input method 2022-02-23 15:40:33 +02:00
clipboard.c libweston: correct argument name in the handler of wl_data_source.accept 2022-04-14 12:05:57 +00:00
color-noop.c libweston: add weston_output::color_profile 2021-11-23 09:23:05 +00:00
color.c libweston: add weston_output::color_profile 2021-11-23 09:23:05 +00:00
color.h libweston: add definition of color mapping function 2022-02-09 20:42:50 -05:00
compositor.c weston_buffer: Separate buffer release from lifetime 2022-04-25 14:27:08 +00:00
content-protection.c content-protection: Don't leak update timer on shutdown 2021-12-08 13:38:18 +00:00
data-device.c weston_buffer: Prepare for buffer to outlive resource 2022-04-25 14:27:08 +00:00
dbus.c dbus: Don't return value from void function 2019-06-11 11:31:04 +01:00
dbus.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
drm-formats.c drm-formats: add weston_drm_format_array_count_pairs() 2021-11-25 10:47:45 -03:00
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
input.c input: Fix bug in idle inhibition 2022-04-18 12:10:20 +00:00
launcher-impl.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-libseat.c libweston: Enable logging for libseat launcher 2022-03-10 17:13:16 +02:00
launcher-logind.c launcher-logind: Don't check wl->vtnr before returning it. 2022-03-16 13:12:20 +00:00
launcher-util.c launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-util.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
libinput-device.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
libinput-device.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-seat.c libinput-seat: Cascade errors and bail out in case of failure 2021-11-25 10:47:04 +02:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h weston_buffer: Add mode to weston_buffer_reference 2022-04-25 14:27:08 +00:00
linux-dmabuf.c backend-drm: add KMS plane's formats to per-surface dma-buf feedback 2021-11-25 11:16:52 -03:00
linux-dmabuf.h backend-drm: add KMS plane's formats to per-surface dma-buf feedback 2021-11-25 11:16:52 -03:00
linux-explicit-synchronization.c libweston: Advertise minor version 2 of zwp_linux_explicit_synchronization_v1 2019-08-02 15:00:08 +00:00
linux-explicit-synchronization.h libweston: Support zwp_surface_synchronization_v1.set_acquire_fence 2019-02-06 12:21:56 +00:00
linux-sync-file-uapi.h libweston: Introduce an internal linux sync file API 2019-02-06 12:21:56 +00:00
linux-sync-file.c libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
linux-sync-file.h libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
log.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
meson.build libweston: remove fbdev backend 2022-03-15 11:32:46 +02:00
noop-renderer.c weston_buffer: Make use of weston_buffer->type 2022-04-25 14:27:08 +00:00
pixel-formats.c pixel-formats: Add XYUV8888 format 2022-03-31 17:15:55 +00:00
pixel-formats.h pixman-renderer: track Pixman formats in pixel format table 2021-09-15 15:00:29 +03:00
pixman-renderer.c weston_buffer: Add mode to weston_buffer_reference 2022-04-25 14:27:08 +00:00
pixman-renderer.h pixman-renderer: Replace output-create flags with struct 2020-03-20 15:25:24 +00:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c weston_buffer: Make use of weston_buffer->type 2022-04-25 14:27:08 +00:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.c libweston: fix typos 2021-02-24 10:01:17 -05:00
timeline.h libweston: move TYPEVERIFY macro into shared 2021-02-17 12:52:33 +00:00
touch-calibration.c touch-calibration: Clean-up if touch calibrator has been enabled 2022-04-20 08:27:17 +00:00
vertex-clipping.c tests: make vertex-clip use WESTON_EXPORT_FOR_TESTS 2022-03-01 13:32:15 +00:00
vertex-clipping.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
weston-direct-display.c libweston: Add weston-direct-display server side implementation 2019-11-18 19:33:09 +02:00
weston-log-file.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-flight-rec.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-internal.h weston-log-wayland: make stream_destroy() use weston_log_subscriber_release() 2020-02-10 10:53:50 +00:00
weston-log-wayland.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
weston-log.c weston-log: Extract helper for generating a time stamp 2022-03-10 17:11:31 +02:00