summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2012-04-13 21:20:18 +0200
committerMarek Olšák <maraeo@gmail.com>2012-04-18 16:19:39 +0200
commit462dcf617303a507a1b000f52abbfa3fe695bb95 (patch)
treea9e5a0aa0fba4e9336911feb598a9f806e9aa32c
parent5db9cedeafe98c5ac094fc32f7b4d275c273b867 (diff)
gallium/u_blit: don't release vertex buffer at end of frame / in glFlush
There's no reason to do that. The buffer being used for rendering is always mapped as unsynchronized.
-rw-r--r--src/gallium/auxiliary/util/u_blit.c17
-rw-r--r--src/gallium/auxiliary/util/u_blit.h5
-rw-r--r--src/mesa/state_tracker/st_cb_flush.c1
3 files changed, 4 insertions, 19 deletions
diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c
index 1279733881a..e5b97f720ab 100644
--- a/src/gallium/auxiliary/util/u_blit.c
+++ b/src/gallium/auxiliary/util/u_blit.c
@@ -232,8 +232,10 @@ get_next_slot( struct blit_state *ctx )
{
const unsigned max_slots = 4096 / sizeof ctx->vertices;
- if (ctx->vbuf_slot >= max_slots)
- util_blit_flush( ctx );
+ if (ctx->vbuf_slot >= max_slots) {
+ pipe_resource_reference(&ctx->vbuf, NULL);
+ ctx->vbuf_slot = 0;
+ }
if (!ctx->vbuf) {
ctx->vbuf = pipe_buffer_create(ctx->pipe->screen,
@@ -674,17 +676,6 @@ util_blit_pixels(struct blit_state *ctx,
}
-/* Release vertex buffer at end of frame to avoid synchronous
- * rendering.
- */
-void util_blit_flush( struct blit_state *ctx )
-{
- pipe_resource_reference(&ctx->vbuf, NULL);
- ctx->vbuf_slot = 0;
-}
-
-
-
/**
* Copy pixel block from src texture to dst surface.
* The sampler view's first_level field indicates the source
diff --git a/src/gallium/auxiliary/util/u_blit.h b/src/gallium/auxiliary/util/u_blit.h
index 3009e25eca3..810d01b0486 100644
--- a/src/gallium/auxiliary/util/u_blit.h
+++ b/src/gallium/auxiliary/util/u_blit.h
@@ -86,11 +86,6 @@ util_blit_pixels_tex(struct blit_state *ctx,
int dstX1, int dstY1,
float z, uint filter);
-/* Call at end of frame to avoid synchronous rendering.
- */
-extern void
-util_blit_flush( struct blit_state *ctx );
-
#ifdef __cplusplus
}
#endif
diff --git a/src/mesa/state_tracker/st_cb_flush.c b/src/mesa/state_tracker/st_cb_flush.c
index 724bc1971b4..4cde84a8e5b 100644
--- a/src/mesa/state_tracker/st_cb_flush.c
+++ b/src/mesa/state_tracker/st_cb_flush.c
@@ -85,7 +85,6 @@ void st_flush( struct st_context *st,
* successive frames:
*/
st_flush_bitmap(st);
- util_blit_flush(st->blit);
util_gen_mipmap_flush(st->gen_mipmap);
st->pipe->flush( st->pipe, fence );