weston/libweston
Michael Olbrich f5a4fb5abc backend-drm: make sure all buffers are released when an output is removed
When an output is destroyed then the output state is freed immediately. In this
case, the plane state is only partially destroyed because it is the currently
active state. This includes the buffer reference.

Without the output, the plane will not be updated any more until it is used by a
different output (if possible) or the output returns and the plane is used
again.
As a result, the buffer reference is kept for a long time. This will cause some
applications to stall because weston now keeps two buffers (the one here and
another one for a different output where the application is now displayed).

To avoid this, do a synchronous commit that disables the output. The output
needs to be disabled anyways and this way the current state contains no
buffers that would remain.

`device->state_invalid = true` in drm_output_detach_crtc() is no longer
needed, because drm_output_detach_crtc() is called only when initialization
failed and the crtc was not yet used or in drm_output_deinit() when the
crtc was already disabled with the new synchronous commit.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2022-07-04 18:42:48 +00:00
..
backend-drm backend-drm: make sure all buffers are released when an output is removed 2022-07-04 18:42:48 +00:00
backend-headless backend-headless: check that outputs and heads are in fact ours 2022-06-10 09:27:43 +00:00
backend-rdp backend-rdp: check that outputs and heads are in fact ours 2022-06-10 09:27:43 +00:00
backend-wayland backend-wayland: Don't leak parent output trackers 2022-06-29 14:33:21 +01:00
backend-x11 backend-x11: check that outputs and heads are in fact ours 2022-06-10 09:27:43 +00:00
color-lcms build: consolidate lcms2 dependencies 2022-06-03 10:22:25 +00:00
desktop libweston-desktop: Add get_position 2022-06-29 11:44:48 +00:00
renderer-gl gl-renderer: simplify main() in frag 2022-06-22 12:15:58 +00:00
animation.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
backend.h libweston: add HDR metadata to weston_output 2022-05-27 10:30:35 +00: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 HDR metadata to weston_output 2022-05-27 10:30:35 +00:00
color.c backend-drm: check for HDR_OUTPUT_METADATA 2022-05-02 12:19:24 +00:00
color.h color: simplify color manager API with weston_output_color_outcome 2022-05-06 09:33:35 +00:00
compositor.c scene-graph: Print when surface/view is not mapped 2022-06-28 10:35:52 +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: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03: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
input.c libweston: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03: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 tests: add color-metadata-errors test 2022-05-27 10:30:35 +00:00
linux-dmabuf.c build: fix possible race/error for some backends 2022-06-20 16:14:01 +03:00
linux-dmabuf.h build: fix possible race/error for some backends 2022-06-20 16:14:01 +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
linux-sync-file-uapi.h
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 Move libweston-desktop into libweston 2022-06-28 10:35:52 +00:00
noop-renderer.c noop-renderer: Make sure buffer access doesn't get optimised out 2022-06-29 11:38:36 +00:00
pixel-formats.c drm-backend: stop parsing IN_FORMATS blobs, use libdrm instead 2022-06-07 09:35:14 +01:00
pixel-formats.h pixel-formats: Add internal-only format flag 2022-05-20 11:24:41 +00:00
pixman-renderer.c renderer: Set surface->is_opaque in the core 2022-05-16 13:51:42 +01: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 libweston: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03:00
vertex-clipping.c tests: make vertex-clip use WESTON_EXPORT_FOR_TESTS 2022-03-01 13:32:15 +00:00
vertex-clipping.h
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: Fix documentation for weston_log_subscription_create 2022-07-01 17:20:18 +03:00