[Piglit] [PATCH 1/2] shader_runner regression with gles
Tom Gall
tom.gall at linaro.org
Thu Jan 17 15:08:53 PST 2013
Augment the parser that examines the shader_test file passed in
with the test to determine which brand of shader_running to
execute, shader_runner, shader_runner_gles2, etc.
This fixes a bug where GLSL ES if first in the [required] section
could match against GL after which the wrong shader_runner command
would be used due to the wrong gl api being used.
Last if plain GLSL is found, GL is presumed as the api. If GLSL ES
is found, GL ES is presumed as the api.
When dispatch is implemented for GLES all this can go away.
Signed-off-by: Tom Gall <tom.gall at linaro.org>
---
framework/shader_test.py | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/framework/shader_test.py b/framework/shader_test.py
index 335a6c1..4db291b 100755
--- a/framework/shader_test.py
+++ b/framework/shader_test.py
@@ -107,16 +107,18 @@ class ShaderTest(PlainExecTest):
common = {
'cmp' : r'(<|<=|=|>=|>)',
'gl_version' : r'(\d.\d)',
- 'gles2_version' : r'(2.\d\s+es)',
- 'gles3_version' : r'(3.\d\s+es)',
+ 'gles2_version' : r'(2.\d\s)',
+ 'gles3_version' : r'(3.\d\s)',
'comment' : r'(#.*)',
}
cls.__re_require_header = re.compile(r'^\s*\[require\]\s*{comment}?$'.format(**common))
cls.__re_end_require_block = re.compile(r'^\s*\['.format(*common))
cls.__re_gl = re.compile(r'^\s*GL\s*{cmp}\s*{gl_version}\s*{comment}?$'.format(**common))
- cls.__re_gles2 = re.compile(r'^\s*GL\s*{cmp}\s*{gles2_version}\s*{comment}?$'.format(**common))
- cls.__re_gles3 = re.compile(r'^\s*GL\s*{cmp}\s*{gles3_version}\s*{comment}?$'.format(**common))
+ cls.__re_gles2 = re.compile(r'^\s*GL ES\s*{cmp}\s*{gles2_version}\s*{comment}?$'.format(**common))
+ cls.__re_gles3 = re.compile(r'^\s*GL ES\s*{cmp}\s*{gles3_version}\s*{comment}?$'.format(**common))
+ cls.__re_glsl = re.compile(r'^\s*GLSL\s*{cmp}\s*{gl_version}\s*{comment}?$'.format(**common))
+ cls.__re_glsles = re.compile(r'^\s*GLSL ES\s*{cmp}\s*{gl_version}\s*{comment}?$'.format(**common))
cls.__re_gl_unknown = re.compile(r'^\s*GL\s*{cmp}'.format(**common))
def __init__(self, shader_runner_args, run_standalone=False):
@@ -174,15 +176,23 @@ class ShaderTest(PlainExecTest):
else:
continue
elif parse_state == PARSE_FIND_GL_REQUIREMENT:
- if cls.__re_gl.match(line) is not None:
- self.__gl_api = ShaderTest.API_GL
- return
- elif cls.__re_gles2.match(line) is not None:
+ if cls.__re_gles2.match(line) is not None:
self.__gl_api = ShaderTest.API_GLES2
return
elif cls.__re_gles3.match(line) is not None:
self.__gl_api = ShaderTest.API_GLES3
return
+ elif cls.__re_glsles.match(line) is not None:
+ if self.__gl_api is None:
+ self.__gl_api = ShaderTest.API_GLES2
+ return
+ elif cls.__re_glsl.match(line) is not None:
+ if self.__gl_api is None:
+ self.__gl_api = ShaderTest.API_GL
+ return
+ elif cls.__re_gl.match(line) is not None:
+ self.__gl_api = ShaderTest.API_GL
+ return
elif cls.__re_gl_unknown.match(line) is not None:
self.__report_failure("Failed to parse GL requirement: " + line)
self.__gl_api = ShaderTest.API_ERROR
--
1.7.10.4
More information about the Piglit
mailing list