From 6bb7639a0f35317cc8f29034577710c2387ebcd1 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 30 Sep 2019 11:32:19 +0300 Subject: [PATCH] render/gles2: don't unset the current EGL surface when destroying texture When a texture is destroyed between wlr_egl_make_current and wlr_egl_swap_buffers, it resets the current EGL surface to NULL. This makes wlr_egl_swap_buffers fail. If the EGL context is already current, there's no need to reset it. --- render/gles2/texture.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/render/gles2/texture.c b/render/gles2/texture.c index 5f982e2c..992084af 100644 --- a/render/gles2/texture.c +++ b/render/gles2/texture.c @@ -115,7 +115,9 @@ static void gles2_texture_destroy(struct wlr_texture *wlr_texture) { struct wlr_gles2_texture *texture = gles2_get_texture(wlr_texture); - wlr_egl_make_current(texture->egl, EGL_NO_SURFACE, NULL); + if (!wlr_egl_is_current(texture->egl)) { + wlr_egl_make_current(texture->egl, EGL_NO_SURFACE, NULL); + } PUSH_GLES2_DEBUG;