diff --git a/egl_wayland_backend.cpp b/egl_wayland_backend.cpp index 9e436ece77..912ddf97a1 100644 --- a/egl_wayland_backend.cpp +++ b/egl_wayland_backend.cpp @@ -81,6 +81,7 @@ EglWaylandBackend::EglWaylandBackend() EglWaylandBackend::~EglWaylandBackend() { cleanupGL(); + checkGLError("Cleanup"); doneCurrent(); eglDestroyContext(m_display, m_context); eglDestroySurface(m_display, m_surface); diff --git a/eglonxbackend.cpp b/eglonxbackend.cpp index d4205d26a7..f1d73e4ab9 100644 --- a/eglonxbackend.cpp +++ b/eglonxbackend.cpp @@ -51,6 +51,7 @@ EglOnXBackend::~EglOnXBackend() m_overlayWindow->destroy(); } cleanupGL(); + checkGLError("Cleanup"); doneCurrent(); eglDestroyContext(dpy, ctx); eglDestroySurface(dpy, surface); diff --git a/glxbackend.cpp b/glxbackend.cpp index e9cd430fc6..326dfcf0fb 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -61,6 +61,7 @@ GlxBackend::~GlxBackend() // TODO: cleanup in error case // do cleanup after initBuffer() cleanupGL(); + checkGLError("Cleanup"); doneCurrent(); if (ctx) @@ -73,7 +74,6 @@ GlxBackend::~GlxBackend() XDestroyWindow(display(), window); overlayWindow()->destroy(); - checkGLError("Cleanup"); delete m_overlayWindow; } diff --git a/scene_opengl.cpp b/scene_opengl.cpp index c6b141c1ef..5a51a8804d 100644 --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -184,13 +184,12 @@ SceneOpenGL::SceneOpenGL(Workspace* ws, OpenGLBackend *backend) SceneOpenGL::~SceneOpenGL() { + // do cleanup after initBuffer() + SceneOpenGL::EffectFrame::cleanup(); if (init_ok) { // backend might be still needed for a different scene delete m_backend; } - // do cleanup after initBuffer() - SceneOpenGL::EffectFrame::cleanup(); - checkGLError("Cleanup"); } SceneOpenGL *SceneOpenGL::createScene()