summaryrefslogtreecommitdiff
path: root/src/mesa/main
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 /src/mesa/main
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.
Diffstat (limited to 'src/mesa/main')
-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 */