spacegrapher pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=74e556febc1324a2b36531a1478481e44c594298

commit 74e556febc1324a2b36531a1478481e44c594298
Author: Dongyeon Kim <dy5....@samsung.com>
Date:   Wed Nov 11 17:06:44 2015 +0900

    evas/gl_common: Enable dynamic hint set using tbm surface only when egl 
extension is supported
    
    Summary:
    Dynamic hint set using tbm surface can only be used when 
EGL_TIZEN_image_native_surface
    extension is supported by the driver. So check for both tbm surface and egl 
extension.
---
 src/modules/evas/engines/gl_common/evas_gl_common.h | 1 +
 src/modules/evas/engines/gl_common/evas_gl_image.c  | 4 ++--
 src/modules/evas/engines/gl_x11/evas_engine.c       | 4 ++++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h 
b/src/modules/evas/engines/gl_common/evas_gl_common.h
index 845aa3f..5fd8775 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -124,6 +124,7 @@ struct _Evas_GL_Shared
       Eina_Bool tex_rect : 1;
       Eina_Bool sec_image_map : 1;
       Eina_Bool sec_tbm_surface : 1;
+      Eina_Bool egl_tbm_ext : 1;
       Eina_Bool bin_program : 1;
       Eina_Bool unpack_row_length : 1;
       Eina_Bool etc1 : 1;
diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c 
b/src/modules/evas/engines/gl_common/evas_gl_image.c
index 2d8d936..664b4e4 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_image.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_image.c
@@ -603,8 +603,6 @@ evas_gl_common_image_content_hint_set(Evas_GL_Image *im, 
int hint)
    if (im->content_hint == hint) return;
    im->content_hint = hint;
    if (!im->gc) return;
-   if ((!im->gc->shared->info.sec_image_map)
-       && (!im->gc->shared->info.sec_tbm_surface)) return;
    if (!im->gc->shared->info.bgra) return;
    // does not handle yuv yet.
    // TODO: Check this list of cspaces
@@ -622,6 +620,8 @@ evas_gl_common_image_content_hint_set(Evas_GL_Image *im, 
int hint)
      }
    if (im->content_hint == EVAS_IMAGE_CONTENT_HINT_DYNAMIC)
      {
+        if ((!im->gc->shared->info.sec_image_map) &&
+            ((!im->gc->shared->info.sec_tbm_surface) || 
(!im->gc->shared->info.egl_tbm_ext))) return;
         if (im->cs.data)
           {
              if (!im->cs.no_free) free(im->cs.data);
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 0d12b74..c601a0d 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1453,6 +1453,10 @@ gl_extn_veto(Render_Engine *re)
           {
              glsym_eglSwapBuffersWithDamage = NULL;
           }
+        if (strstr(str, "EGL_TIZEN_image_native_surface"))
+          {
+             eng_get_ob(re)->gl_context->shared->info.egl_tbm_ext = 1;
+          }
      }
    else
      {

-- 


Reply via email to