diff options
author | Eduardo Lima Mitev <[email protected]> | 2017-02-15 12:14:40 +0100 |
---|---|---|
committer | Eduardo Lima Mitev <[email protected]> | 2017-02-15 19:37:21 +0100 |
commit | 633c959faeae5099fd095f27da7b954e4a36254b (patch) | |
tree | b3999bac71b89f825bee15c2bee64573a35ff9b0 /src/mesa | |
parent | a9a517f5300abaa677615aed0f34177c3ca5cde0 (diff) |
getteximage: Return correct error value when texure object is not found
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.
Fixes: GL45-CTS.get_texture_sub_image.errors_test
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/texgetimage.c | 6 |
1 files 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; } |