summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEduardo Lima Mitev <[email protected]>2017-02-15 12:14:40 +0100
committerEduardo Lima Mitev <[email protected]>2017-02-15 19:37:21 +0100
commit633c959faeae5099fd095f27da7b954e4a36254b (patch)
treeb3999bac71b89f825bee15c2bee64573a35ff9b0
parenta9a517f5300abaa677615aed0f34177c3ca5cde0 (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]>
-rw-r--r--src/mesa/main/texgetimage.c6
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;
}