On 06/12/2012 03:14 PM, Paul Berry wrote: > There are three reasons why the set of rectangles passed to > glBlitFramebuffer() might need to be clipped before performing the > blit: > > 1. If the destination rectangle falls (partly or completely) outside > the bounds of the draw framebuffer. > > 2. If the destination rectangle falls (partly or completely) outside > the scissor rectangle. > > 3. If the source rectangle falls (party or completely) outside the > bounds of the read framebuffer. > > In cases 1 and 2, it is clear from the GL spec that the blit should be > clipped. In case 3, the spec is less clear, however Ian Romanick and > I have received clarification from the ARB that clipping is the > intended behaviour. > > This test verifies that blits are properly clipped in cases 1-3. It > only tests blits in which the source and destination rectangles are > the same size (i.e. no scaling is occurring), since scaling blits are > not allowed for MSAA. > --- > tests/all.tests | 9 + > .../ext_framebuffer_multisample/CMakeLists.gl.txt | 1 + > .../clip-and-scissor-blit.cpp | 398 > ++++++++++++++++++++ > 3 files changed, 408 insertions(+), 0 deletions(-) > create mode 100644 > tests/spec/ext_framebuffer_multisample/clip-and-scissor-blit.cpp
[snip] > + bool pass = true; > + for (int coord = 0; coord < 2; ++coord) { > + for (int clip_low = 0; clip_low < 2; ++clip_low) { > + for (int test_type = 0; test_type < NUM_TEST_TYPES; > + ++test_type) { > + for (int flip_src = 0; flip_src < 2; > + ++flip_src) { > + for (int flip_dst = 0; flip_dst < 2; > + ++flip_dst) { > + pass = do_test(coord, clip_low, > + > test_type_enum(test_type), > + flip_src, > + flip_dst) > + && pass; > + } > + } > + } > + } > + } The embedding goes so deep here that I say screw the 80-column rule. If this were written with long lines, it would be much easier to read. It took a few minutes to figure out how the test works, but once it clicked it was fairly easy to follow. At several points I said to myself, "Oh, this other variation needs testing too. I need to tell Paul", only later to find that you did test that variation. Reviewed-by: Chad Versace <chad.vers...@linux.intel.com> _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit