[Piglit] [PATCH 3/3] oes_compressed_etc2_texture-miptree: fix the R11 test

Brian Paul brianp at vmware.com
Thu Aug 7 05:55:00 PDT 2014


On 08/06/2014 04:54 PM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> Clearing a buffer with masked channels results in not clearing anything
> in those channels, so there is always random garbage. No wonder that
> the test was always failing. Apparently, i965 ignores the colormask,
> otherwise it wouldn't have been unnoticed.
> ---
>   .../spec/gles-3.0/oes_compressed_etc2_texture-miptree.c  | 16 ++++++++++++++--
>   1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c b/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
> index 0b1d44f..408021d 100644
> --- a/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
> +++ b/tests/spec/gles-3.0/oes_compressed_etc2_texture-miptree.c
> @@ -60,6 +60,8 @@ static GLuint prog;
>   static GLuint compressed_tex;
>   static GLuint decompressed_tex;
>
> +static GLboolean draw_red_only;
> +
>   /**
>    * The \a filename is relative to the current test's source directory.
>    *
> @@ -203,7 +205,7 @@ piglit_init(int argc, char **argv)
>   		 * To workaround this issue use internalFormat = GL_RGBA and
>   		 * mask all the color channels except Red.
>   		 */
> -		glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE);
> +		draw_red_only = GL_TRUE;
>   		compressed_filename =
>   			"waffles-compressed-etc2-r11-64x32-miptree.ktx";
>   		decompressed_filename =
> @@ -241,7 +243,10 @@ piglit_init(int argc, char **argv)
>   	load_texture(compressed_filename, &compressed_tex);
>   	load_texture(decompressed_filename, &decompressed_tex);
>
> -	glClearColor(0.3, 0.5, 1.0, 1.0);
> +	if (draw_red_only)
> +		glClearColor(0.3, 0, 0, 0);
> +	else
> +		glClearColor(0.3, 0.5, 1.0, 1.0);
>
>   	prog = piglit_build_simple_program(vs_source, fs_source);
>   	glUseProgram(prog);
> @@ -290,6 +295,10 @@ piglit_display(void)
>   	glViewport(0, 0, window_width, window_height);
>
>   	glClear(GL_COLOR_BUFFER_BIT);
> +
> +	if (draw_red_only)
> +		glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE);
> +
>   	for (level = 0; level < num_levels; ++level) {
>   		glUniform2f(level_pixel_size_loc,
>   		            (float) level_width,
> @@ -310,6 +319,9 @@ piglit_display(void)
>   		minify(&level_height);
>   	}
>
> +	if (draw_red_only)
> +		glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
> +
>   	pass = piglit_probe_rect_halves_equal_rgba(0, 0, window_width, window_height);
>   	piglit_present_results();
>
>


For the series:  Reviewed-by: Brian Paul <brianp at vmware.com>



More information about the Piglit mailing list