evas gl: Add an env var to debug GLSL version issues
authorJean-Philippe Andre <jp.andre@samsung.com>
Tue, 30 May 2017 02:11:41 +0000 (11:11 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Tue, 30 May 2017 02:15:41 +0000 (11:15 +0900)
Set this env var to "300 es" to test GLSL 300 ES as shader
version. This is for brokenshakles.

Example:
  export EVAS_GL_GET_PROGRAM_BINARY=0
  export EVAS_GL_SHADER_GLSL_VERSION="300 es"
  export ELM_ACCEL=gl
  elementary_test

src/modules/evas/engines/gl_common/evas_gl_shader.c

index 29c68dd..c09625f 100644 (file)
@@ -423,7 +423,18 @@ evas_gl_common_shader_glsl_get(unsigned int flags, const char *base)
    unsigned int k;
    char *str;
 
-   //eina_strbuf_append_printf(s, "#version 300 es\n");
+   /* This is an env var to use for debugging purposes only */
+   static const char *evas_gl_shader_glsl_version = NULL;
+   if (!evas_gl_shader_glsl_version)
+     {
+        evas_gl_shader_glsl_version = getenv("EVAS_GL_SHADER_GLSL_VERSION");
+        if (!evas_gl_shader_glsl_version) evas_gl_shader_glsl_version = "";
+        else WRN("Using GLSL version tag: '%s'", evas_gl_shader_glsl_version);
+     }
+
+   if (*evas_gl_shader_glsl_version)
+     eina_strbuf_append_printf(s, "#version %s\n", evas_gl_shader_glsl_version);
+
    for (k = 0; k < SHADER_FLAG_COUNT; k++)
      {
         if (flags & (1 << k))