Mesa (7.10): glsl: Add version_string containing properly formatted GLSL version

Ian Romanick idr at kemper.freedesktop.org
Tue Jan 18 00:28:44 UTC 2011


Module: Mesa
Branch: 7.10
Commit: 27ef4652762a68565162075499b9a8e7467322af
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=27ef4652762a68565162075499b9a8e7467322af

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Jan  7 16:03:48 2011 -0800

glsl: Add version_string containing properly formatted GLSL version
(cherry picked from commit eebdfdfbcf2721349d2c2cafe2d81fd83cade9b9)

---

 src/glsl/glsl_parser.ypp      |   27 +++++++++++++--------------
 src/glsl/glsl_parser_extras.h |    1 +
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/glsl/glsl_parser.ypp b/src/glsl/glsl_parser.ypp
index 41b51a7..124ee18 100644
--- a/src/glsl/glsl_parser.ypp
+++ b/src/glsl/glsl_parser.ypp
@@ -228,6 +228,11 @@ version_statement:
 	   case 130:
 	      /* FINISHME: Check against implementation support versions. */
 	      state->language_version = $2;
+	      state->version_string =
+		 talloc_asprintf(state, "GLSL%s %d.%02d",
+				 state->es_shader ? " ES" : "",
+				 state->language_version / 100,
+				 state->language_version % 100);
 	      break;
 	   default:
 	      _mesa_glsl_error(& @2, state, "Shading language version"
@@ -246,11 +251,8 @@ pragma_statement:
 	{
 	   if (state->language_version < 120) {
 	      _mesa_glsl_warning(& @1, state,
-				 "pragma `invariant(all)' not supported in "
-				 "GLSL%s %d.%02d",
-				 state->es_shader ? " ES" : "",
-				 state->language_version / 100,
-				 state->language_version % 100);
+				 "pragma `invariant(all)' not supported in %s",
+				 state->version_string);
 	   } else {
 	      state->all_invariant = true;
 	   }
@@ -1296,10 +1298,9 @@ precision_qualifier:
 		     if (!state->es_shader && state->language_version < 130)
 			_mesa_glsl_error(& @1, state,
 				         "precision qualifier forbidden "
-					 "in GLSL %d.%d (1.30 or later "
+					 "in %s (1.30 or later "
 					 "required)\n",
-					 state->language_version / 100,
-					 state->language_version % 100);
+					 state->version_string);
 
 		     $$ = ast_precision_high;
 		  }
@@ -1307,10 +1308,9 @@ precision_qualifier:
 		     if (!state->es_shader && state->language_version < 130)
 			_mesa_glsl_error(& @1, state,
 					 "precision qualifier forbidden "
-					 "in GLSL %d.%d (1.30 or later "
+					 "in %s (1.30 or later "
 					 "required)\n",
-					 state->language_version / 100,
-					 state->language_version % 100);
+					 state->version_string);
 
 		     $$ = ast_precision_medium;
 		  }
@@ -1318,10 +1318,9 @@ precision_qualifier:
 		     if (!state->es_shader && state->language_version < 130)
 			_mesa_glsl_error(& @1, state,
 					 "precision qualifier forbidden "
-					 "in GLSL %d.%d (1.30 or later "
+					 "in %s (1.30 or later "
 					 "required)\n",
-					 state->language_version / 100,
-					 state->language_version % 100);
+					 state->version_string);
 
 		     $$ = ast_precision_low;
 		  }
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index 13d3a29..39c10b9 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -69,6 +69,7 @@ struct _mesa_glsl_parse_state {
 
    bool es_shader;
    unsigned language_version;
+   const char *version_string;
    enum _mesa_glsl_parser_targets target;
 
    /**




More information about the mesa-commit mailing list