summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texgetimage.c
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2015-07-23 20:18:57 -0400
committerIlia Mirkin <imirkin@alum.mit.edu>2015-07-24 17:09:27 -0400
commitf8059c9f3fdd270370737c9eff369eb6d14caa0b (patch)
tree0e18481d7fa035bc08d654543d7543261b1a2ca7 /src/mesa/main/texgetimage.c
parent56980f107ef64d0a5bfc5d292cc891661e47d0f0 (diff)
downloadexternal_mesa3d-f8059c9f3fdd270370737c9eff369eb6d14caa0b.zip
external_mesa3d-f8059c9f3fdd270370737c9eff369eb6d14caa0b.tar.gz
external_mesa3d-f8059c9f3fdd270370737c9eff369eb6d14caa0b.tar.bz2
mesa: fix error checking for getting zero-sized texture images
Commit 17f714836 (mesa: rearrange texture error checking order) moved the width/height/depth == 0 allowance before checking if the image was there. This was in part due to depth having to be == 1 for 2D images and width having to be == 1 for 1D images. Instead relax the height/depth checks to also accept 0 as valid. With this change, bin/arb_direct_state_access-get-textures starts passing again. Fixes: 17f714836 (mesa: rearrange texture error checking order) Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/mesa/main/texgetimage.c')
-rw-r--r--src/mesa/main/texgetimage.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index cdbd618..c0ccce3 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -928,13 +928,6 @@ dimensions_error_check(struct gl_context *ctx,
const struct gl_texture_image *texImage;
int i;
- if (width == 0 || height == 0 || depth == 0) {
- /* Not an error, but nothing to do. Return 'true' so that the
- * caller simply returns.
- */
- return true;
- }
-
if (xoffset < 0) {
_mesa_error(ctx, GL_INVALID_VALUE, "%s(xoffset = %d)", caller, xoffset);
return true;
@@ -973,7 +966,7 @@ dimensions_error_check(struct gl_context *ctx,
"%s(1D, yoffset = %d)", caller, yoffset);
return true;
}
- if (height != 1) {
+ if (height > 1) {
_mesa_error(ctx, GL_INVALID_VALUE,
"%s(1D, height = %d)", caller, height);
return true;
@@ -987,7 +980,7 @@ dimensions_error_check(struct gl_context *ctx,
"%s(zoffset = %d)", caller, zoffset);
return true;
}
- if (depth != 1) {
+ if (depth > 1) {
_mesa_error(ctx, GL_INVALID_VALUE,
"%s(depth = %d)", caller, depth);
return true;
@@ -1086,6 +1079,13 @@ dimensions_error_check(struct gl_context *ctx,
}
}
+ if (width == 0 || height == 0 || depth == 0) {
+ /* Not an error, but nothing to do. Return 'true' so that the
+ * caller simply returns.
+ */
+ return true;
+ }
+
return false;
}