[Piglit] [PATCH 3/4] util: Print shader source and exit in the compile failure case.

Ian Romanick idr at freedesktop.org
Wed May 29 14:24:35 PDT 2013


On 05/29/2013 10:59 AM, Eric Anholt wrote:
> This util function was printing to stderr anyway (so it's going to be
> a piglit failure according to the summary), and we always want to stop
> and look at the source producing the error.

It's unfortunate that the changes to piglit-shader.c are at the bottom. 
  I thought you were breaking a bunch of tests until I got there.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> ---
>   .../spec/arb_uniform_buffer_object/link-mismatch-blocks.c |  9 ---------
>   tests/spec/arb_uniform_buffer_object/maxblocks.c          | 15 ++-------------
>   .../spec/arb_uniform_buffer_object/maxuniformblocksize.c  |  9 ---------
>   .../spec/arb_uniform_buffer_object/referenced-by-shader.c |  8 --------
>   tests/spec/glsl-1.40/tf-no-position.c                     |  2 --
>   tests/util/piglit-shader.c                                | 11 +++--------
>   6 files changed, 5 insertions(+), 49 deletions(-)
>
> diff --git a/tests/spec/arb_uniform_buffer_object/link-mismatch-blocks.c b/tests/spec/arb_uniform_buffer_object/link-mismatch-blocks.c
> index d62eb4d..75735a8 100644
> --- a/tests/spec/arb_uniform_buffer_object/link-mismatch-blocks.c
> +++ b/tests/spec/arb_uniform_buffer_object/link-mismatch-blocks.c
> @@ -218,16 +218,7 @@ test_link_fail(struct test *test, GLenum a_target, GLenum b_target)
>   	b_source = get_shader(b_target, test->b_header, test->b_body);
>
>   	a = piglit_compile_shader_text(a_target, a_source);
> -	if (!a) {
> -		fprintf(stderr, "Failed to compile shader:\n%s", a_source);
> -		return false;
> -	}
> -
>   	b = piglit_compile_shader_text(b_target, b_source);
> -	if (!b) {
> -		fprintf(stderr, "Failed to compile shader:\n%s", b_source);
> -		return false;
> -	}
>
>   	prog = glCreateProgram();
>   	glAttachShader(prog, a);
> diff --git a/tests/spec/arb_uniform_buffer_object/maxblocks.c b/tests/spec/arb_uniform_buffer_object/maxblocks.c
> index d7f57d3..f846894 100644
> --- a/tests/spec/arb_uniform_buffer_object/maxblocks.c
> +++ b/tests/spec/arb_uniform_buffer_object/maxblocks.c
> @@ -135,22 +135,11 @@ build_shaders(const char *vs_prefix, int vs_blocks,
>   	fs_source = get_shader(GL_FRAGMENT_SHADER, fs_prefix, fs_blocks);
>
>   	vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_source);
> -	if (!vs) {
> -		fprintf(stderr, "Failed to compile VS:\n%s", vs_source);
> -		piglit_report_result(PIGLIT_FAIL);
> -	}
> -
>   	fs = piglit_compile_shader_text(GL_FRAGMENT_SHADER, fs_source);
> -	if (!fs) {
> -		fprintf(stderr, "Failed to compile FS:\n%s", fs_source);
> -		piglit_report_result(PIGLIT_FAIL);
> -	}
>
>   	prog = glCreateProgram();
> -	if (vs)
> -		glAttachShader(prog, vs);
> -	if (fs)
> -		glAttachShader(prog, fs);
> +	glAttachShader(prog, vs);
> +	glAttachShader(prog, fs);
>   	glLinkProgram(prog);
>
>   	if (!piglit_link_check_status_quiet(prog)) {
> diff --git a/tests/spec/arb_uniform_buffer_object/maxuniformblocksize.c b/tests/spec/arb_uniform_buffer_object/maxuniformblocksize.c
> index 171894c..879fa19 100644
> --- a/tests/spec/arb_uniform_buffer_object/maxuniformblocksize.c
> +++ b/tests/spec/arb_uniform_buffer_object/maxuniformblocksize.c
> @@ -156,16 +156,7 @@ piglit_display(void)
>   	}
>
>   	vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_source);
> -	if (!vs) {
> -		fprintf(stderr, "Failed to compile VS:\n%s", vs_source);
> -		piglit_report_result(PIGLIT_FAIL);
> -	}
> -
>   	fs = piglit_compile_shader_text(GL_FRAGMENT_SHADER, fs_source);
> -	if (!fs) {
> -		fprintf(stderr, "Failed to compile FS:\n%s", fs_source);
> -		piglit_report_result(PIGLIT_FAIL);
> -	}
>
>   	prog = glCreateProgram();
>   	glAttachShader(prog, vs);
> diff --git a/tests/spec/arb_uniform_buffer_object/referenced-by-shader.c b/tests/spec/arb_uniform_buffer_object/referenced-by-shader.c
> index 4c66cc2..dad8c77 100644
> --- a/tests/spec/arb_uniform_buffer_object/referenced-by-shader.c
> +++ b/tests/spec/arb_uniform_buffer_object/referenced-by-shader.c
> @@ -73,15 +73,7 @@ piglit_init(int argc, char **argv)
>   	piglit_require_extension("GL_ARB_uniform_buffer_object");
>
>   	fs = piglit_compile_shader_text(GL_FRAGMENT_SHADER, fs_source);
> -	if (!fs) {
> -		fprintf(stderr, "Failed to compile shader:\n%s", fs_source);
> -		piglit_report_result(PIGLIT_FAIL);
> -	}
>   	vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_source);
> -	if (!vs) {
> -		fprintf(stderr, "Failed to compile shader:\n%s", vs_source);
> -		piglit_report_result(PIGLIT_FAIL);
> -	}
>   	prog = piglit_link_simple_program(vs, fs);
>   	if (!prog) {
>   		fprintf(stderr, "Failed to link shaders.\n");
> diff --git a/tests/spec/glsl-1.40/tf-no-position.c b/tests/spec/glsl-1.40/tf-no-position.c
> index 4af8c6e..c666c50 100644
> --- a/tests/spec/glsl-1.40/tf-no-position.c
> +++ b/tests/spec/glsl-1.40/tf-no-position.c
> @@ -76,8 +76,6 @@ void piglit_init(int argc, char **argv)
>   	piglit_require_gl_version(30);
>   	piglit_require_transform_feedback();
>   	vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_source);
> -	if (!vs)
> -		piglit_report_result(PIGLIT_FAIL);
>
>   	prog = glCreateProgram();
>   	glAttachShader(prog, vs);
> diff --git a/tests/util/piglit-shader.c b/tests/util/piglit-shader.c
> index d715bab..8172dfb 100644
> --- a/tests/util/piglit-shader.c
> +++ b/tests/util/piglit-shader.c
> @@ -160,8 +160,9 @@ piglit_compile_shader_text(GLenum target, const char *text)
>   			fprintf(stderr, "Failed to compile %s shader: %s\n",
>   				shader_name(target),
>   				info);
> -			glDeleteShader(prog);
> -			prog = 0;
> +
> +			fprintf(stderr, "source:\n%s", text);
> +			piglit_report_result(PIGLIT_FAIL);
>   		}
>   		else if (0) {
>   			/* Enable this to get extra compilation info.
> @@ -275,16 +276,10 @@ piglit_build_simple_program(const char *vs_source, const char *fs_source)
>
>   	if (vs_source) {
>   		vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_source);
> -		if (!vs) {
> -			piglit_report_result(PIGLIT_FAIL);
> -		}
>   	}
>
>   	if (fs_source) {
>   		fs = piglit_compile_shader_text(GL_FRAGMENT_SHADER, fs_source);
> -		if (!fs) {
> -			piglit_report_result(PIGLIT_FAIL);
> -		}
>   	}
>
>   	prog = piglit_link_simple_program(vs, fs);
>



More information about the Piglit mailing list