weston/libweston
Michael Olbrich ef175c8ed4 backend-drm: handle commit failures correctly
Currently only the return value of the last backend that implements
repaint_flush() is actually used. That only works because the drm backend is the
only backend that implements repaint_flush().
In the drm backend only the return value of the last device is used. And if a
failure is actually detected, then all repainted outputs of all backends are
reset. This can trigger asserts:
weston_output_schedule_repaint_reset() (or _restart()) will change the state of
the output but the backend that did not cause the failure will still call
weston_output_finish_frame().
The same thing can happen with multiple devices in the drm backend. Or outputs
get stuck if an error is dropped.

Since the drm backend is the only one that implements repaint_flush() anyways,
move the failure handling into the backend and make it device specific.
This way only the outputs that need it are reset.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2024-06-21 15:35:30 +02:00
..
backend-drm backend-drm: handle commit failures correctly 2024-06-21 15:35:30 +02:00
backend-headless backend-headless: Don't try to finish frame if it was cancelled 2024-06-07 11:00:25 +00:00
backend-pipewire meson: Add missing dependencies on egl 2024-03-18 10:27:40 -05:00
backend-rdp rdp: Use current_scale instead of scale for input translation 2024-06-20 06:28:37 -05:00
backend-vnc vnc: Allow neatvnc in version 0.8.0 2024-06-07 12:57:54 +00:00
backend-wayland backend-wayland: don't wait for one frame when starting the repaint loop 2024-05-29 13:20:11 +00:00
backend-x11 shared: remove load_image() 2024-06-11 10:13:18 -03:00
color-lcms color-lcms: print ICC profile class on error 2024-06-19 07:40:08 +00:00
desktop libweston/desktop: Use the weston_view_move_to_layer helper 2024-06-07 11:59:25 +00:00
renderer-gl renderer-gl: Support more shm RGB formats 2024-06-19 15:42:59 +08:00
shell-utils shell-utils: Use weston_coord in curtain params 2023-09-18 20:35:37 +00:00
animation.c libweston/animation: Remove weston_fade_run unused argument 2024-01-09 13:15:16 +02:00
auth.c libweston: Add user authentication support via PAM 2022-11-23 16:58:48 +01:00
backend.h backend-drm: handle commit failures correctly 2024-06-21 15:35:30 +02: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-management.c libweston: fix indentation of a few files 2024-06-04 17:32:39 -03:00
color-management.h color: declare cm_image_desc_info 2024-02-23 16:46:39 +02:00
color-noop.c color: add get_color_profile_from_params() to color managers 2024-06-17 11:50:40 -03:00
color-profile-param-builder.c color: introduce API to create color profile from parameters 2024-06-17 11:50:41 -03:00
color-properties.c color: add WESTON_TF_POWER 2024-06-17 11:49:09 -03:00
color-properties.h color: add WESTON_TF_POWER 2024-06-17 11:49:09 -03:00
color.c backend-drm: get KMS colorimetry modes 2024-05-06 10:39:42 +00:00
color.h color: add get_color_profile_from_params() to color managers 2024-06-17 11:50:40 -03:00
compositor.c backend-drm: handle commit failures correctly 2024-06-21 15:35:30 +02:00
content-protection.c content-protection: Don't leak update timer on shutdown 2021-12-08 13:38:18 +00:00
data-device.c input: Use surface/view helpers for drag surfaces 2023-12-06 12:16:27 +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
id-number-allocator.c libweston: fix indentation of a few files 2024-06-04 17:32:39 -03:00
id-number-allocator.h libweston: add unique id generator 2024-02-13 14:08:38 -03:00
input.c libweston: enable pointer constraints for fullscreen surfaces. 2024-03-04 12:45:07 +01:00
launcher-impl.h launcher: Remove launcher-logind 2023-09-29 09:55:32 -05:00
launcher-libseat.c launcher-libseat: Don't depend on dbus 2023-09-29 09:47:43 -05:00
launcher-util.c launcher: Remove launcher-logind 2023-09-29 09:55:32 -05: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 renderers: pull dmabuf initial setup out of attach 2024-06-18 08:45:43 -05:00
linux-dmabuf.c linux-dmabuf: Add support for protocol version 5 2024-01-19 18:59:22 +01:00
linux-dmabuf.h linux-dmabuf: Add support for protocol version 5 2024-01-19 18:59:22 +01: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 color: introduce API to create color profile from parameters 2024-06-17 11:50:41 -03:00
noop-renderer.c renderers: Pass a paint node to the attach callbacks 2024-06-11 09:23:27 +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 renderer-gl: Support more shm RGB formats 2024-06-19 15:42:59 +08:00
pixel-formats.h renderer-gl: Support more shm RGB formats 2024-06-19 15:42:59 +08:00
pixman-renderer.c renderers: Pass a paint node to the attach callbacks 2024-06-11 09:23:27 +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 timeline: Fix order with sub-surface clients 2024-06-14 11:41:13 +00:00
timeline.h libweston: move TYPEVERIFY macro into shared 2021-02-17 12:52:33 +00:00
touch-calibration.c touch-calibrator: Regularise surface/view mapping 2023-12-06 12:16:27 +00:00
vertex-clipping.c gl-renderer: Do not expose clipper_clip() in header 2024-05-30 09:09:45 +00:00
vertex-clipping.h gl-renderer: Do not expose clipper_clip() in header 2024-05-30 09:09:45 +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