weston/libweston
Michael Olbrich 44f36b9b55 libweston: don't return buffers early with multiple backends
Releasing the buffer reference here works because the backend has seen the
surface and has updated keep_buffer if necessary. With multiple backends
the assumption breaks. The same surface may be visible (now or later) on an
output from another backend. This backend has not seen the buffer yet so it
cannot update keep_buffer.
As a result, the reference is released to early. A surface that is rendered
on a secondary backend first can no longer be placed on a plane on a DRM
backend.

To avoid this, always keep the buffer reference until it is replaced when
multiple backends are involved.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2023-09-28 14:02:04 +00:00
..
backend-drm backend-drm: enable multi-backend support 2023-09-28 14:02:04 +00:00
backend-headless backend-headless: enable multi-backend support 2023-09-28 14:02:04 +00:00
backend-pipewire backend-pipewire: enable multi-backend support 2023-09-28 14:02:04 +00:00
backend-rdp backend-rdp: Enable multi-backend support 2023-09-28 14:02:04 +00:00
backend-vnc backend-vnc: enable multi-backend support 2023-09-28 14:02:04 +00:00
backend-wayland backend-wayland: multi-backend support 2023-09-28 14:02:04 +00:00
backend-x11 backend-x11: enable multi-backend support 2023-09-28 14:02:04 +00:00
color-lcms color-lcms: increase float precision to print segment breaks 2023-06-29 17:05:06 -03:00
dbus libweston: Split dbus support into seperate build option 2023-07-14 10:55:24 +00:00
desktop shells: Use weston_coord for shell API 2023-09-18 20:35:37 +00:00
renderer-gl gl-renderer: use correct read-back format and support WL_SHM_FORMAT_ABGR8888 2023-09-15 07:04:02 +00:00
shell-utils shell-utils: Use weston_coord in curtain params 2023-09-18 20:35:37 +00:00
animation.c animation: Remove unnecessary repaint schedule 2023-07-24 12:35:47 +03:00
auth.c libweston: Add user authentication support via PAM 2022-11-23 16:58:48 +01:00
backend.h libweston: store backends in a list 2023-09-28 14:02:04 +00:00
bindings.c input: Fix uint/enum declaration mismatch 2023-04-11 11:44:34 +00: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 HDR metadata to weston_output 2022-05-27 10:30:35 +00:00
color.c color-lcms: add debug scope for color tranformations 2023-04-12 10:03:32 +00:00
color.h color-lcms: add debug scope for color tranformations 2023-04-12 10:03:32 +00:00
compositor.c libweston: don't return buffers early with multiple backends 2023-09-28 14:02:04 +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 libweston: Use weston_coord for touch interfaces 2023-09-18 20:35:37 +00: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
gl-borders.c libweston, backends: move GL renderer interface into weston_renderer 2023-01-16 20:40:34 +01:00
gl-borders.h libweston, backends: move GL renderer interface into weston_renderer 2023-01-16 20:40:34 +01:00
input.c input: Use weston_coord in the cursor confinement code 2023-09-18 20:35:37 +00:00
launcher-impl.h launcher: Remove launcher-logind 2023-09-28 06:47:06 +00:00
launcher-libseat.c libweston: Decouple dbus helper to public namespace 2023-07-14 10:55:24 +00:00
launcher-util.c launcher: Remove launcher-logind 2023-09-28 06:47:06 +00:00
launcher-util.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
libinput-device.c libinput: hook up tablet events 2023-03-31 12:10:26 +00:00
libinput-device.h libinput: hook up tablet events 2023-03-31 12:10:26 +00:00
libinput-seat.c libweston: Use weston_coord in struct weston_pointer 2023-02-17 13:51:23 +00:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h libweston: Set the presentation clock in the compositor 2023-08-02 11:51:56 +03:00
linux-dmabuf.c linux-dmabuf: replace assert with the new weston-assert 2023-09-28 06:52:24 +00:00
linux-dmabuf.h linux-dmabuf: replace assert with the new weston-assert 2023-09-28 06:52:24 +00: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 libweston: Add weston_log_paced() 2022-11-08 08:32:26 -06:00
meson.build launcher: Remove launcher-logind 2023-09-28 06:47:06 +00:00
noop-renderer.c libweston: Add output parameter to weston_renderer::flush_damage() 2023-07-14 16:30:52 +00:00
output-capture.c drm: allow to skip composition if pending capture is writeback 2023-03-31 10:36:31 +00:00
output-capture.h drm: allow to skip composition if pending capture is writeback 2023-03-31 10:36:31 +00:00
pixel-formats.c pixel-formats: Add P010/P012/P016 formats 2023-09-07 15:44:13 +02:00
pixel-formats.h pixel-formats: Add gl_internalformat 2023-06-09 09:21:31 +00:00
pixman-renderer.c libweston: Add output parameter to weston_renderer::flush_damage() 2023-07-14 16:30:52 +00:00
pixman-renderer.h pixman-renderer: use pixel_format_info instead of pixman_format_code_t 2023-01-28 12:59:16 +00:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c screenshooter: Add SHM buffer destroy listener to avoid invalid memcpy 2022-10-03 16:52:16 +02: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 libweston: Use weston_coord in struct weston_output 2023-06-12 16:55:22 -05:00
vertex-clipping.c gl-renderer: Make clip_transformed() surf parameter constant 2023-06-26 12:15:43 +00:00
vertex-clipping.h gl-renderer: Make clip_transformed() surf parameter constant 2023-06-26 12:15:43 +00: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-flight-rec: Map ring buffer using memset() 2023-03-10 11:35:04 +01: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 libweston/weston-log: Add a iterator helper for debug scope 2023-05-30 11:05:14 +00:00