When parsing a gles2 or gles3 shader try to use a proper GL ES context rather than GL_ARB_ES*_compatibility, but fall back to that if GL ES is not available.
This is usefull because some gles-specific extensions are not advertised in desktop GL contexts, thus piglit would skip tests for such extensions. Note: This patch effectively determines GL ES availability at compile time. Signed-off-by: Fabian Bieler <[email protected]> --- framework/glsl_parser_test.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/framework/glsl_parser_test.py b/framework/glsl_parser_test.py index 9b6ff24..1607f0a 100755 --- a/framework/glsl_parser_test.py +++ b/framework/glsl_parser_test.py @@ -373,6 +373,38 @@ class GLSLParserTest(PlainExecTest): return self.__config @property + def binary(self): + """Binary to execute + + Select desktop GL or GLES binary according to shader version. + Fall back to GL_ES*_compatibility via desktop GL if GLES binary + was not built. + + :return: str + """ + glsl_version_string = self.config.get('config', 'glsl_version') + #the version string should be of the form <major>[.<minor>][ es] + try: + version, es = glsl_version_string.split() + except ValueError: + version = glsl_version_string + es = '' + try: + major, minor = [int(x) for x in version.split('.')] + except ValueError: + major = int(version) + minor = 0 + glsl_version = major * 100 + minor + + gles_binary = path.join(testBinDir, 'glslparsertest_gles2') + gl_binary = path.join(testBinDir, 'glslparsertest') + + if es or glsl_version == 100 or glsl_version == 300: + if path.exists(gles_binary): + return gles_binary + return gl_binary + + @property def command(self): """Command line arguments for 'glslparsertest'. @@ -388,7 +420,7 @@ class GLSLParserTest(PlainExecTest): return None assert(self.config is not None) - command = [path.join(testBinDir, 'glslparsertest'), + command = [self.binary, self.__filepath, self.config.get('config', 'expect_result'), self.config.get('config', 'glsl_version') -- 1.8.3.2 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
