[Piglit] [PATCH v2] fbo-blit-check-limits: New test

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Feb 6 10:46:44 UTC 2019


Thanks Sergii,

That was the explanation I was looking for :)
I think that should be part of the commit message.

You have a patch for mesa as well?

Thanks,

-Lionel

On 06/02/2019 10:25, Sergii Romantsov wrote:
> Hello, Lionel. Thanks for looking on that.
>
> Will try to explain:
> Assume that a size of framebuffer is 160*160
> We have a read-buffer and write-buffer.
> In general: reading of pixels of any region-size and writing them into 
> region-size that greater or equal to 160 should give us the same 
> results (whole area of write-buffer should be filled by color of 
> read-buffer). That is satisfied except we are using some big 
> pixel-values (dstX1, dstY1) starting from 0x7ffffff.
> I haven't found any restrictions in minimum/maximum values for 
> parameters (dstX0, dstY0) and (dstX1, dstY1), they are integers so 
> looks like they could be any valid integer.
>
> Test shows that for big dest-region a draw performed incorrectly.
> Correct blit of 160*160 region to dest (0xffffff, 0xffffff): 
> read160_to0xffffff.png
> Incorrect blit of 160*160 region to dest (0x7fffffff, 0x7fffffff): 
> read160_to0x7fffffff.png
> Incorrect blit of INT_MAX*INT_MAX region to dest (INT_MAX, INT_MAX): 
> readIntMax_toIntMax.png
>
> On Tue, Feb 5, 2019 at 1:13 PM Lionel Landwerlin 
> <lionel.g.landwerlin at intel.com <mailto:lionel.g.landwerlin at intel.com>> 
> wrote:
>
>     On 05/02/2019 07:52, Sergii Romantsov wrote:
>     > From: Vadym Shovkoplias <vadim.shovkoplias at gmail.com
>     <mailto:vadim.shovkoplias at gmail.com>>
>     >
>     > This test checks max possible blit buffers sizes
>     >
>     > v2: copyright updated
>     >
>     > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108088
>     > Signed-off-by: Vadym Shovkoplias
>     <vadym.shovkoplias at globallogic.com
>     <mailto:vadym.shovkoplias at globallogic.com>>
>
>     Hi Sergii,
>
>     The bug opened about does not give any description about what is
>     incorrect in the current implementations or what is being tested
>     in the
>     spec.
>
>     The only paragraph I could find in the spec related to this is :
>     "
>     The actual region written to the draw framebuffer is limited to the
>     intersection of
>     the destination buffers being written, which may include multiple
>     draw
>     buffers,
>     the depth buffer, and/or the stencil buffer depending on mask.
>     Whether
>     or not the
>     source or destination regions are altered due to these limits, the
>     scaling and offset
>     applied to pixels being transferred is performed as though no such
>     limits were
>     present.
>     "
>
>     I'm struggling to understand whether the "intersection" is related to
>     dimensions or the attachments.
>     Could give more context?
>
>     Thanks,
>
>     -Lionel
>
>
>     > ---
>     >   tests/fbo/CMakeLists.gl.txt       |  1 +
>     >   tests/fbo/fbo-blit-check-limits.c | 85
>     +++++++++++++++++++++++++++++++++++++++
>     >   tests/opengl.py                   |  1 +
>     >   3 files changed, 87 insertions(+)
>     >   create mode 100644 tests/fbo/fbo-blit-check-limits.c
>     >
>     > diff --git a/tests/fbo/CMakeLists.gl.txt
>     b/tests/fbo/CMakeLists.gl.txt
>     > index 1a1a607..e2c7b3a 100644
>     > --- a/tests/fbo/CMakeLists.gl.txt
>     > +++ b/tests/fbo/CMakeLists.gl.txt
>     > @@ -91,6 +91,7 @@ piglit_add_executable (fbo-storage-formats
>     fbo-storage-formats.c)
>     >   piglit_add_executable (fbo-storage-completeness
>     fbo-storage-completeness.c)
>     >   piglit_add_executable (fbo-sys-blit fbo-sys-blit.c)
>     >   piglit_add_executable (fbo-sys-sub-blit fbo-sys-sub-blit.c)
>     > +piglit_add_executable (fbo-blit-check-limits
>     fbo-blit-check-limits.c)
>     >   piglit_add_executable (fbo-tex-rgbx fbo-tex-rgbx.c)
>     >   piglit_add_executable (fbo-pbo-readpixels-small
>     fbo-pbo-readpixels-small.c)
>     >   piglit_add_executable (fbo-copyteximage fbo-copyteximage.c)
>     > diff --git a/tests/fbo/fbo-blit-check-limits.c
>     b/tests/fbo/fbo-blit-check-limits.c
>     > new file mode 100644
>     > index 0000000..92f54df
>     > --- /dev/null
>     > +++ b/tests/fbo/fbo-blit-check-limits.c
>     > @@ -0,0 +1,85 @@
>     > +/*
>     > + * Copyright (C) 2018 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.
>     > + *
>     > + */
>     > +
>     > +/** @file fbo-blit-check-limits.c
>     > + *
>     > + * Test FBO blits with MAX possible buffer sizes
>     > + * Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108088
>     > + *
>     > + * \author Vadym Shovkoplias <vadym.shovkoplias at globallogic.com
>     <mailto:vadym.shovkoplias at globallogic.com>>
>     > + */
>     > +
>     > +#include "piglit-util-gl.h"
>     > +
>     > +PIGLIT_GL_TEST_CONFIG_BEGIN
>     > +
>     > +     config.supports_gl_compat_version = 10;
>     > +
>     > +     config.window_visual = PIGLIT_GL_VISUAL_DOUBLE |
>     PIGLIT_GL_VISUAL_RGB;
>     > +     config.requires_displayed_window = true;
>     > +     config.khr_no_error_support = PIGLIT_NO_ERRORS;
>     > +
>     > +PIGLIT_GL_TEST_CONFIG_END
>     > +
>     > +enum piglit_result piglit_display(void)
>     > +{
>     > +     const float green[] = {0.0f, 1.0f, 0.0f};
>     > +     int w = piglit_width;
>     > +     int h = piglit_height;
>     > +     bool success = 1;
>     > +
>     > +     glDrawBuffer(GL_BACK);
>     > +     /* back buffer green */
>     > +     glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
>     > +     glClear(GL_COLOR_BUFFER_BIT);
>     > +
>     > +        glDrawBuffer(GL_FRONT);
>     > +     /* front buffer red */
>     > +     glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
>     > +     glClear(GL_COLOR_BUFFER_BIT);
>     > +
>     > +     glReadBuffer(GL_BACK);
>     > +
>     > +     glBlitFramebufferEXT(INT_MIN, INT_MIN, INT_MAX, INT_MAX,
>     > +                          INT_MIN, INT_MIN, INT_MAX, INT_MAX,
>     > +                          GL_COLOR_BUFFER_BIT, GL_NEAREST);
>     > +
>     > +     glReadBuffer(GL_FRONT);
>     > +
>     > +     /* the corners should be green */
>     > +     success &= piglit_probe_pixel_rgb(0, 0, green);
>     > +     success &= piglit_probe_pixel_rgb(w - 1, 0, green);
>     > +     success &= piglit_probe_pixel_rgb(0, h - 1, green);
>     > +     success &= piglit_probe_pixel_rgb(w - 1, h - 1, green);
>     > +
>     > +     glFlush();
>     > +
>     > +     return success ? PIGLIT_PASS : PIGLIT_FAIL;
>     > +}
>     > +
>     > +void piglit_init(int argc, char **argv)
>     > +{
>     > +  piglit_require_extension("GL_EXT_framebuffer_object");
>     > +  piglit_require_extension("GL_EXT_framebuffer_blit");
>     > +}
>     > diff --git a/tests/opengl.py b/tests/opengl.py
>     > index af68560..0be2980 100644
>     > --- a/tests/opengl.py
>     > +++ b/tests/opengl.py
>     > @@ -2780,6 +2780,7 @@ with profile.test_list.group_manager(
>     >       g(['fbo-readdrawpix'], run_concurrent=False)
>     >       g(['fbo-sys-blit'], run_concurrent=False)
>     >       g(['fbo-sys-sub-blit'], run_concurrent=False)
>     > +    g(['fbo-blit-check-limits'], run_concurrent=False)
>     >       g(['fbo-generatemipmap-versus-READ_FRAMEBUFFER'])
>     >
>     >   with profile.test_list.group_manager(
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20190206/fea31f07/attachment.html>


More information about the Piglit mailing list