glcolorconvert: Fix external-oes shader
authorXavier Claessens <xavier.claessens@collabora.com>
Fri, 9 Aug 2019 20:04:03 +0000 (16:04 -0400)
committerXavier Claessens <xclaesse@gmail.com>
Mon, 12 Aug 2019 15:52:17 +0000 (15:52 +0000)
The #extention must come before 'precision highp float;'.

Closes: #650

gst-libs/gst/gl/gstglcolorconvert.c

index 8655651..99b5483 100644 (file)
@@ -2010,6 +2010,10 @@ _create_shader (GstGLColorConvert * convert)
       && info->templ->target != GST_GL_TEXTURE_TARGET_EXTERNAL_OES)
     g_string_append (str, glsl_OES_extension_string);
 
+  g_string_append (str,
+      gst_gl_shader_string_get_highest_precision (convert->context, version,
+          profile));
+
   if (info->templ->uniforms)
     g_string_append (str, info->templ->uniforms);
 
@@ -2086,12 +2090,9 @@ _create_shader (GstGLColorConvert * convert)
       &version, &profile);
   g_free (tmp);
 
-  strings[1] =
-      gst_gl_shader_string_get_highest_precision (convert->context, version,
-      profile);
-  strings[2] = info->frag_prog;
+  strings[1] = info->frag_prog;
   if (!(stage = gst_glsl_stage_new_with_strings (convert->context,
-              GL_FRAGMENT_SHADER, version, profile, 3, strings))) {
+              GL_FRAGMENT_SHADER, version, profile, 2, strings))) {
     GST_ERROR_OBJECT (convert, "Failed to create fragment stage");
     g_free (info->frag_prog);
     info->frag_prog = NULL;