On 11/05/2015 01:33 PM, Tapani Pälli wrote:
From: Iago Toral Quiroga <ito...@igalia.com>

The GLSL ES spec specifies default precision qualifiers for certain types,
so populate the symbol table with these.

Notice that the desktop GLSL spec also indicates defaults for some types
but this is not really useful since precision qualifiers are completely
ignored in desktop GLSL.

v2: simplify and add samplerExternalOES, specified by
     OES_EGL_image_external (Tapani)
---
  src/glsl/glsl_parser.yy | 11 +++++++++++
  1 file changed, 11 insertions(+)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 4636435..4bef345 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -312,6 +312,17 @@ translation_unit:
     {
        delete state->symbols;
        state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
+      if (state->es_shader) {
+         if (state->stage == MESA_SHADER_FRAGMENT) {
+            state->symbols->add_default_precision_qualifier("int", 
ast_precision_medium);
+         } else {
+            state->symbols->add_default_precision_qualifier("float", 
ast_precision_high);
+            state->symbols->add_default_precision_qualifier("int", 
ast_precision_high);
+         }
+         state->symbols->add_default_precision_qualifier("sampler2D", 
ast_precision_low);
+         state->symbols->add_default_precision_qualifier("samplerExternalOES", 
ast_precision_low);
+         state->symbols->add_default_precision_qualifier("samplerCube", 
ast_precision_low);

I missed atomic_uint here, will fix and send new version.

+      }
        _mesa_glsl_initialize_types(state);
     }
     ;

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to