glsl: Add glsl_parser_state::has_atomic_counters helper
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 28 Apr 2015 20:15:46 +0000 (13:15 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 4 May 2015 20:49:58 +0000 (13:49 -0700)
v2: Change GL version from 400 to 420.  Noticed by Tapani and Ilia.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
src/glsl/builtin_functions.cpp
src/glsl/builtin_types.cpp
src/glsl/builtin_variables.cpp
src/glsl/glsl_parser.yy
src/glsl/glsl_parser_extras.h

index 524b8d6e8b9a4a7ec33080159daa6db873400534..5ce811289d12a1bd6c8666411453f4c8f0137605 100644 (file)
@@ -359,7 +359,7 @@ tex3d_lod(const _mesa_glsl_parse_state *state)
 static bool
 shader_atomic_counters(const _mesa_glsl_parse_state *state)
 {
-   return state->ARB_shader_atomic_counters_enable;
+   return state->has_atomic_counters();
 }
 
 static bool
index fef86df28f74c2db6ca2d1152b3b88837f3025a5..d92e2eb3007af18b3e0d7e0c44edfe82a76c4a3e 100644 (file)
@@ -372,7 +372,7 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
       add_type(symbols, glsl_type::uimage2DMSArray_type);
    }
 
-   if (state->ARB_shader_atomic_counters_enable) {
+   if (state->has_atomic_counters()) {
       add_type(symbols, glsl_type::atomic_uint_type);
    }
 
index 21e7331c767491e3737453204fe36dc7805c3695..9d0b27209e77c7c33d73cb65b760ee518c4283e7 100644 (file)
@@ -653,7 +653,7 @@ builtin_variable_generator::generate_constants()
       add_const("gl_MaxTextureCoords", state->Const.MaxTextureCoords);
    }
 
-   if (state->ARB_shader_atomic_counters_enable) {
+   if (state->has_atomic_counters()) {
       add_const("gl_MaxVertexAtomicCounters",
                 state->Const.MaxVertexAtomicCounters);
       add_const("gl_MaxGeometryAtomicCounters",
index a3ba3f6d0ff95a15a6656595e2f0496b9eefa75b..3ce9e103f205fe46fdeab0564c83e54a121a6731 100644 (file)
@@ -1425,13 +1425,13 @@ layout_qualifier_id:
       }
 
       if ((state->ARB_shading_language_420pack_enable ||
-           state->ARB_shader_atomic_counters_enable) &&
+           state->has_atomic_counters()) &&
           match_layout_qualifier("binding", $1, state) == 0) {
          $$.flags.q.explicit_binding = 1;
          $$.binding = $3;
       }
 
-      if (state->ARB_shader_atomic_counters_enable &&
+      if (state->has_atomic_counters() &&
           match_layout_qualifier("offset", $1, state) == 0) {
          $$.flags.q.explicit_offset = 1;
          $$.offset = $3;
index 3c47aab7b3621f27ce2f7684ac09e6edec80d448..51f2bf5e000e862a841897ed11d6b985f4c7a301 100644 (file)
@@ -186,6 +186,11 @@ struct _mesa_glsl_parse_state {
       return true;
    }
 
+   bool has_atomic_counters() const
+   {
+      return ARB_shader_atomic_counters_enable || is_version(420, 0);
+   }
+
    bool has_explicit_attrib_stream() const
    {
       return ARB_gpu_shader5_enable || is_version(400, 0);