summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_draw_upload.c
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2006-10-13 11:21:55 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2006-10-13 11:21:55 +0000
commita2c50b0f4ad16855cf8a2ff2ab4029342f4297dd (patch)
treeee65d1d23c303094d5acd713337a75e762ce6bc4 /src/mesa/drivers/dri/i965/brw_draw_upload.c
parentfd6341e57494e80f02aaf69461a7169e9048c39f (diff)
Upload of interleaved arrays currently assumes that position is the
first element in the interleaved group. Add a test to catch cases where this isn't true and use per-array uploads instead. Fixes compiz glitches on x64.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_draw_upload.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw_upload.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index 8c6b5a6d2c..cde0aa6481 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -435,6 +435,7 @@ GLboolean brw_upload_vertices( struct brw_context *brw,
ptr = input->glarray->Ptr;
}
else if (interleave != input->glarray->StrideB ||
+ (const char *)input->glarray->Ptr - (const char *)ptr < 0 ||
(const char *)input->glarray->Ptr - (const char *)ptr > interleave) {
interleave = 0;
}