Re: [Piglit] [PATCH 2/2] Add test to verify the functionality of polygon stipple with multisample FBO
On 12 June 2012 12:42, Anuj Phogat anuj.pho...@gmail.com wrote: Test assumes that MSAA accuracy test already passes. Signed-off-by: Anuj Phogat anuj.pho...@gmail.com My comments on the previous patch apply to this one as well. Assuming they are addressed, Reviewed-by: Paul Berry stereotype...@gmail.com --- tests/all.tests|6 + .../ext_framebuffer_multisample/CMakeLists.gl.txt |1 + .../polygon-stipple.cpp| 271 3 files changed, 278 insertions(+), 0 deletions(-) create mode 100644 tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp diff --git a/tests/all.tests b/tests/all.tests index 10c5351..bb9bd00 100644 --- a/tests/all.tests +++ b/tests/all.tests @@ -1385,6 +1385,12 @@ for num_samples in (2, 4, 8, 16, 32): test_name) ext_framebuffer_multisample[test_name] = PlainExecTest(executable) +for num_samples in (2, 4, 8, 16, 32): +test_name = ' '.join(['polygon-stipple', str(num_samples)]) +executable = 'ext_framebuffer_multisample-{0} -auto'.format( +test_name) +ext_framebuffer_multisample[test_name] = PlainExecTest(executable) + ext_framebuffer_object = Group() spec['EXT_framebuffer_object'] = ext_framebuffer_object add_fbo_stencil_tests(ext_framebuffer_object, 'GL_STENCIL_INDEX1') diff --git a/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt b/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt index 68fed48..78abd5b 100644 --- a/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt +++ b/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt @@ -23,6 +23,7 @@ piglit_add_executable (ext_framebuffer_multisample-negative-mismatched-samples n piglit_add_executable (ext_framebuffer_multisample-negative-readpixels negative-readpixels.c) piglit_add_executable (ext_framebuffer_multisample-point-smooth common.cpp point-smooth.cpp) piglit_add_executable (ext_framebuffer_multisample-polygon-smooth common.cpp polygon-smooth.cpp) +piglit_add_executable (ext_framebuffer_multisample-polygon-stipple common.cpp polygon-stipple.cpp) piglit_add_executable (ext_framebuffer_multisample-renderbuffer-samples renderbuffer-samples.c) piglit_add_executable (ext_framebuffer_multisample-renderbufferstorage-samples renderbufferstorage-samples.c) piglit_add_executable (ext_framebuffer_multisample-samples samples.c) diff --git a/tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp b/tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp new file mode 100644 index 000..c9368a3 --- /dev/null +++ b/tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp @@ -0,0 +1,271 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include common.h + +/** + * \file polygon-stipple.cpp + * + * This test case just verifies the functionality of polygon stipple in + * multisample FBO and assumes that MSAA accuracy test already passes. + * Polygon stipple is expected to work exactly the same way on multisample + * FBO as it works on a single sample FBO. + * + * This test operates by drawing a test pattern with GL_POLYGON_STIPPLE + * enabled. Test pattern is first drawn in a single sample FBO to generate + * a reference image in right half of default framebuffer. + * + * Draw the same test pattern in multisample buffer with GL_POLYGON_STIPPLE + * enabled. Blit it in to left half of window system framebuffer. + * This is the test image. + * + * Verify the accuracy of polygon stippling in multisample buffer by + * comparing the two halves of default framebuffer. + */ + +int piglit_width = 512; int piglit_height = 256; +int piglit_window_mode = + GLUT_DOUBLE | GLUT_RGBA | GLUT_ALPHA | GLUT_DEPTH; +const int pattern_width
[Piglit] [PATCH 2/2] Add test to verify the functionality of polygon stipple with multisample FBO
Test assumes that MSAA accuracy test already passes. Signed-off-by: Anuj Phogat anuj.pho...@gmail.com --- tests/all.tests|6 + .../ext_framebuffer_multisample/CMakeLists.gl.txt |1 + .../polygon-stipple.cpp| 271 3 files changed, 278 insertions(+), 0 deletions(-) create mode 100644 tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp diff --git a/tests/all.tests b/tests/all.tests index 10c5351..bb9bd00 100644 --- a/tests/all.tests +++ b/tests/all.tests @@ -1385,6 +1385,12 @@ for num_samples in (2, 4, 8, 16, 32): test_name) ext_framebuffer_multisample[test_name] = PlainExecTest(executable) +for num_samples in (2, 4, 8, 16, 32): +test_name = ' '.join(['polygon-stipple', str(num_samples)]) +executable = 'ext_framebuffer_multisample-{0} -auto'.format( +test_name) +ext_framebuffer_multisample[test_name] = PlainExecTest(executable) + ext_framebuffer_object = Group() spec['EXT_framebuffer_object'] = ext_framebuffer_object add_fbo_stencil_tests(ext_framebuffer_object, 'GL_STENCIL_INDEX1') diff --git a/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt b/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt index 68fed48..78abd5b 100644 --- a/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt +++ b/tests/spec/ext_framebuffer_multisample/CMakeLists.gl.txt @@ -23,6 +23,7 @@ piglit_add_executable (ext_framebuffer_multisample-negative-mismatched-samples n piglit_add_executable (ext_framebuffer_multisample-negative-readpixels negative-readpixels.c) piglit_add_executable (ext_framebuffer_multisample-point-smooth common.cpp point-smooth.cpp) piglit_add_executable (ext_framebuffer_multisample-polygon-smooth common.cpp polygon-smooth.cpp) +piglit_add_executable (ext_framebuffer_multisample-polygon-stipple common.cpp polygon-stipple.cpp) piglit_add_executable (ext_framebuffer_multisample-renderbuffer-samples renderbuffer-samples.c) piglit_add_executable (ext_framebuffer_multisample-renderbufferstorage-samples renderbufferstorage-samples.c) piglit_add_executable (ext_framebuffer_multisample-samples samples.c) diff --git a/tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp b/tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp new file mode 100644 index 000..c9368a3 --- /dev/null +++ b/tests/spec/ext_framebuffer_multisample/polygon-stipple.cpp @@ -0,0 +1,271 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include common.h + +/** + * \file polygon-stipple.cpp + * + * This test case just verifies the functionality of polygon stipple in + * multisample FBO and assumes that MSAA accuracy test already passes. + * Polygon stipple is expected to work exactly the same way on multisample + * FBO as it works on a single sample FBO. + * + * This test operates by drawing a test pattern with GL_POLYGON_STIPPLE + * enabled. Test pattern is first drawn in a single sample FBO to generate + * a reference image in right half of default framebuffer. + * + * Draw the same test pattern in multisample buffer with GL_POLYGON_STIPPLE + * enabled. Blit it in to left half of window system framebuffer. + * This is the test image. + * + * Verify the accuracy of polygon stippling in multisample buffer by + * comparing the two halves of default framebuffer. + */ + +int piglit_width = 512; int piglit_height = 256; +int piglit_window_mode = + GLUT_DOUBLE | GLUT_RGBA | GLUT_ALPHA | GLUT_DEPTH; +const int pattern_width = 256; const int pattern_height = 256; + +static Fbo ms_fbo, resolve_fbo; +static GLint num_samples; +static GLbitfield buffer_to_test; + +static const float bg_color[4] = + {0.0, 0.0, 1.0, 1.0}; + +static const float color[4][4] = { + /* Red */ + {1.0, 0.0, 0.0, 1.0}, + /* Green */ +