diff --git a/src/backends/x11/windowed/x11_windowed_egl_backend.cpp b/src/backends/x11/windowed/x11_windowed_egl_backend.cpp index 20f7e45fc3..8cb4501df8 100644 --- a/src/backends/x11/windowed/x11_windowed_egl_backend.cpp +++ b/src/backends/x11/windowed/x11_windowed_egl_backend.cpp @@ -76,6 +76,10 @@ bool X11WindowedEglPrimaryLayer::doEndFrame(const QRegion &renderedRegion, const void X11WindowedEglPrimaryLayer::present() { + if (!m_buffer) { + return; + } + xcb_pixmap_t pixmap = m_output->importBuffer(m_buffer->buffer()); Q_ASSERT(pixmap != XCB_PIXMAP_NONE); @@ -105,6 +109,7 @@ void X11WindowedEglPrimaryLayer::present() EGLNativeFence releaseFence{m_backend->eglDisplayObject()}; m_swapchain->release(m_buffer, releaseFence.fileDescriptor().duplicate()); + m_buffer = nullptr; } std::shared_ptr X11WindowedEglPrimaryLayer::texture() const