summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/i965/brw_pipe_flush.c
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-11-04 15:25:42 +0000
committerKeith Whitwell <keithw@vmware.com>2009-11-04 15:25:42 +0000
commit9706a83bc959ba8445d0258e47639b44da2238fc (patch)
treecc491c38358191eb05902c6f39da068123e7c10d /src/gallium/drivers/i965/brw_pipe_flush.c
parenta09b3d50975e68c13c0421d770f3865ad2a1257c (diff)
i965g: hook up more pipe_context functions
Diffstat (limited to 'src/gallium/drivers/i965/brw_pipe_flush.c')
-rw-r--r--src/gallium/drivers/i965/brw_pipe_flush.c51
1 files changed, 28 insertions, 23 deletions
diff --git a/src/gallium/drivers/i965/brw_pipe_flush.c b/src/gallium/drivers/i965/brw_pipe_flush.c
index 1b43428760..9b52b56eae 100644
--- a/src/gallium/drivers/i965/brw_pipe_flush.c
+++ b/src/gallium/drivers/i965/brw_pipe_flush.c
@@ -2,50 +2,55 @@
#include "util/u_upload_mgr.h"
#include "brw_context.h"
+#include "brw_batchbuffer.h"
-/**
- * called from brw_batchbuffer_flush and children before sending a
- * batchbuffer off.
+
+/* All batchbuffer flushes must go through this function.
*/
-static void brw_finish_batch(struct brw_context *brw)
+void brw_context_flush( struct brw_context *brw )
{
+ /*
+ *
+ */
brw_emit_query_end(brw);
-}
+ /* Move to the end of the current upload buffer so that we'll force choosing
+ * a new buffer next time.
+ */
+ u_upload_flush( brw->vb.upload_vertex );
+ u_upload_flush( brw->vb.upload_index );
-/**
- * called from intelFlushBatchLocked
- */
-static void brw_new_batch( struct brw_context *brw )
-{
- brw->curbe.need_new_bo = GL_TRUE;
+ _brw_batchbuffer_flush( brw->batch, __FILE__, __LINE__ );
/* Mark all context state as needing to be re-emitted.
* This is probably not as severe as on 915, since almost all of our state
* is just in referenced buffers.
*/
brw->state.dirty.brw |= BRW_NEW_CONTEXT;
-
brw->state.dirty.mesa |= ~0;
brw->state.dirty.brw |= ~0;
brw->state.dirty.cache |= ~0;
- /* Move to the end of the current upload buffer so that we'll force choosing
- * a new buffer next time.
- */
- u_upload_flush( brw->vb.upload_vertex );
- u_upload_flush( brw->vb.upload_index );
+ brw->curbe.need_new_bo = GL_TRUE;
+}
+static void
+brw_flush( struct pipe_context *pipe,
+ unsigned flags,
+ struct pipe_fence_handle **fence )
+{
+ brw_context_flush( brw_context( pipe ) );
+ *fence = NULL;
}
-/* called from intelWaitForIdle() and intelFlush()
- *
- * For now, just flush everything. Could be smarter later.
- */
-static GLuint brw_flush_cmd( void )
+
+void brw_pipe_flush_init( struct brw_context *brw )
{
- return ((MI_FLUSH << 16) | BRW_FLUSH_STATE_CACHE);
+ brw->base.flush = brw_flush;
}
+void brw_pipe_flush_cleanup( struct brw_context *brw )
+{
+}