From 829e34b305a15a10cc8c40f1f8eb228dbf71a325 Mon Sep 17 00:00:00 2001 From: Alexander Orzechowski Date: Wed, 5 Jul 2023 13:06:37 -0400 Subject: [PATCH] render/gles2: Don't track image in texture We can get it from the buffer --- include/render/gles2.h | 2 -- render/gles2/texture.c | 7 +++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/include/render/gles2.h b/include/render/gles2.h index c868fe05..f61f335d 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -125,8 +125,6 @@ struct wlr_gles2_texture { bool owns_tex; GLuint tex; - EGLImageKHR image; - bool has_alpha; // Only affects target == GL_TEXTURE_2D diff --git a/render/gles2/texture.c b/render/gles2/texture.c index a4522129..49412054 100644 --- a/render/gles2/texture.c +++ b/render/gles2/texture.c @@ -32,7 +32,7 @@ static bool gles2_texture_update_from_buffer(struct wlr_texture *wlr_texture, struct wlr_buffer *buffer, const pixman_region32_t *damage) { struct wlr_gles2_texture *texture = gles2_get_texture(wlr_texture); - if (texture->target != GL_TEXTURE_2D || texture->image != EGL_NO_IMAGE_KHR) { + if (texture->target != GL_TEXTURE_2D || texture->buffer) { return false; } @@ -107,7 +107,7 @@ static bool gles2_texture_update_from_buffer(struct wlr_texture *wlr_texture, } static bool gles2_texture_invalidate(struct wlr_gles2_texture *texture) { - if (texture->image == EGL_NO_IMAGE_KHR) { + if (!texture->buffer) { return false; } if (texture->target == GL_TEXTURE_EXTERNAL_OES) { @@ -123,7 +123,7 @@ static bool gles2_texture_invalidate(struct wlr_gles2_texture *texture) { glBindTexture(texture->target, texture->tex); texture->renderer->procs.glEGLImageTargetTexture2DOES(texture->target, - texture->image); + texture->buffer->image); glBindTexture(texture->target, 0); pop_gles2_debug(texture->renderer); @@ -299,7 +299,6 @@ static struct wlr_texture *gles2_texture_from_dmabuf( texture->buffer = buffer; texture->drm_format = DRM_FORMAT_INVALID; // texture can't be written anyways texture->has_alpha = drm_fmt ? drm_fmt->has_alpha : true; - texture->image = buffer->image; struct wlr_egl_context prev_ctx; wlr_egl_save_context(&prev_ctx);