st/mesa: improved is_interleaved_arrays() checking
authorBrian Paul <brianp@vmware.com>
Mon, 13 Jun 2011 23:34:20 +0000 (17:34 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 14 Jun 2011 23:19:53 +0000 (17:19 -0600)
commitee231b30a804438c89da7987d4546f14e0d9179a
tree1645c7e838d4583bba87211c9dae7c7406ead3c6
parent24a760e9cb7a1c905e36135534d4a9c6e93c3f2a
st/mesa: improved is_interleaved_arrays() checking

Check that the difference in array pointers/offsets from the 0th
array are less than the stride, for both VBOs and user-space arrays.
Previously, we were only doing this for the later.

This tightens up the interleaved array test and fixes a problem with
the llvmpipe driver where we were creating way too many vertex fetch
variants only because the pipe_vertex_element::src_offset values were
changing frequently.  This change results in a 5x speed-up for one of
the viewperf tests.

Also, clean up the function to make it easier to understand.
src/mesa/state_tracker/st_draw.c