X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_cb_flush.c;h=f428e0af9062006ca341c095a68cd4c3ff13d45e;hb=8c347d4e5762b41320a80acf474284b5c096fd0d;hp=35ab00f6d015e42c4928d4aa2a6d3a3545e12f67;hpb=b39bccbd4ed71e9585da4cf5acf7b887b2e90899;p=mesa.git diff --git a/src/mesa/state_tracker/st_cb_flush.c b/src/mesa/state_tracker/st_cb_flush.c index 35ab00f6d01..f428e0af906 100644 --- a/src/mesa/state_tracker/st_cb_flush.c +++ b/src/mesa/state_tracker/st_cb_flush.c @@ -44,7 +44,6 @@ #include "pipe/p_defines.h" #include "pipe/p_screen.h" #include "util/u_gen_mipmap.h" -#include "util/u_blit.h" /** Check if we have a front color buffer and if it's been drawn to. */ @@ -76,20 +75,16 @@ display_front_buffer(struct st_context *st) } -void st_flush( struct st_context *st, uint pipeFlushFlags, - struct pipe_fence_handle **fence ) +void st_flush(struct st_context *st, + struct pipe_fence_handle **fence, + unsigned flags) { + FLUSH_VERTICES(st->ctx, 0); FLUSH_CURRENT(st->ctx, 0); - /* Release any vertex buffers that might potentially be accessed in - * successive frames: - */ - st_flush_bitmap(st); - st_flush_clear(st); - util_blit_flush(st->blit); - util_gen_mipmap_flush(st->gen_mipmap); + st_flush_bitmap_cache(st); - st->pipe->flush( st->pipe, pipeFlushFlags, fence ); + st->pipe->flush(st->pipe, fence, flags); } @@ -100,10 +95,10 @@ void st_finish( struct st_context *st ) { struct pipe_fence_handle *fence = NULL; - st_flush(st, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, &fence); + st_flush(st, &fence, 0); if(fence) { - st->pipe->screen->fence_finish(st->pipe->screen, fence, 0, + st->pipe->screen->fence_finish(st->pipe->screen, fence, PIPE_TIMEOUT_INFINITE); st->pipe->screen->fence_reference(st->pipe->screen, &fence, NULL); } @@ -123,7 +118,7 @@ static void st_glFlush(struct gl_context *ctx) * synchronization issues. Calling finish() here will just hide * problems that need to be fixed elsewhere. */ - st_flush(st, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, NULL); + st_flush(st, NULL, 0); if (is_front_buffer_dirty(st)) { display_front_buffer(st);