Mesa (master): glsl: Mark [iu]sampler{Buffer, 2DRect}as reserved in GLSL 1. 40.

Eric Anholt anholt at kemper.freedesktop.org
Mon Apr 16 20:34:13 UTC 2012


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

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Apr 13 12:34:45 2012 -0700

glsl: Mark [iu]sampler{Buffer,2DRect}as reserved in GLSL 1.40.

The non-integer versions were already reserved in 1.30, but apparently
these were forgotten.

Fixes piglit glsl-1.40/compiler/reserved/

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/glsl/glsl_lexer.ll  |    6 ++++++
 src/glsl/glsl_parser.yy |   10 ++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
index 936a907..2028d7f 100644
--- a/src/glsl/glsl_lexer.ll
+++ b/src/glsl/glsl_lexer.ll
@@ -470,6 +470,12 @@ iimageBuffer	KEYWORD(130, 999, IIMAGEBUFFER);
 uimageBuffer	KEYWORD(130, 999, UIMAGEBUFFER);
 row_major	KEYWORD(130, 999, ROW_MAJOR);
 
+    /* Additional reserved words in GLSL 1.40 */
+isampler2DRect	KEYWORD(140, 140, ISAMPLER2DRECT);
+usampler2DRect	KEYWORD(140, 140, USAMPLER2DRECT);
+isamplerBuffer	KEYWORD(140, 140, ISAMPLERBUFFER);
+usamplerBuffer	KEYWORD(140, 140, USAMPLERBUFFER);
+
 [_a-zA-Z][_a-zA-Z0-9]*	{
 			    struct _mesa_glsl_parse_state *state = yyextra;
 			    void *ctx = state;	
diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 5753acf..5ca8740 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -103,6 +103,8 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
 %token SAMPLER2DARRAYSHADOW ISAMPLER1D ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
 %token ISAMPLER1DARRAY ISAMPLER2DARRAY USAMPLER1D USAMPLER2D USAMPLER3D
 %token USAMPLERCUBE USAMPLER1DARRAY USAMPLER2DARRAY
+%token SAMPLER2DRECT ISAMPLER2DRECT USAMPLER2DRECT SAMPLER2DRECTSHADOW
+%token SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
 %token SAMPLEREXTERNALOES
 %token STRUCT VOID_TOK WHILE
 %token <identifier> IDENTIFIER TYPE_IDENTIFIER NEW_IDENTIFIER
@@ -130,12 +132,12 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
 %token INLINE_TOK NOINLINE VOLATILE PUBLIC_TOK STATIC EXTERN EXTERNAL
 %token LONG_TOK SHORT_TOK DOUBLE_TOK HALF FIXED_TOK UNSIGNED INPUT_TOK OUPTUT
 %token HVEC2 HVEC3 HVEC4 DVEC2 DVEC3 DVEC4 FVEC2 FVEC3 FVEC4
-%token SAMPLER2DRECT SAMPLER3DRECT SAMPLER2DRECTSHADOW
+%token SAMPLER3DRECT
 %token SIZEOF CAST NAMESPACE USING
 
 %token ERROR_TOK
 
-%token COMMON PARTITION ACTIVE SAMPLERBUFFER FILTER
+%token COMMON PARTITION ACTIVE FILTER
 %token  IMAGE1D  IMAGE2D  IMAGE3D  IMAGECUBE  IMAGE1DARRAY  IMAGE2DARRAY
 %token IIMAGE1D IIMAGE2D IIMAGE3D IIMAGECUBE IIMAGE1DARRAY IIMAGE2DARRAY
 %token UIMAGE1D UIMAGE2D UIMAGE3D UIMAGECUBE UIMAGE1DARRAY UIMAGE2DARRAY
@@ -1428,16 +1430,20 @@ basic_type_specifier_nonarray:
 	| SAMPLERBUFFER		{ $$ = "samplerBuffer"; }
 	| ISAMPLER1D		{ $$ = "isampler1D"; }
 	| ISAMPLER2D		{ $$ = "isampler2D"; }
+	| ISAMPLER2DRECT	{ $$ = "isampler2DRect"; }
 	| ISAMPLER3D		{ $$ = "isampler3D"; }
 	| ISAMPLERCUBE		{ $$ = "isamplerCube"; }
 	| ISAMPLER1DARRAY	{ $$ = "isampler1DArray"; }
 	| ISAMPLER2DARRAY	{ $$ = "isampler2DArray"; }
+	| ISAMPLERBUFFER	{ $$ = "isamplerBuffer"; }
 	| USAMPLER1D		{ $$ = "usampler1D"; }
 	| USAMPLER2D		{ $$ = "usampler2D"; }
+	| USAMPLER2DRECT	{ $$ = "usampler2DRect"; }
 	| USAMPLER3D		{ $$ = "usampler3D"; }
 	| USAMPLERCUBE		{ $$ = "usamplerCube"; }
 	| USAMPLER1DARRAY	{ $$ = "usampler1DArray"; }
 	| USAMPLER2DARRAY	{ $$ = "usampler2DArray"; }
+	| USAMPLERBUFFER	{ $$ = "usamplerBuffer"; }
 	;
 
 precision_qualifier:




More information about the mesa-commit mailing list