Upload of interleaved arrays currently assumes that position is the
authorKeith Whitwell <keith@tungstengraphics.com>
Fri, 13 Oct 2006 11:21:55 +0000 (11:21 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Fri, 13 Oct 2006 11:21:55 +0000 (11:21 +0000)
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.

src/mesa/drivers/dri/i965/brw_draw_upload.c

index 8c6b5a6..cde0aa6 100644 (file)
@@ -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;
         }