OSDN Git Service

mesa/st: Remove internal flushes from Mesa state tracker.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 11 May 2010 12:57:11 +0000 (13:57 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Tue, 11 May 2010 13:00:01 +0000 (14:00 +0100)
commitb0427bedde80e3189524651a327235bdfddbc613
treec41db798d6d4bbcbb7e07f20a39f828baa6df8d4
parentd99a7497ed383e0d7872b95f2aa63eff916680ea
mesa/st: Remove internal flushes from Mesa state tracker.

Now that transfers are context operations it is the driver's
responsibility to ensure that transfers happen in order with all other
context operations, so flushes and finishes inside Mesa should be no
longer necessary. The attached patch implements that.

This should proportionate significant improvements for hardware drivers
which are able to stream transfers in the command buffers.

You can use the softpipe/llvmpipe_flush_resource() as reference
implementation of the worst case scenario, where the driver is not able
to streamline transfers. But the expectation is that driver
implementators will want to avoid flushing as much as possible.
13 files changed:
src/mesa/state_tracker/st_atom_constbuf.c
src/mesa/state_tracker/st_atom_pixeltransfer.c
src/mesa/state_tracker/st_cb_accum.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_bufferobjects.c
src/mesa/state_tracker/st_cb_clear.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_gen_mipmap.c
src/mesa/state_tracker/st_inlines.h [deleted file]
src/mesa/state_tracker/st_texture.c
src/mesa/state_tracker/st_texture.h