glsl: Unconditionally define GL_FRAGMENT_PRECISION_HIGH in ES2 shaders.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 17 Nov 2010 20:50:35 +0000 (12:50 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 17 Nov 2010 20:50:35 +0000 (12:50 -0800)
This is really supposed to be defined only if the driver supports highp
in the fragment shader - but all of our current ES2 implementations do.
So, just define it.  In the future, we'll need to add a flag to
gl_context and only define the macro if the flag is set.

"Fixes" freedesktop.org bug #31673.

src/glsl/glcpp/glcpp-parse.y

index b69035a410a6f03051ef03af3f30f9998a7c1903..8475e08f00c9776e505fb8f0b9de76432502deb4 100644 (file)
@@ -320,7 +320,12 @@ control_line:
                if ($2 == 100)
                        add_builtin_define (parser, "GL_ES", 1);
 
-               if ($2 >= 130)
+               /* Currently, all ES2 implementations support highp in the
+                * fragment shader, so we always define this macro in ES2.
+                * If we ever get a driver that doesn't support highp, we'll
+                * need to add a flag to the gl_context and check that here.
+                */
+               if ($2 >= 130 || $2 == 100)
                        add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1);
 
                glcpp_printf(parser->output, "#version %" PRIiMAX, $2);