Fix potential lockups with swap events
Needs ReviewPublic

Authored by fredrik on Jul 9 2019, 2:59 PM.

Details

Reviewers
None
Group Reviewers
KWin
Summary

This series should hopefully fix the lockups that some users have been experiencing with swap events enabled.

commit 076c6a8de05219800dd922827a223b345cdbc193 (HEAD -> swap-event-fixes)
Author: Fredrik Höglund <fredrik@kde.org>
Date: Sun May 12 14:21:03 2019 +0200

Remove the assert() in Compositor::bufferSwapComplete()

commit d9765fdb51be90718190c6495de5c8a9aa400fc3
Author: Fredrik Höglund <fredrik@kde.org>
Date: Sun May 12 14:19:12 2019 +0200

Set m_bufferSwapPending to false in Compositor::finish()

Othewise we can end up waiting forever if compositing was suspended
while a swap event was pending.

commit da1b607722e6fff5290b1e6d4c73447b8ac5444e
Author: Fredrik Höglund <fredrik@kde.org>
Date: Sun May 12 14:17:36 2019 +0200

Don't call performCompositing() directly from bufferSwapComplete()

Start the composite timer instead, so we don't call performCompositing()
from the event handler.
Test Plan

I've been running kwin with these patches and swap events enabled for a couple of months without experiencing any lockups.

Keep in mind that swap events must be enabled by setting KWIN_USE_INTEL_SWAP_EVENT to 1 when testing these changes.

Diff Detail

Repository
R108 KWin
Lint
Lint Skipped
Unit
Unit Tests Skipped
fredrik created this revision.Jul 9 2019, 2:59 PM
Restricted Application added a subscriber: kwin. · View Herald TranscriptJul 9 2019, 2:59 PM
fredrik requested review of this revision.Jul 9 2019, 2:59 PM
romangg added a subscriber: romangg.Jul 9 2019, 3:22 PM

Is this Diff a single patch from this series? Is this the series? Is this WIP? Please create an overview-task and describe what's the basic idea and your plan is.

zzag added a subscriber: zzag.Jul 9 2019, 4:48 PM

Hmm, so m_bufferSwapPending can be false when bufferSwapComplete is called, right?