vbo: Avoid unnecessary copy to/from current in vertex format upgrade.
authorFrancisco Jerez <currojerez@riseup.net>
Sun, 31 Oct 2010 22:51:30 +0000 (23:51 +0100)
committerFrancisco Jerez <currojerez@riseup.net>
Sat, 6 Nov 2010 00:59:59 +0000 (01:59 +0100)
commit2e64c2209e7f9d5acbcc9d70bf315732f3c403b3
treedb64ff8d903ccee8c3cf0c8b894d5b313cc96fce
parentf1600d3a9725803f0526fb3fd673787307539d27
vbo: Avoid unnecessary copy to/from current in vertex format upgrade.

Rebuilding the vertex format from scratch every time we see a new
vertex attribute is rather costly, new attributes can be appended at
the end avoiding a copy to current and then back again, and the full
attr pointer recalculation.

In the not so likely case of an already existing attribute having its
size increased the old behavior is preserved, this could be optimized
more, not sure if it's worth it.

It's a modest improvement in FlightGear (that game punishes the VBO
module pretty hard in general, framerate goes from some 46 FPS to 50
FPS with the nouveau classic driver).

Signed-off-by: Brian Paul <brianp@vmware.com>
src/mesa/vbo/vbo_exec_api.c
src/mesa/vbo/vbo_exec_draw.c