The following dEQP tests fail on Mesa 17.0: dEQP-GLES2.functional.shaders.preprocessor.definitions.undefine_invalid_object_1_fragment dEQP-GLES2.functional.shaders.preprocessor.definitions.undefine_invalid_object_1_vertex dEQP-GLES2.functional.shaders.preprocessor.definitions.undefine_invalid_object_2_fragment dEQP-GLES2.functional.shaders.preprocessor.definitions.undefine_invalid_object_2_vertex They passed on older Mesa. Specifically, they pass on the Mesa used by ARC++. Android CTS 7.1 requires that these tests pass. However, the tests may be incorrect. Google will eventually need to update ARC++ Mesa, but these failures will prevent us. Ian, how do you want to solve this? The bisected commit is yours. Should... a) Should the fix go upstream, despite the dubiousness of the test? b) Should a bug be filed against dEQP? c) Should Google carry the patch out-of-tree, because you strongly disagree with it? Here is the oneline fix: diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y b/src/compiler/glsl/glcpp/glcpp-parse.y index 17c6b9d053..389870462a 100644 --- a/src/compiler/glsl/glcpp/glcpp-parse.y +++ b/src/compiler/glsl/glcpp/glcpp-parse.y @@ -318,7 +318,6 @@ control_line_success: * 3.00 shaders. */ if (parser->is_gles && - parser->version >= 300 && (strcmp("__LINE__", $3) == 0 || strcmp("__FILE__", $3) == 0 || strcmp("__VERSION__", $3) == 0 The "guilty" commit is: commit 50b49d242d702e4728329cc59f87d929963e7c53 Author: Ian Romanick <ian.d.romanick@intel.com> Date: Tue Aug 9 14:32:24 2016 -0700 glcpp: Only disallow #undef of pre-defined macros on GLSL ES >= 3.00 shaders Section 3.4 (Preprocessor) of the GLSL ES 3.00 spec says: 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. Section 3.3 (Preprocessor) of the GLSL 1.30 spec says: #define and #undef functionality are defined as is standard for C++ preprocessors for macro definitions both with and without macro parameters. At least as far as I can tell GCC allow '#undef __FILE__'. Furthermore, there are desktop OpenGL conformance tests that expect '#undef __VERSION__' and '#undef GL_core_profile' to work. Fixes: GL45-CTS.shaders.preprocessor.definitions.undefine_version_vertex GL45-CTS.shaders.preprocessor.definitions.undefine_version_fragment GL45-CTS.shaders.preprocessor.definitions.undefine_core_profile_vertex GL45-CTS.shaders.preprocessor.definitions.undefine_core_profile_fragment Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com> Cc: mesa-stable@lists.freedesktop.org
By the way, why does Bugzilla add linewraps? Can I turn that off?
The mustpass list that Intel CI runs against limits similar tests to: ES2-CTS.functional.shaders.preprocessor.definitions.undefine_invalid_object_3_vertex ES2-CTS.functional.shaders.preprocessor.definitions.undefine_invalid_object_3_fragment ES2-CTS.functional.shaders.preprocessor.definitions.undefine_invalid_object_4_vertex ES2-CTS.functional.shaders.preprocessor.definitions.undefine_invalid_object_4_fragment For some reason, the tests listed in this bug are not in the mustpass. Chad, do you have any insight as to why they aren't included?
Chad, it looks like these were removed from the mustpass list in: commit d97e5c6b5f740bd2590b370958ace37803193e5d Author: Pyry Haulos <phaulos@google.com> Date: Fri Apr 24 10:58:49 2015 -0700 Update ES2 & EGL mustpass lists based on latest feedback so these tests are not in the mustpass list for Android CTS 7.1, and in fact going all the way back to Android CTS 6.0... So I don't think we care?
Sorry for the noise. My scripts for scraping test lists were buggy. Closing as NOTABUG.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.