https://bugs.kde.org/show_bug.cgi?id=509123
--- Comment #13 from Harald Sitter <[email protected]> --- I think we found what's causing this. Nvidia uses the basic rendering loop for various reasons. in basic render mode, cleanup entirely hinges on QSGContext::endSync getting called. this would happen here if (lastDirtyWindow) data.rc->endSync(); except we already see it can maybe not... bool lastDirtyWindow = true; for (auto it = m_windows.cbegin(), end = m_windows.cend(); it != end; ++it) { if (it->updatePending) { lastDirtyWindow = false; break; } } m_windows is a hash of all open windows... including hidden windows... hidden windows never get painted... their updatePending state will never flip... and by extension endSync never gets called the most trivial way to trigger this is to simply open kickoff. when it was opened once it will remain around as a hidden window and block memory cleanup. that also explains why it looked like a restarted plasmashell doesn't leak memory - it only starts when (e.g.) kickoff got used once. -- You are receiving this mail because: You are watching all bug changes.
