From e9783c3caf9e5f21c264277d35d045cfcc532fc7 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 7 Jan 2014 13:13:01 +0900 Subject: [PATCH] evas - gl-x11 engine - put in guessed blacklist of yinvert extn for intel mesa --- src/modules/evas/engines/gl_x11/evas_engine.c | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index 8bea533d94..dc171f1d96 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -72,7 +72,7 @@ static int initted = 0; static int gl_wins = 0; static int extn_have_buffer_age = 1; #ifdef GL_GLES -static int extn_have_y_inverted = 0; +static int extn_have_y_inverted = 1; #endif typedef void (*_eng_fn) (void); @@ -717,9 +717,28 @@ gl_extn_veto(Render_Engine *re) { extn_have_buffer_age = 0; } - if (strstr(str, "EGL_NOK_texture_from_pixmap")) + if (!strstr(str, "EGL_NOK_texture_from_pixmap")) { - extn_have_y_inverted = 1; + extn_have_y_inverted = 0; + } + else + { + const GLubyte *vendor, *renderer; + + vendor = glGetString(GL_VENDOR); + renderer = glGetString(GL_RENDERER); + // XXX: workaround mesa bug! + // looking for mesa and intel build which is known to + // advertise the EGL_NOK_texture_from_pixmap extension + // but not set it correctly. guessing vendor/renderer + // strings will be like the following: + // OpenGL vendor string: Intel Open Source Technology Center + // OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Desktop + if (((vendor) && (strstr(vendor, "Intel"))) && + ((renderer) && (strstr(renderer, "Mesa"))) && + ((renderer) && (strstr(renderer, "Intel"))) + ) + extn_have_y_inverted = 0; } } else