vbo: Fix up in-place splitting for non-contiguous/indexed primitives.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 3 Feb 2010 11:18:28 +0000 (03:18 -0800)
committerKeith Whitwell <keithw@vmware.com>
Wed, 3 Feb 2010 11:38:38 +0000 (11:38 +0000)
commitdb0eb3a437fbc88429b2d73444335b61035d824f
treea9fe8047fb81523fe20e4d4a8252bbde5bcc8139
parent9f1ee5a864a3e0ede5aa04d6316e97dc94f01fe8
vbo: Fix up in-place splitting for non-contiguous/indexed primitives.

The in-place splitting code wasn't dealing with index buffers at all
(and it was being called from vbo_split_prims for too big index
buffers, causing some occasional corruption).

Additionally, it wasn't taking into account primitives arrays with
non-contiguous indices (e.g. given prim[0].start = 0 and prim[1].start
= max_verts, it would happily call back the driver with (max_index -
min_index) still greater than max_verts, causing infinite recursion).

It still doesn't handle too large indexed vertex buffers: use
vbo_split_copy for that.
src/mesa/vbo/vbo_split_inplace.c