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

Lionel Landwerlin lionel.g.landwerlin at intel.com
Tue Feb 5 11:13:19 UTC 2019


On 05/02/2019 07:52, Sergii Romantsov wrote:
> From: Vadym Shovkoplias <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>

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>
> + */
> +
> +#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(




More information about the Piglit mailing list