This allows a shader_test to require something like: INT GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS >= 2
Signed-off-by: Jordan Justen <[email protected]> --- tests/shaders/shader_runner.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c index c193de9..e9a56ff 100644 --- a/tests/shaders/shader_runner.c +++ b/tests/shaders/shader_runner.c @@ -566,7 +566,36 @@ process_requirement(const char *line) * can also require that a particular extension not be supported by * prepending ! to the extension name. */ - if (string_match("GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", line)) { + if (string_match("INT ", line)) { + enum comparison cmp; + const char *enum_name = eat_whitespace(line+3); + const char *int_string; + int comparison_value, gl_int_value; + GLenum int_enum; + + strcpy_to_space(buffer, enum_name); + + int_enum = piglit_get_gl_enum_from_name(buffer); + + int_string = process_comparison(eat_whitespace(enum_name + strlen(buffer)), &cmp); + comparison_value = atoi(int_string); + + glGetIntegerv(int_enum, &gl_int_value); + if (!piglit_check_gl_error(GL_NO_ERROR)) { + fprintf(stderr, "Error reading %s\n", buffer); + piglit_report_result(PIGLIT_FAIL); + } + + if (!compare(comparison_value, gl_int_value, cmp)) { + printf("Test requires %s %s %i. " + "The driver supports %i.\n", + buffer, + comparison_string(cmp), + comparison_value, + gl_int_value); + piglit_report_result(PIGLIT_SKIP); + } + } else if (string_match("GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", line)) { enum comparison cmp; int maxcomp; -- 2.1.4 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
