Sorry I did a forward which wrap my line. I resend it but it appears before...
Discard this patch please. On Thu, 28 Mar 2013 18:45:33 +0100 gregory hainaut <gregory.hain...@gmail.com> wrote: > Equivalent to piglit_link_check_status/quiet but with program object > pipeline --- > tests/util/piglit-shader.c | 50 > ++++++++++++++++++++++++++++++++++++++++++++ > tests/util/piglit-shader.h | 2 ++ 2 files changed, 52 insertions(+) > > diff --git a/tests/util/piglit-shader.c b/tests/util/piglit-shader.c > index c67e58a..d7a0266 100644 > --- a/tests/util/piglit-shader.c > +++ b/tests/util/piglit-shader.c > @@ -213,6 +213,45 @@ link_check_status(GLint prog, FILE *output) > return ok; > } > > +/* Same function as above but for program pipeline */ > +static GLboolean > +program_pipeline_check_status(GLuint pipeline, FILE *output) > +{ > + GLchar *info = NULL; > + GLint size; > + GLint ok; > + > + piglit_require_extension("GL_ARB_separate_shader_objects"); > + > + glValidateProgramPipeline(pipeline); > + glGetProgramPipelineiv(pipeline, GL_VALIDATE_STATUS, &ok); > + > + /* Some drivers return a size of 1 for an empty log. This is > the size > + * of a log that contains only a terminating NUL character. > + */ > + glGetProgramPipelineiv(pipeline, GL_INFO_LOG_LENGTH, &size); > + if (size > 1) { > + info = malloc(size); > + glGetProgramPipelineInfoLog(pipeline, size, NULL, > info); > + } > + > + if (!ok) { > + fprintf(output, "Failed to validate the pipeline: > %s\n", > + (info != NULL) ? info : "<empty log>"); > + } > + else if (0 && info != NULL) { > + /* Enable this to get extra linking info. > + * Even if there's no link errors, the info log may > + * have some remarks. > + */ > + printf("Pipeline validataion warning: %s\n", info); > + } > + > + free(info); > + > + return ok; > +} > + > GLboolean > piglit_link_check_status(GLint prog) > { > @@ -234,6 +273,17 @@ piglit_link_check_status_quiet(GLint prog) > return link_check_status(prog, stdout); > } > > +GLboolean > +piglit_program_pipeline_check_status(GLuint pipeline) > +{ > + return program_pipeline_check_status(pipeline, stderr); > +} > + > +GLboolean > +piglit_program_pipeline_check_status_quiet(GLuint pipeline) > +{ > + return program_pipeline_check_status(pipeline, stdout); > +} > > GLint piglit_link_simple_program(GLint vs, GLint fs) > { > diff --git a/tests/util/piglit-shader.h b/tests/util/piglit-shader.h > index 12cf731..0bb7792 100644 > --- a/tests/util/piglit-shader.h > +++ b/tests/util/piglit-shader.h > @@ -34,6 +34,8 @@ GLuint piglit_compile_shader(GLenum target, const > char *filename); GLuint piglit_compile_shader_text(GLenum target, > const char *text); GLboolean piglit_link_check_status(GLint prog); > GLboolean piglit_link_check_status_quiet(GLint prog); > +GLboolean piglit_program_pipeline_check_status(GLuint pipeline); > +GLboolean piglit_program_pipeline_check_status_quiet(GLuint > pipeline); GLint piglit_link_simple_program(GLint vs, GLint fs); > > #if defined(PIGLIT_USE_OPENGL_ES1) _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit