weston/include/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.h backend-drm: add additional-devices to support multi GPU 2023-03-03 08:08:46 +00:00
backend-headless.h backend-headless: Add support to repaint only on captures 2024-02-22 14:26:32 +00:00
backend-pipewire.h backend-pipewire: pass backend to weston_pipewire_output_api::create_head() 2023-04-19 13:36:45 +00:00
backend-rdp.h rdp: Add preliminary rdp multihead support 2023-01-10 12:12:49 +00:00
backend-vnc.h compositor, backend-vnc: Allow to disable output resizing 2023-10-05 11:43:12 +02:00
backend-wayland.h backend-wayland: Use renderer enum type for config selection 2023-01-10 10:59:04 +02:00
backend-x11.h backend-x11: Use renderer enum type for config selection 2023-01-10 10:59:04 +02:00
config-parser.h libweston, shared: Move out weston_shell_get_binding_modifier 2023-01-09 22:13:07 +00:00
desktop.h libweston/desktop: Update my Copyright 2024-02-11 19:07:39 +01:00
libweston.h backend-drm: handle commit failures correctly 2024-06-21 15:35:30 +02:00
matrix.h libweston: Add and use weston_coord_surface_add/sub helpers 2023-10-03 18:19:17 +00:00
meson.build libweston: Remove dbus helpers 2023-09-29 09:58:01 -05: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
shell-utils.h shell-utils: Use weston_coord in curtain params 2023-09-18 20:35:37 +00:00
version.h.in Rename version.h to libweston/version.h 2019-04-18 12:31:46 +03:00
weston-log.h libweston/weston-log: Add a iterator helper for debug scope 2023-05-30 11:05:14 +00:00
windowed-output-api.h libweston: Let multiple backends register the Windowed Output API 2024-03-12 18:35:57 +00:00
xwayland-api.h kiosk-shell, xwayland: Add a new weston_xwayland_surface_api function 2024-06-07 12:40:50 +00:00
zalloc.h Rename zalloc.h to libweston/zalloc.h 2019-04-18 12:31:46 +03:00