[Mesa-dev] [PATCH 2/5] glsl: Ban #undefining __LINE__ and friends on GLES2.

Eric Anholt eric at anholt.net
Tue May 2 17:36:07 UTC 2017


Fixes deqp_gles2 undefine_invalid_object_* failures.
---
 src/compiler/glsl/glcpp/glcpp-parse.y | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y b/src/compiler/glsl/glcpp/glcpp-parse.y
index e113253061f6..5cb2a380605b 100644
--- a/src/compiler/glsl/glcpp/glcpp-parse.y
+++ b/src/compiler/glsl/glcpp/glcpp-parse.y
@@ -284,7 +284,8 @@ control_line_success:
                  *    It is an error to undefine or to redefine a built-in
                  *    (pre-defined) macro name.
                  *
-                 * The GLSL ES 1.00 spec does not contain this text.
+                 * The GLSL ES 1.00 spec does not contain this text, but
+                 * dEQP's preprocess test in GLES2 checks for it.
                  *
                  * Section 3.3 (Preprocessor) of the GLSL 1.30 spec says:
                  *
@@ -296,12 +297,8 @@ control_line_success:
                  * Furthermore, there are desktop OpenGL conformance tests
                  * that expect '#undef __VERSION__' and '#undef
                  * GL_core_profile' to work.
-                 *
-                 * Only disallow #undef of pre-defined macros on GLSL ES >=
-                 * 3.00 shaders.
                  */
 		if (parser->is_gles &&
-                    parser->version >= 300 &&
                     (strcmp("__LINE__", $3) == 0
                      || strcmp("__FILE__", $3) == 0
                      || strcmp("__VERSION__", $3) == 0
-- 
2.11.0



More information about the mesa-dev mailing list