Reset buffer swap state on stop
ClosedPublic

Authored by romangg on Dec 18 2019, 8:33 PM.

Details

Summary

When the compositor is stopped there might still be a buffer swap ongoing, in
particular when a client blocks compositing on X11.

Depending on the backend the next buffer swap event might be handled in
bufferSwapComplete (Wayland) or not be handled (X11 GLX, since a new
GLX window will be created while the swap event is sent for the old one).

With this patch the buffer swap state is reset on stop such that on later
start no outdated data might create errors and instead a new repaint can be
triggered with updated data.

BUG: 415262

Test Plan

Manually on X11 and Wayland.

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
romangg created this revision.Dec 18 2019, 8:33 PM
Restricted Application added a project: KWin. · View Herald TranscriptDec 18 2019, 8:33 PM
Restricted Application added a subscriber: kwin. · View Herald Transcript
romangg requested review of this revision.Dec 18 2019, 8:33 PM
davidedmundson accepted this revision.Dec 20 2019, 1:22 PM
This revision is now accepted and ready to land.Dec 20 2019, 1:22 PM
This revision was automatically updated to reflect the committed changes.