diff --git a/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp b/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp index 99cea0c56e..b404dac578 100644 --- a/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp +++ b/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp @@ -104,13 +104,15 @@ void AbstractEglBackend::teardown() void AbstractEglBackend::cleanup() { - cleanupGL(); - doneCurrent(); - eglDestroyContext(m_display, m_context); cleanupSurfaces(); - eglReleaseThread(); - kwinApp()->platform()->setSceneEglContext(EGL_NO_CONTEXT); - kwinApp()->platform()->setSceneEglConfig(nullptr); + if (isPrimary()) { + cleanupGL(); + doneCurrent(); + eglDestroyContext(m_display, m_context); + eglReleaseThread(); + kwinApp()->platform()->setSceneEglContext(EGL_NO_CONTEXT); + kwinApp()->platform()->setSceneEglConfig(nullptr); + } } void AbstractEglBackend::cleanupSurfaces()