From 633c959faeae5099fd095f27da7b954e4a36254b Mon Sep 17 00:00:00 2001 From: Eduardo Lima Mitev Date: Wed, 15 Feb 2017 12:14:40 +0100 Subject: [PATCH] getteximage: Return correct error value when texure object is not found MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- 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 b0ced1e..c0c50b0 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; } -- 2.7.4