summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/state_tracker/st_cb_flush.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/mesa/state_tracker/st_cb_flush.c b/src/mesa/state_tracker/st_cb_flush.c
index c7efa40e38..1fc3a20d05 100644
--- a/src/mesa/state_tracker/st_cb_flush.c
+++ b/src/mesa/state_tracker/st_cb_flush.c
@@ -44,26 +44,12 @@
#include "pipe/p_winsys.h"
-void st_flush( struct st_context *st, uint pipeFlushFlags,
- struct pipe_fence_handle **fence )
-{
- FLUSH_VERTICES(st->ctx, 0);
-
- st_flush_bitmap_cache(st);
-
- st->pipe->flush( st->pipe, pipeFlushFlags, fence );
-}
-
-
-static void st_gl_flush( struct st_context *st, uint pipeFlushFlags,
- struct pipe_fence_handle **fence )
+static void
+flush_front_buffer(struct st_context *st, uint pipeFlushFlags,
+ struct pipe_fence_handle **fence)
{
GLframebuffer *fb = st->ctx->DrawBuffer;
- st_flush_bitmap_cache(st);
-
- FLUSH_VERTICES(st->ctx, 0);
-
if (!fb)
return;
@@ -105,6 +91,28 @@ static void st_gl_flush( struct st_context *st, uint pipeFlushFlags,
}
+void st_flush( struct st_context *st, uint pipeFlushFlags,
+ struct pipe_fence_handle **fence )
+{
+ FLUSH_VERTICES(st->ctx, 0);
+
+ st_flush_bitmap_cache(st);
+
+ st->pipe->flush( st->pipe, pipeFlushFlags, fence );
+}
+
+
+static void st_gl_flush( struct st_context *st, uint pipeFlushFlags,
+ struct pipe_fence_handle **fence )
+{
+ st_flush_bitmap_cache(st);
+
+ FLUSH_VERTICES(st->ctx, 0);
+
+ flush_front_buffer(st, pipeFlushFlags, fence);
+}
+
+
/**
* Called via ctx->Driver.Flush()
*/