gallium: avoid mapping same vertex buffer in subsequent frames
authorKeith Whitwell <keith@tungstengraphics.com>
Fri, 12 Dec 2008 16:46:34 +0000 (16:46 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Fri, 12 Dec 2008 16:57:39 +0000 (16:57 +0000)
commitd2c2e9316d043ab584794a3524f22776deb4c777
tree1d6045093cd7c935ceb26a3afb6c57b177c0ac62
parenteb20e2984e51e632ef1a51620db7aca3eb89dafa
gallium: avoid mapping same vertex buffer in subsequent frames

Quite a few util modules were maintaining a single vertex buffer over multiple
frames, and potentially reusing it in subsequent frames.  Unfortunately that
would force us into syncrhonous rendering as the buffer manager would be
forced to wait for the previous rendering to complete prior to allowing the
map.

This resolves that issue, but requires the state tracker to issue a few new
flush() calls at the end of each frame.
16 files changed:
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blit.h
src/gallium/auxiliary/util/u_draw_quad.c
src/gallium/auxiliary/util/u_draw_quad.h
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_gen_mipmap.h
src/mesa/state_tracker/st_cb_accum.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_bitmap.h
src/mesa/state_tracker/st_cb_clear.c
src/mesa/state_tracker/st_cb_clear.h
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_flush.c
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_context.h