From: Marek Olšák Date: Fri, 13 Apr 2012 19:20:18 +0000 (+0200) Subject: gallium/u_blit: don't release vertex buffer at end of frame / in glFlush X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=462dcf617303a507a1b000f52abbfa3fe695bb95;p=mesa.git 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. --- 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 );