summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/pbo.c
diff options
context:
space:
mode:
authorNeil Roberts <[email protected]>2015-09-02 11:29:16 +0100
committerNeil Roberts <[email protected]>2015-09-03 17:00:54 +0100
commitce181aea6cb5353181add7b5aca3c0b196a9b513 (patch)
treead254471ca9c5148d462259c4379652753849f82 /src/mesa/main/pbo.c
parent30e84530a097278c7cf01c0491dba5866510c4c5 (diff)
mesa/pbo: Handle zero width, height or depth when validating access
It's legal to call glTexSubImage with zero values for the width, height or depth. Previously this was breaking the PBO access validation because it tries to work out the last pixel accessed by getting the pixel at height-1 and depth-1 which would end up with bogus values. This was causing GL errors to be generated during the Piglit texsubimage test, although the test was passing anyway. v2: Also check for width == 0. Don't validate the start pointer if any of the dimensions are zero. Reviewed-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/mesa/main/pbo.c')
-rw-r--r--src/mesa/main/pbo.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/main/pbo.c b/src/mesa/main/pbo.c
index 0c160253201..7762324a4ae 100644
--- a/src/mesa/main/pbo.c
+++ b/src/mesa/main/pbo.c
@@ -103,6 +103,12 @@ _mesa_validate_pbo_access(GLuint dimensions,
/* no buffer! */
return GL_FALSE;
+ /* If the size of the image is zero then no pixels are accessed so we
+ * don't need to check anything else.
+ */
+ if (width == 0 || height == 0 || depth == 0)
+ return GL_TRUE;
+
/* get the offset to the first pixel we'll read/write */
start = _mesa_image_offset(dimensions, pack, width, height,
format, type, 0, 0, 0);