[Mesa-dev] [PATCH] getteximage: Return correct error value when texure object is not found

Nicolai Hähnle nhaehnle at gmail.com
Wed Feb 15 12:56:05 UTC 2017


On 15.02.2017 12:14, Eduardo Lima Mitev wrote:
> glGetTextureSubImage() and glGetCompressedTextureSubImage() are currently
> returning INVALID_OPERATION error when the passed texture argument does not
> correspond to an existing texture object. However, the error should be
> INVALID_VALUE instead. From OpenGL 4.5 spec PDF, section '8.11. Texture
> Queries', page 236:
>
>     "An INVALID_VALUE error is generated if texture is not the name of
>      an existing texture object."
>
> Same wording applies to the compressed version.
>
> The INVALID_OPERATION error is coming from the call to
> _mesa_lookup_texture_err(). This patch uses _mesa_lookup_texture() instead
> and emits the correct error in the caller instead.
>
> Fixes: GL45-CTS.get_texture_sub_image.errors_test

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

> ---
>  src/mesa/main/texgetimage.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
> index b0ced1eac0f..c0c50b0518b 100644
> --- a/src/mesa/main/texgetimage.c
> +++ b/src/mesa/main/texgetimage.c
> @@ -1459,9 +1459,10 @@ _mesa_GetTextureSubImage(GLuint texture, GLint level,
>     GET_CURRENT_CONTEXT(ctx);
>     static const char *caller = "glGetTextureSubImage";
>     struct gl_texture_object *texObj =
> -      _mesa_lookup_texture_err(ctx, texture, caller);
> +      _mesa_lookup_texture(ctx, texture);
>
>     if (!texObj) {
> +      _mesa_error(ctx, GL_INVALID_VALUE, "%s(texture)", caller);
>        return;
>     }
>
> @@ -1775,8 +1776,9 @@ _mesa_GetCompressedTextureSubImage(GLuint texture, GLint level,
>     static const char *caller = "glGetCompressedTextureImage";
>     struct gl_texture_object *texObj;
>
> -   texObj = _mesa_lookup_texture_err(ctx, texture, caller);
> +   texObj = _mesa_lookup_texture(ctx, texture);
>     if (!texObj) {
> +      _mesa_error(ctx, GL_INVALID_VALUE, "%s(texture)", caller);
>        return;
>     }
>
>



More information about the mesa-dev mailing list