On 08/06/2014 04:54 PM, Marek Olšák wrote:
From: Marek Olšák <[email protected]>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 <[email protected]> _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
