[Piglit] [PATCH] ext_texture_norm16-render: add more API coverage

Alejandro Piñeiro apinheiro at igalia.com
Tue Jul 24 13:44:18 UTC 2018


Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>


On 23/07/18 14:16, Tapani Pälli wrote:
> Add tests for glRenderbufferStorage and glCopyTexImage2D.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  tests/spec/ext_texture_norm16/render.c | 53 ++++++++++++++++++++++++++++++++--
>  1 file changed, 50 insertions(+), 3 deletions(-)
>
> diff --git a/tests/spec/ext_texture_norm16/render.c b/tests/spec/ext_texture_norm16/render.c
> index a6011e3f7..46cc7c91b 100644
> --- a/tests/spec/ext_texture_norm16/render.c
> +++ b/tests/spec/ext_texture_norm16/render.c
> @@ -173,14 +173,12 @@ generate_data(const struct fmt_test *test)
>  }
>  
>  static GLuint
> -create_texture(const struct fmt_test *test)
> +create_empty_texture()
>  {
>  	GLuint tex;
>  	glGenTextures(1, &tex);
>  	glBindTexture(GL_TEXTURE_2D, tex);
>  
> -	generate_data(test);
> -
>  	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
>  	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
>  	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
> @@ -189,6 +187,25 @@ create_texture(const struct fmt_test *test)
>  	return tex;
>  }
>  
> +static GLuint
> +create_texture(const struct fmt_test *test)
> +{
> +	GLuint tex = create_empty_texture();
> +	generate_data(test);
> +	return tex;
> +}
> +
> +static GLuint
> +create_rbo(const struct fmt_test *test)
> +{
> +	GLuint rbo;
> +	glGenRenderbuffers(1, &rbo);
> +	glBindRenderbuffer(GL_RENDERBUFFER, rbo);
> +	glRenderbufferStorage(GL_RENDERBUFFER, test->iformat, piglit_width,
> +			      piglit_height);
> +	return rbo;
> +}
> +
>  static GLuint
>  create_fbo(const struct fmt_test *test, GLuint *tex)
>  {
> @@ -362,6 +379,21 @@ test_format(const struct fmt_test *test)
>  		return pass;
>  	}
>  
> +	/* Test glRenderbufferStorage. */
> +	GLuint rbo = create_rbo(test);
> +	if (!rbo || !piglit_check_gl_error(GL_NO_ERROR)) {
> +		piglit_report_subtest_result(PIGLIT_FAIL,
> +					     "format 0x%x RBO test",
> +					     test->iformat);
> +		pass &= false;
> +	} else {
> +		piglit_report_subtest_result(PIGLIT_PASS,
> +					     "format 0x%x RBO test",
> +					     test->iformat);
> +	}
> +	glDeleteRenderbuffers(1, &rbo);
> +
> +	/* Create framebuffer object. */
>  	GLuint fbo_tex;
>  	const GLuint fbo = create_fbo(test, &fbo_tex);
>  
> @@ -375,6 +407,21 @@ test_format(const struct fmt_test *test)
>  
>  	render_texture(texture, GL_TEXTURE_2D, fbo);
>  
> +	/* Test glCopyTexImage2D by copying current fbo content to
> +	 * a texture, rendering copy back to fbo and verifying fbo contents.
> +	 */
> +	GLuint tmp_tex = create_empty_texture();
> +	glCopyTexImage2D(GL_TEXTURE_2D, 0, test->iformat, 0, 0, piglit_width,
> +			 piglit_height, 0);
> +
> +	render_texture(tmp_tex, GL_TEXTURE_2D, fbo);
> +
> +	/* If format can be read, verify contents. */
> +	if (test->can_read)
> +		pass &= verify_contents(test);
> +
> +	glDeleteTextures(1, &tmp_tex);
> +
>  	/* If GL_EXT_copy_image is supported then create another
>  	 * texture, copy contents and render result to fbo.
>  	 */



More information about the Piglit mailing list