From 6d0aa8f0e96cd5d13d05721f2c45cb53c9ab229d Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Fri, 9 Apr 2021 17:14:24 +0300 Subject: [PATCH] gl-renderer: do not unbind the context on output destroy If we make EGL_NO_CONTEXT current, all following GL calls are no-ops. This will be a problem when gl-renderer introduces gl_renderer_color_transform containing GL textures and needs to destroy them when weston_color_transform is destroyed. Mesa would print the the warning that glDeleteTextures is no-op. To fix this, keep our GL context current when destroying a GL output. In case EGL_KHR_surfaceless_context is not available, we must use dummy_surface. Signed-off-by: Pekka Paalanen --- libweston/renderer-gl/gl-renderer.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index b3611a651..050398fc4 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -3442,8 +3442,7 @@ gl_renderer_output_destroy(struct weston_output *output) gl_fbo_texture_fini(&go->shadow); eglMakeCurrent(gr->egl_display, - EGL_NO_SURFACE, EGL_NO_SURFACE, - EGL_NO_CONTEXT); + gr->dummy_surface, gr->dummy_surface, gr->egl_context); weston_platform_destroy_egl_surface(gr->egl_display, go->egl_surface);