Mesa (master): glsl: Fix up GL_ARB_compute_shader for GLSL ES 3.1

Tapani Pälli tpalli at kemper.freedesktop.org
Wed Aug 19 10:46:13 UTC 2015


Module: Mesa
Branch: master
Commit: 2438e2fe326d7cb9f9d003f6edf77821e41ef22c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2438e2fe326d7cb9f9d003f6edf77821e41ef22c

Author: Marta Lofstedt <marta.lofstedt at intel.com>
Date:   Mon Aug 10 13:04:42 2015 +0200

glsl: Fix up GL_ARB_compute_shader for GLSL ES 3.1

GL_ARB_compute_shader is limited for GLSL version 430.
This enables for GLSL ES version 310.

V2: Updated error string to also include GLSL 3.10

Signed-off-by: Marta Lofstedt <marta.lofstedt at linux.intel.com>
Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/glsl/glsl_parser.yy       |    5 ++---
 src/glsl/glsl_parser_extras.h |    5 +++++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 2b0c8bd..7a4b55c 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1519,11 +1519,10 @@ layout_qualifier_id:
                                 "invalid %s of %d specified",
                                 local_size_qualifiers[i], $3);
                YYERROR;
-            } else if (!state->is_version(430, 0) &&
-                       !state->ARB_compute_shader_enable) {
+            } else if (!state->has_compute_shader()) {
                _mesa_glsl_error(& @3, state,
                                 "%s qualifier requires GLSL 4.30 or "
-                                "ARB_compute_shader",
+                                "GLSL ES 3.10 or ARB_compute_shader",
                                 local_size_qualifiers[i]);
                YYERROR;
             } else {
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index eb325f0..57a7555 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -236,6 +236,11 @@ struct _mesa_glsl_parse_state {
       return ARB_shading_language_420pack_enable || is_version(420, 0);
    }
 
+   bool has_compute_shader() const
+   {
+      return ARB_compute_shader_enable || is_version(430, 310);
+   }
+
    void process_version_directive(YYLTYPE *locp, int version,
                                   const char *ident);
 




More information about the mesa-commit mailing list