From 416857833e12d5655d18a626e5698db920aac9a3 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 19 Oct 2016 21:51:50 +0900 Subject: [PATCH] evas: Force shaders pipe flush when using dynamic images (TBM) This prevents a rare issue where an SVG resource would not show up in some circumstance. The case was 100% reproducible but very rare nonetheless. Change-Id: I37939fdcedaef2e6fc573c26939e2238bec267af --- src/modules/evas/engines/gl_common/evas_gl_context.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 1e8c4a1..5f286c6 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -1977,7 +1977,7 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, int yinvert = 0; Shader_Type shd_in = SHD_IMAGE; int tex_target = GL_TEXTURE_2D; - Evas_Native_Surface *ens; + Evas_Native_Surface *ens = NULL; if (tex->im) { if (tex->im->native.data) @@ -2330,6 +2330,9 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, if (!nomul) PUSH_6_COLORS(pn, r, g, b, a); + + if (pt->dyn.img) + shader_array_flush(gc); } void @@ -2718,6 +2721,9 @@ evas_gl_common_context_nv12_push(Evas_Engine_GL_Context *gc, PUSH_MASK(pn, mtex, mx, my, mw, mh, masksam); if (!nomul) PUSH_6_COLORS(pn, r, g, b, a); + + if (tex->pt->dyn.img) + shader_array_flush(gc); } void @@ -3055,7 +3061,7 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, PUSH_MASK(pn, mtex, mx, my, mw, mh, masksam); - if (!flat) + if (!flat || tex->pt->dyn.img) { shader_array_flush(gc); gc->foc = 0; -- 2.7.4