Skip to content
  • Vlad Zahorodnii's avatar
    Don't destroy DecorationRenderer in setup/finish compositing · 9a68cbd9
    Vlad Zahorodnii authored
    Summary:
    Currently, KWin/Wayland crashes when the compositor is reinitialized.
    The reason for that is ShellClient's DecorationRenderer gets destroyed
    when the scene is already gone, thus there is no current OpenGL context.
    Client works around that issue by destroying scene-specific DecorationRender
    in finishCompositing. Such a workaround could be applied to ShellClient
    as well, but it would make code more confusing because DecoratedClientImpl
    also tries to destroy DecorationRenderer.
    
    A better approach would be to notify DecoratedClientImpl that
    compositing is about to be finished, so it can destroy the decoration
    renderer when the scene is still alive. This not only fixes the
    previously mentioned issue in ShellClient, but also makes code a little
    bit tidier.
    
    Test Plan:
    Start Plasma on Wayland session, change any compositor settings (e.g.
    animation speed).
    
    Reviewers: #kwin, davidedmundson
    
    Reviewed By: #kwin, davidedmundson
    
    Subscribers: davidedmundson, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D18921
    9a68cbd9