Hey Juan,

The change from INVALID_OPERATION to INVALID_VALUE isn't because the level 
value is invalid.

The level is valid, however, the level hasn't been explicitly defined so it 
should have a default width and height of 0, making the 8x8 query invalid.

From the OpenGL 4.6 spec, 8.22 Texture State and Proxy State:
"Each initial texture image is null. It has zero width, height, and depth,  
internal format RGBA, or R8 for buffer textures, component sizes set to zero 
and component types set to NONE, the compressed flag set to FALSE, a zero 
compressed size, and the bound buffer object name is zero."

From the GetTextureSubImage errors in 8.11.4:
"An INVALID_VALUE error is generated if xoffset + width is greater than the  
texture’s  width, yoffset + height is  greater  than  the  texture’s  height,  
or zoffset + depth is greater than the texture’s depth."

 - Anthony

________________________________________
From: Piglit <piglit-boun...@lists.freedesktop.org> on behalf of Juan A. Suarez 
Romero <jasua...@igalia.com>
Sent: Wednesday, April 4, 2018 7:12 AM
To: Anthony Pesch; piglit@lists.freedesktop.org
Subject: Re: [Piglit] [PATCH 1/3] arb_get_texture_sub_image: fix expected error 
when querying a level which hasn't been explicitly defined

On Wed, 2018-03-28 at 11:15 -0400, Anthony Pesch wrote:
> From: Anthony Pesch <ape...@nvidia.com>
>
> Change expected error from INVALID_OPERATION to INVALID_VALUE when querying
> a level which hasn't been explicitly defined. This is a valid operation, the
> error set should be due to the requested width and height being greater than
> the default width and height of zero.

I have some doubts with this patch. I've been checking OpenGL 4.5 spec, section
8.11.4 Texture Image Queries, and this is what I found:

"An INVALID_VALUE error is generated if level is negative or larger than the
maximum allowable level."


In this case, level is 4, so we aren't in this case, as the level is not
negative, and it is smaller than the maximum allowable level (15, the
implementation I use).


So really don't know what should be the expected error, INVALID_OPERATION or
INVALID_VALUE.


        J.A.



>  tests/spec/arb_get_texture_sub_image/errors.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/spec/arb_get_texture_sub_image/errors.c 
> b/tests/spec/arb_get_texture_sub_image/errors.c
> index 34fec4a95..57875fa6a 100644
> --- a/tests/spec/arb_get_texture_sub_image/errors.c
> +++ b/tests/spec/arb_get_texture_sub_image/errors.c
> @@ -200,7 +200,7 @@ test_invalid_values(void)
>                            8, 8, 1, /* size */
>                            GL_RGBA, GL_FLOAT,  /* bad enum */
>                            sizeof(buffer), buffer);
> -     if (!piglit_check_gl_error(GL_INVALID_OPERATION))
> +     if (!piglit_check_gl_error(GL_INVALID_VALUE))
>               pass = false;
>
>       /* Test getting invalid offset */
_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit
_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to