D17306: [scenes/opengl] Cleanup cached decoration shadows when suspending compositing

Vlad Zagorodniy <[email protected]>
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <[email protected]>
zzag created this revision.
zzag added a reviewer: KWin.
Herald added a project: KWin.
Herald added a subscriber: kwin.
zzag requested review of this revision.

REVISION SUMMARY
  When suspending compositing, SceneOpenGLShadow cannot cleanup cached
  decoration shadows because the effects handler is already gone.
  
  This sometimes can result in a crash when running kwin_x11 --replace
  (we're hitting an assert statement).
  
  To fix that, let's use the scene instead of the effects handler for
  making the OpenGL context current.

TEST PLAN
  No longer hit the assert statement:
  
    ASSERT: "m_cache.isEmpty()" in file /home/vlad/Workspace/KDE/src/kde/workspace/kwin/plugins/scenes/opengl/scene_opengl.cpp, line 2025
    Application::crashHandler() called with signal 6; recent crashes: 1
    QCoreApplication::applicationFilePath: Please instantiate the QApplication object first
    KCrash: crashing... crashRecursionCounter = 2
    KCrash: Application Name = kwin_x11 path = /home/vlad/Workspace/KDE/usr/bin pid = 5407
    KCrash: Arguments: /home/vlad/Workspace/KDE/usr/bin/kwin_x11 --replace

REPOSITORY
  R108 KWin

BRANCH
  gracefully-cleanup-decoration-shadow-cache

REVISION DETAIL
  https://phabricator.kde.org/D17306

AFFECTED FILES
  plugins/scenes/opengl/scene_opengl.cpp

To: zzag, #kwin
Cc: kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.