[Piglit] [PATCH 5/9] shader_runner: Add 'program binary save restore' command
Jordan Justen
jordan.l.justen at intel.com
Sat Jun 9 05:48:03 UTC 2018
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
---
tests/shaders/shader_runner.c | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 0b449c056..b954520f3 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -583,7 +583,7 @@ compile_and_bind_program(GLenum target, const char *start, int len)
}
static bool
-program_binary_save_restore()
+program_binary_save_restore(bool script_command)
{
GLint binary_length;
void *binary;
@@ -591,12 +591,22 @@ program_binary_save_restore()
GLint ok;
GLuint new_prog;
- if (!use_get_program_binary)
+ if (!script_command && !use_get_program_binary)
return true;
+ if (script_command && gl_num_program_binary_formats == 0)
+ piglit_report_result(PIGLIT_SKIP);
+
glGetProgramiv(prog, GL_LINK_STATUS, &ok);
- if (!ok)
- return true;
+ if (!ok) {
+ if (script_command) {
+ fprintf(stderr, "Can't save/restore program that is "
+ "not linked!\n");
+ piglit_report_result(PIGLIT_FAIL);
+ } else {
+ return true;
+ }
+ }
#ifdef PIGLIT_USE_OPENGL
glGetProgramiv(prog, GL_PROGRAM_BINARY_LENGTH, &binary_length);
@@ -690,7 +700,7 @@ link_sso(GLenum target)
return PIGLIT_FAIL;
}
- if (!program_binary_save_restore())
+ if (!program_binary_save_restore(false))
return PIGLIT_FAIL;
switch (target) {
@@ -1184,7 +1194,7 @@ link_and_use_shaders(void)
glLinkProgram(prog);
if (!sso_in_use) {
- if (!program_binary_save_restore())
+ if (!program_binary_save_restore(false))
return PIGLIT_FAIL;
glGetProgramiv(prog, GL_LINK_STATUS, &ok);
if (ok) {
@@ -3941,6 +3951,8 @@ piglit_display(void)
set_parameter(rest);
} else if (parse_str(line, "patch parameter ", &rest)) {
set_patch_parameter(rest);
+ } else if (parse_str(line, "program binary save restore", &rest)) {
+ program_binary_save_restore(true);
} else if (parse_str(line, "provoking vertex ", &rest)) {
set_provoking_vertex(rest);
} else if (parse_str(line, "link error", &rest)) {
--
2.17.1
More information about the Piglit
mailing list