summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@tungstengraphics.com>2007-03-27 21:03:32 +0200
committerRoland Scheidegger <sroland@tungstengraphics.com>2007-03-27 21:03:32 +0200
commitcda32360925d84072a69c6fc0bfebbfe07d90ebc (patch)
tree782a8f5320248a5976a62d5dd91d49aa95484eed
parent9b9e056615bc63d5498feb6999bd4df431170022 (diff)
fix incorrect _MaxElement calculation
The calculation of _MaxElement was wrong if the stride was larger than elementSize, which lead to rejection of every DrawElements call which accessed the maximum element if CheckArrayBounds was enabled.
-rw-r--r--src/mesa/main/varray.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index a048509e51..bf1ad0165e 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -76,7 +76,8 @@ update_array(GLcontext *ctx, struct gl_client_array *array,
*/
if (ctx->Array.ArrayBufferObj->Name)
array->_MaxElement = ((GLsizeiptrARB) ctx->Array.ArrayBufferObj->Size
- - (GLsizeiptrARB) array->Ptr) / array->StrideB;
+ - (GLsizeiptrARB) array->Ptr + array->StrideB
+ - elementSize) / array->StrideB;
else
#endif
array->_MaxElement = 2 * 1000 * 1000 * 1000; /* just a big number */