From a7f38e7fbdb83d938b2dc9dc790be982f9ec7da6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 7 Aug 2018 17:18:40 -0400 Subject: [PATCH] glsl: add `unsigned int` type for EXT_GPU_shader4 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Timothy Arceri Reviewed-by: Ian Romanick Tested-by: Dieter Nützel Reviewed-by: Eric Anholt --- src/compiler/glsl/glsl_lexer.ll | 2 +- src/compiler/glsl/glsl_parser.yy | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/glsl_lexer.ll b/src/compiler/glsl/glsl_lexer.ll index f1426a9c486..d83e700f6fb 100644 --- a/src/compiler/glsl/glsl_lexer.ll +++ b/src/compiler/glsl/glsl_lexer.ll @@ -612,7 +612,7 @@ short KEYWORD(110, 100, 0, 0, SHORT_TOK); double TYPE_WITH_ALT(130, 100, 130, 300, yyextra->ARB_gpu_shader_fp64_enable, glsl_type::double_type); half KEYWORD(110, 100, 0, 0, HALF); fixed KEYWORD(110, 100, 0, 0, FIXED_TOK); -unsigned KEYWORD(110, 100, 0, 0, UNSIGNED); +unsigned KEYWORD_WITH_ALT(110, 100, 0, 0, yyextra->EXT_gpu_shader4_enable, UNSIGNED); input KEYWORD(110, 100, 0, 0, INPUT_TOK); output KEYWORD(110, 100, 0, 0, OUTPUT); hvec2 KEYWORD(110, 100, 0, 0, HVEC2); diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy index b91c24ebe97..9e9b49c8462 100644 --- a/src/compiler/glsl/glsl_parser.yy +++ b/src/compiler/glsl/glsl_parser.yy @@ -2308,7 +2308,16 @@ type_specifier_nonarray: basic_type_specifier_nonarray: VOID_TOK { $$ = glsl_type::void_type; } - | BASIC_TYPE_TOK { $$ = $1; }; + | BASIC_TYPE_TOK { $$ = $1; } + | UNSIGNED BASIC_TYPE_TOK + { + if ($2 == glsl_type::int_type) { + $$ = glsl_type::uint_type; + } else { + _mesa_glsl_error(&@1, state, + "\"unsigned\" is only allowed before \"int\""); + } + } ; precision_qualifier: -- 2.30.2