From 462dcf617303a507a1b000f52abbfa3fe695bb95 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Fri, 13 Apr 2012 21:20:18 +0200 Subject: 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. --- src/gallium/auxiliary/util/u_blit.c | 17 ++++------------- src/gallium/auxiliary/util/u_blit.h | 5 ----- 2 files changed, 4 insertions(+), 18 deletions(-) (limited to 'src/gallium') 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 -- cgit v1.2.3