glsl: disable ARB_texture_cube_map_array_enable keywords for glsl es
authorTapani Pälli <tapani.palli@intel.com>
Fri, 26 Jul 2013 07:21:56 +0000 (10:21 +0300)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 26 Jul 2013 17:05:20 +0000 (10:05 -0700)
Patch fixes a crash with Webgl 'shader-with-non-reserved-words'
conformance test by ignoring desktop extension keywords on GLSL ES.

v2: fix reserved and allowed desktop glsl versions (Chris)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64087
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/glsl_lexer.ll

index dbc8154e499597c8caee0d439c4b28e8c02595a3..145119c2c7223086b655bd5c85f2f421c62bba41 100644 (file)
@@ -324,30 +324,11 @@ sampler2DMSArray   KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multi
 isampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMSARRAY);
 usampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, USAMPLER2DMSARRAY);
 
-samplerCubeArray       {
-                         if (yyextra->ARB_texture_cube_map_array_enable)
-                            return SAMPLERCUBEARRAY;
-                         else
-                            return IDENTIFIER;
-               }
-isamplerCubeArray      {
-                         if (yyextra->ARB_texture_cube_map_array_enable)
-                            return ISAMPLERCUBEARRAY;
-                         else
-                            return IDENTIFIER;
-               }
-usamplerCubeArray      {
-                         if (yyextra->ARB_texture_cube_map_array_enable)
-                            return USAMPLERCUBEARRAY;
-                         else
-                            return IDENTIFIER;
-               }
-samplerCubeArrayShadow {
-                         if (yyextra->ARB_texture_cube_map_array_enable)
-                            return SAMPLERCUBEARRAYSHADOW;
-                         else
-                            return IDENTIFIER;
-               }
+   /* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
+samplerCubeArray   KEYWORD_WITH_ALT(400, 0, 400, 0, yyextra->ARB_texture_cube_map_array_enable, SAMPLERCUBEARRAY);
+isamplerCubeArray KEYWORD_WITH_ALT(400, 0, 400, 0, yyextra->ARB_texture_cube_map_array_enable, ISAMPLERCUBEARRAY);
+usamplerCubeArray KEYWORD_WITH_ALT(400, 0, 400, 0, yyextra->ARB_texture_cube_map_array_enable, USAMPLERCUBEARRAY);
+samplerCubeArrayShadow   KEYWORD_WITH_ALT(400, 0, 400, 0, yyextra->ARB_texture_cube_map_array_enable, SAMPLERCUBEARRAYSHADOW);
 
 samplerExternalOES             {
                          if (yyextra->OES_EGL_image_external_enable)