Fix crash when using kwin on windowed mode
Summary: Used to get: `kwin_wayland: kwin/composite.cpp:646: void KWin::Compositor::aboutToSwapBuffers(): Assertion "!m_bufferSwapPending' failed."` Test Plan: Ran `kwin_wayland --socket dave --output-count 2 konsole` Reviewers: #kwin, zzag Reviewed By: #kwin, zzag Subscribers: zzag, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D20056
This commit is contained in:
parent
c795f1389b
commit
2e1880b85a
2 changed files with 6 additions and 1 deletions
|
@ -289,7 +289,10 @@ void EglWaylandBackend::present()
|
|||
void EglWaylandBackend::presentOnSurface(EglWaylandOutput *output)
|
||||
{
|
||||
output->m_waylandOutput->surface()->setupFrameCallback();
|
||||
Compositor::self()->aboutToSwapBuffers();
|
||||
if (!m_swapping) {
|
||||
m_swapping = true;
|
||||
Compositor::self()->aboutToSwapBuffers();
|
||||
}
|
||||
|
||||
if (supportsBufferAge()) {
|
||||
eglSwapBuffers(eglDisplay(), output->m_eglSurface);
|
||||
|
@ -321,6 +324,7 @@ QRegion EglWaylandBackend::prepareRenderingFrame()
|
|||
{
|
||||
eglWaitNative(EGL_CORE_NATIVE_ENGINE);
|
||||
startRenderTimer();
|
||||
m_swapping = false;
|
||||
return QRegion();
|
||||
}
|
||||
|
||||
|
|
|
@ -109,6 +109,7 @@ private:
|
|||
WaylandBackend *m_backend;
|
||||
QVector<EglWaylandOutput*> m_outputs;
|
||||
bool m_havePlatformBase;
|
||||
bool m_swapping = false;
|
||||
friend class EglWaylandTexture;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue