• Robert Beckett's avatar
    backend-drm: dont emit sesion signal if already at same state · 49dc3201
    Robert Beckett authored
    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's avatarRobert Beckett <bob.beckett@collabora.com>
    49dc3201
Name
Last commit
Last update
.gitlab-ci Loading commit data...
clients Loading commit data...
compositor Loading commit data...
data Loading commit data...
desktop-shell Loading commit data...
doc Loading commit data...
fullscreen-shell Loading commit data...
include Loading commit data...
ivi-shell Loading commit data...
libweston Loading commit data...
libweston-desktop Loading commit data...
man Loading commit data...
protocol Loading commit data...
remoting Loading commit data...
shared Loading commit data...
tests Loading commit data...
tools/zunitc Loading commit data...
wcap Loading commit data...
xwayland Loading commit data...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING Loading commit data...
DCO-1.1.txt Loading commit data...
README.md Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
notes.txt Loading commit data...
releasing.txt Loading commit data...
weston.ini.in Loading commit data...