Diffusion KWin 9a68cbd9b110

Don't destroy DecorationRenderer in setup/finish compositing

Authored by zzag on Feb 20 2019, 1:09 PM.

Description

Don't destroy DecorationRenderer in setup/finish compositing

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

Details

Committed
zzagFeb 20 2019, 1:09 PM
Reviewer
KWin
Differential Revision
D18921: Don't destroy DecorationRenderer in setup/finish compositing
Parents
R108:0f514e94a50d: Update version number for 5.15.1 GIT_SILENT
Branches
Unknown
Tags
Unknown