weston/libweston
Robert Beckett 49dc32013e backend-drm: dont emit sesion signal if already at same state
logind will send a device changed at start of day, prompting a session
active change, but the session will already be active from compositor
creation.

Avoid unnecessary signal emition and drm state invalidation.

The logind launcher sets the session active when the graphics device is
assigned to weston from systemd. Unfortunately 8d23ab78 didnt check whether the
session was already active before setting it active and emitting the session
active signal.
The handler for that signal then proceeds to invalidate the entire graphics
state, causing the next redraw to reconfigure all outputs (to the same routing
as they were already).
This then massively increases the likelihood of trying to configure a crtc that
has a commit already in flight.

Add the old behaviour of only emitting a signal on a changed state.
This avoids the issue for now by reducing the chances of a clash. Future
work will need to fix the issue properly (better handling of state_invalid e.g.
wait for quiescence, better monitoring for crtc usage clashes etc).

Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2019-07-18 06:35:41 +00:00
..
backend-drm backend-drm: dont emit sesion signal if already at same state 2019-07-18 06:35:41 +00:00
backend-fbdev backend-drm: fix race during system suspend 2019-07-12 17:16:52 +00:00
backend-headless backend-drm: fix race during system suspend 2019-07-12 17:16:52 +00:00
backend-rdp backend-drm: fix race during system suspend 2019-07-12 17:16:52 +00:00
backend-wayland backend-drm: fix race during system suspend 2019-07-12 17:16:52 +00:00
backend-x11 backend-drm: fix race during system suspend 2019-07-12 17:16:52 +00:00
renderer-gl gl-renderer: Don't leak transformed region 2019-07-12 17:00:32 +00:00
animation.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
bindings.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
clipboard.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
compositor.c libweston: make session_active a bool 2019-07-18 06:35:41 +00:00
content-protection.c libweston: Notify client for change in content-protection status 2019-07-05 14:13:24 +05:30
data-device.c data-device: send INVALID_FINISH when operation != dnd 2019-04-19 22:06:37 +05:30
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
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
input.c libweston: Fix/clean-up doxygen warnings 2019-06-25 14:05:54 +00:00
launcher-direct.c libweston: make session_active a bool 2019-07-18 06:35:41 +00:00
launcher-impl.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
launcher-logind.c libweston: make session_active a bool 2019-07-18 06:35:41 +00:00
launcher-util.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
launcher-util.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
launcher-weston-launch.c libweston: make session_active a bool 2019-07-18 06:35:41 +00:00
libinput-device.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-device.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-seat.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
linux-dmabuf.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
linux-dmabuf.h linux-dmabuf: send deprecated format events 2018-01-18 11:24:19 +00:00
linux-explicit-synchronization.c libweston: Fix/clean-up doxygen warnings 2019-06-25 14:05:54 +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: Fix/clean-up doxygen warnings 2019-06-25 14:05:54 +00:00
meson.build libweston: Add content-protection protocol implementation 2019-07-04 14:18:50 +05:30
noop-renderer.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
pixel-formats.c pixel-formats: Remove duplicate doc string 2019-06-26 12:27:14 +01:00
pixel-formats.h pixel-formats: Added pixel_format_get_info_shm() helper for printing SHM buffers 2018-11-20 18:00:09 +02:00
pixman-renderer.c libweston: Support zwp_surface_synchronization_v1.get_release 2019-02-06 12:21:56 +00:00
pixman-renderer.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c log: remove "%m" from format strings by using strerror(errno) 2019-05-02 22:10:30 +02:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.h timeline: Add GPU timestamp timepoint argument 2017-09-29 10:20:42 +03:00
touch-calibration.c Rename zalloc.h to libweston/zalloc.h 2019-04-18 12:31:46 +03:00
vertex-clipping.c Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
vertex-clipping.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
weston-debug.c libweston: Fix/clean-up doxygen warnings 2019-06-25 14:05:54 +00:00
weston-launch.c log: remove "%m" from format strings by using strerror(errno) 2019-05-02 22:10:30 +02:00
weston-launch.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
zoom.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00