[Piglit] [PATCH 1/2] arb_internalformat_query2: avoid bogus error spam about unsupported pnames
Roland Scheidegger
sroland at vmware.com
Sat Jan 27 01:20:39 UTC 2018
Am 27.01.2018 um 02:00 schrieb sroland at vmware.com:
> From: Roland Scheidegger <sroland at vmware.com>
>
> The test fed the equivalent_pname into the get_unsupported_response()
> function, which led to nonsense logged errors as this only recognizes
> the original pnames.
> Refactor pname/equivalent_pname translation so always the original pnames
> are fed into that function.
> ---
> tests/spec/arb_internalformat_query2/common.c | 34 +++++++++++++++++++++-
> .../internalformat-size-checks.c | 23 ++-------------
> .../internalformat-type-checks.c | 21 ++-----------
> .../arb_transform_feedback_overflow_query/basic.c | 22 ++++++++++++++
Err, that last bit obviously doesn't belong in here. Just ignore it...
Roland
> 4 files changed, 59 insertions(+), 41 deletions(-)
>
> diff --git a/tests/spec/arb_internalformat_query2/common.c b/tests/spec/arb_internalformat_query2/common.c
> index 9fa5fa9d1..5fc4c833b 100644
> --- a/tests/spec/arb_internalformat_query2/common.c
> +++ b/tests/spec/arb_internalformat_query2/common.c
> @@ -496,6 +496,37 @@ create_texture(const GLenum target,
> }
> return result;
> }
> +
> +
> +static GLenum
> +translate_pname(const GLenum pname)
> +{
> + switch (pname) {
> + case GL_INTERNALFORMAT_RED_TYPE:
> + case GL_INTERNALFORMAT_GREEN_TYPE:
> + case GL_INTERNALFORMAT_BLUE_TYPE:
> + case GL_INTERNALFORMAT_ALPHA_TYPE:
> + return pname - GL_INTERNALFORMAT_RED_TYPE + GL_TEXTURE_RED_TYPE;
> + case GL_INTERNALFORMAT_DEPTH_TYPE:
> + /* case GL_INTERNALFORMAT_STENCIL_TYPE, */
> + return GL_TEXTURE_DEPTH_TYPE;
> + case GL_INTERNALFORMAT_RED_SIZE:
> + case GL_INTERNALFORMAT_GREEN_SIZE:
> + case GL_INTERNALFORMAT_BLUE_SIZE:
> + case GL_INTERNALFORMAT_ALPHA_SIZE:
> + return pname - GL_INTERNALFORMAT_RED_SIZE + GL_TEXTURE_RED_SIZE;
> + case GL_INTERNALFORMAT_DEPTH_SIZE:
> + return GL_TEXTURE_DEPTH_SIZE;
> + case GL_INTERNALFORMAT_STENCIL_SIZE:
> + return GL_TEXTURE_STENCIL_SIZE;
> + case GL_INTERNALFORMAT_SHARED_SIZE:
> + return GL_TEXTURE_SHARED_SIZE;
> + default:
> + assert(!"incorrect pname");
> + return 0;
> + }
> +}
> +
> /*
> * Builds a a texture using @target and @internalformat, and compares
> * the result of calling GetTexLevelParameter using @pname with the
> @@ -520,6 +551,7 @@ test_data_check_against_get_tex_level_parameter(test_data *data,
> GLuint tex;
> GLuint buffer;
> GLenum real_target = target;
> + GLenum pname_equiv = translate_pname(pname);
>
> result = create_texture(target, internalformat, &tex, &buffer);
> if (!result)
> @@ -530,7 +562,7 @@ test_data_check_against_get_tex_level_parameter(test_data *data,
> if (target == GL_TEXTURE_CUBE_MAP) {
> real_target = GL_TEXTURE_CUBE_MAP_POSITIVE_X;
> }
> - glGetTexLevelParameteriv(real_target, 0, pname, ¶m);
> + glGetTexLevelParameteriv(real_target, 0, pname_equiv, ¶m);
> if (!piglit_check_gl_error(GL_NO_ERROR)) {
> result = false;
> fprintf(stderr, "\tError calling glGetTexLevelParameter\n");
> diff --git a/tests/spec/arb_internalformat_query2/internalformat-size-checks.c b/tests/spec/arb_internalformat_query2/internalformat-size-checks.c
> index bbccbd6d1..928133133 100644
> --- a/tests/spec/arb_internalformat_query2/internalformat-size-checks.c
> +++ b/tests/spec/arb_internalformat_query2/internalformat-size-checks.c
> @@ -53,24 +53,6 @@ static const GLenum pnames[] = {
> GL_INTERNALFORMAT_SHARED_SIZE,
> };
>
> -/* From spec:
> - *
> - * "For textures this query will return the same information
> - * as querying GetTexLevelParameter{if}v for TEXTURE_*_SIZE
> - * would return."
> - *
> - * The following are the pnames we would need to use when
> - * calling GetTexLevelParameter (so equivalent to pnames)
> - */
> -static const GLenum equivalent_pnames[] = {
> - GL_TEXTURE_RED_SIZE,
> - GL_TEXTURE_GREEN_SIZE,
> - GL_TEXTURE_BLUE_SIZE,
> - GL_TEXTURE_ALPHA_SIZE,
> - GL_TEXTURE_DEPTH_SIZE,
> - GL_TEXTURE_STENCIL_SIZE,
> - GL_TEXTURE_SHARED_SIZE,
> -};
>
> enum piglit_result
> piglit_display(void)
> @@ -102,7 +84,6 @@ static bool
> try_textures_size(const GLenum *targets, unsigned num_targets,
> const GLenum *internalformats, unsigned num_internalformats,
> const GLenum pname,
> - const GLenum equivalent_pname,
> test_data *data)
> {
> bool pass = true;
> @@ -128,7 +109,7 @@ try_textures_size(const GLenum *targets, unsigned num_targets,
> value_test = supported ?
> test_data_check_against_get_tex_level_parameter(data,
> targets[i],
> - equivalent_pname,
> + pname,
> internalformats[j]) :
> test_data_is_unsupported_response(data, pname);
>
> @@ -168,7 +149,7 @@ check_textures_size(void)
>
> pass = try_textures_size(texture_targets, ARRAY_SIZE(texture_targets),
> valid_internalformats, ARRAY_SIZE(valid_internalformats),
> - pnames[i], equivalent_pnames[i],
> + pnames[i],
> data)
> && pass;
> }
> diff --git a/tests/spec/arb_internalformat_query2/internalformat-type-checks.c b/tests/spec/arb_internalformat_query2/internalformat-type-checks.c
> index e2d739424..c6e46f504 100644
> --- a/tests/spec/arb_internalformat_query2/internalformat-type-checks.c
> +++ b/tests/spec/arb_internalformat_query2/internalformat-type-checks.c
> @@ -53,22 +53,6 @@ static const GLenum pnames[] = {
> /* GL_INTERNALFORMAT_STENCIL_TYPE, */
> };
>
> -/* From spec:
> - *
> - * "For textures this query will return the same information
> - * as querying GetTexLevelParameter{if}v for TEXTURE_*_TYPE
> - * would return."
> - *
> - * The following are the pnames we would need to use when
> - * calling GetTexLevelParameter (so equivalent to pnames)
> - */
> -static const GLenum equivalent_pnames[] = {
> - GL_TEXTURE_RED_TYPE,
> - GL_TEXTURE_GREEN_TYPE,
> - GL_TEXTURE_BLUE_TYPE,
> - GL_TEXTURE_ALPHA_TYPE,
> - GL_TEXTURE_DEPTH_TYPE,
> -};
>
> /* From spec:
> *
> @@ -120,7 +104,6 @@ static bool
> try_textures_type(const GLenum *targets, unsigned num_targets,
> const GLenum *internalformats, unsigned num_internalformats,
> const GLenum pname,
> - const GLenum equivalent_pname,
> test_data *data)
> {
> bool pass = true;
> @@ -151,7 +134,7 @@ try_textures_type(const GLenum *targets, unsigned num_targets,
> value_test = value_test &&
> test_data_check_against_get_tex_level_parameter(data,
> targets[i],
> - equivalent_pname,
> + pname,
> internalformats[j]);
> }
>
> @@ -184,7 +167,7 @@ check_textures_type(void)
>
> pass = try_textures_type(texture_targets, ARRAY_SIZE(texture_targets),
> valid_internalformats, ARRAY_SIZE(valid_internalformats),
> - pnames[i], equivalent_pnames[i],
> + pnames[i],
> data)
> && pass;
> }
> diff --git a/tests/spec/arb_transform_feedback_overflow_query/basic.c b/tests/spec/arb_transform_feedback_overflow_query/basic.c
> index 017335c98..3fdbc34ee 100644
> --- a/tests/spec/arb_transform_feedback_overflow_query/basic.c
> +++ b/tests/spec/arb_transform_feedback_overflow_query/basic.c
> @@ -450,6 +450,22 @@ test_no_overflow_stream_any(void *test_data)
> test_data);
> }
>
> +/**
> + * No overflow.
> + * Query for overflow on any stream.
> + * inverted = true, expected overflow: false.
> + */
> +static enum piglit_result
> +test_no_overflow_stream_any_inverted(void *test_data)
> +{
> + GLuint query_type = GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB;
> + int array_sizes[] = { 6, 6 };
> +
> + return run_subtest(2, array_sizes, 0, query_type, true, false,
> + test_data);
> +}
> +
> +
>
> const struct piglit_subtest overflow_query_subtests[] = {
> {
> @@ -555,6 +571,12 @@ const struct piglit_subtest overflow_query_subtests[] = {
> "conditional_render"
> },
> {
> + "arb_transform_feedback_overflow_query-conditional_render_no_overflow_inverted",
> + "arb_transform_feedback_overflow_query-conditional_render_no_overflow_inverted",
> + test_no_overflow_stream_any_inverted,
> + "conditional_render"
> + },
> + {
> "arb_transform_feedback_overflow_query-buffer_object_0",
> "arb_transform_feedback_overflow_query-buffer_object_0",
> test_overflow_stream_0,
>
More information about the Piglit
mailing list