[plasma/kwin/Plasma/6.6] src/backends/drm: backends/drm: release the scanout buffer of virtual layers in beginFrame
Xaver Hugl <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit b5be7a6a81eceb33b603d6500d7435bf4e96bdbd by Xaver Hugl. Committed on 22/07/2026 at 12:55. Pushed by zamundaaa into branch 'Plasma/6.6'. backends/drm: release the scanout buffer of virtual layers in beginFrame Otherwise we just keep the client buffer until the next scanout cycle, which is quite broken. BUG: 523353 (cherry picked from commit 05df3e5199ec6f18386456df51d1675eed66da09) Co-authored-by: Xaver Hugl <[email protected]> M +2 -1 src/backends/drm/drm_virtual_egl_layer.cpp https://invent.kde.org/plasma/kwin/-/commit/b5be7a6a81eceb33b603d6500d7435bf4e96bdbd diff --git a/src/backends/drm/drm_virtual_egl_layer.cpp b/src/backends/drm/drm_virtual_egl_layer.cpp index 7d7cf4e99b5..4e2ac286b9d 100644 --- a/src/backends/drm/drm_virtual_egl_layer.cpp +++ b/src/backends/drm/drm_virtual_egl_layer.cpp @@ -38,7 +38,8 @@ VirtualEglGbmLayer::~VirtualEglGbmLayer() std::optional<OutputLayerBeginFrameInfo> VirtualEglGbmLayer::doBeginFrame() { - // gbm surface + m_scanoutBuffer.reset(); + if (doesGbmSwapchainFit(m_gbmSwapchain.get())) { m_oldGbmSwapchain.reset(); m_oldDamageJournal.clear();