summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2012-04-13 12:34:45 -0700
committerEric Anholt <[email protected]>2012-04-16 11:28:21 -0700
commit56e2f97697846c800b2ce53ad0bed87e3c1a5767 (patch)
tree99768406c57ed9f1bfe479b40f8029c3dc566fe1
parentd91c8edd851839799d8338ecc127ea004d76fcab (diff)
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 <[email protected]>
-rw-r--r--src/glsl/glsl_lexer.ll6
-rw-r--r--src/glsl/glsl_parser.yy10
2 files changed, 14 insertions, 2 deletions
diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
index 936a90726f0..2028d7f4768 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 5753acf3cd1..5ca8740c4ff 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: