st/mesa: optimize constant buffer uploads
authorMarek Olšák <maraeo@gmail.com>
Wed, 29 Dec 2010 02:17:43 +0000 (03:17 +0100)
committerMarek Olšák <maraeo@gmail.com>
Thu, 6 Jan 2011 15:16:29 +0000 (16:16 +0100)
commit58c5e782e351621bde2693fa945d0c90d140b855
treed8a77d03790420d9e89325d74ff2e0dbb57a854c
parent5adcd9c9117b125cab1155c5f3af0bb51ace74b7
st/mesa: optimize constant buffer uploads

The overhead of resource_create, transfer_inline_write, and resource_destroy
to upload constant data is very visible with some apps in sysprof, and
as such should be eliminated.

My approach uses a user buffer to pass a pointer to a driver. This gives
the driver the freedom it needs to take the fast path, which may differ
for each driver.

This commit addresses the same issue as Jakob's one that suballocates out
of a big constant buffer, but it also eliminates the copy to the buffer.
src/mesa/state_tracker/st_atom_constbuf.c
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_draw_feedback.c