https://bugs.kde.org/show_bug.cgi?id=520190
--- Comment #20 from [email protected] --- ok, so rickard - the reporter of this bug - came up with a fix that seems to completely stop the leak for me as well. Apparently the change to PipeWireSourceItem::itemChange() was key. The fix (full diff below) is in kpipewire, i.e. I've been testing with the following change *only* and so far I haven't been able to reproduce. Any GPU mem allocated by plasmashell immediately bounces back using the steps from comment #1. BTW: that's a diff against 6.6.4 and 6.6.5 (tested both), PipeWireSourceItem::releaseResources() seems to have been removed (or moved) in 6.7 and in master. --- kpipewire.vanilla/src/pipewiresourceitem.cpp 2026-05-24 17:30:29.000000000 +0000 +++ kpipewire/src/pipewiresourceitem.cpp 2026-05-24 18:31:13.718215674 +0000 @@ -103,6 +103,7 @@ case ItemVisibleHasChanged: if (!isVisible()) { setReady(false); + releaseResources(); } if (d->m_stream) { d->m_stream->setActive(isVisible()); @@ -122,8 +123,9 @@ void PipeWireSourceItem::releaseResources() { if (window() && (d->m_image || d->m_texture)) { - window()->scheduleRenderJob(new DiscardEglPixmapRunnable(d->m_image, d->m_texture.release()), QQuickWindow::NoStage); + window()->scheduleRenderJob(new DiscardEglPixmapRunnable(d->m_image, d->m_texture.release()), QQuickWindow::AfterSynchronizingStage); d->m_image = EGL_NO_IMAGE_KHR; + window()->update(); } } -- You are receiving this mail because: You are watching all bug changes.
