glcolorconvert: Fix external-oes shader
authorXavier Claessens <xavier.claessens@collabora.com>
Fri, 9 Aug 2019 20:04:03 +0000 (16:04 -0400)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 12 Aug 2019 17:42:01 +0000 (18:42 +0100)
The #extention must come before 'precision highp float;'.

Closes: #650

gst-libs/gst/gl/gstglcolorconvert.c

index 644c233..e73a3e5 100644 (file)
@@ -1960,6 +1960,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);
 
@@ -2036,12 +2040,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;