summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2013-10-15 15:55:42 -0700
committerKenneth Graunke <kenneth@whitecape.org>2013-10-17 14:27:03 -0700
commit6613f346acc54a161046ee77e4a017c3e3d1a99f (patch)
tree5ba50e2eb70b63d9c689967fe31aacafd70f2536
parente2d1eaa32a83204646bcccc029fdd31dbaee6d5e (diff)
i965: Un-virtualize brw_finish_batch().
Since the i915/i965 split, there's only one implementation of this virtual function. We may as well just call it directly. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h1
-rw-r--r--src/mesa/drivers/dri/i965/brw_vtbl.c22
-rw-r--r--src/mesa/drivers/dri/i965/intel_batchbuffer.c24
3 files changed, 22 insertions, 25 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 721d35410a6..ace4bd01624 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -923,7 +923,6 @@ struct brw_context
struct
{
void (*destroy) (struct brw_context * brw);
- void (*finish_batch) (struct brw_context * brw);
void (*new_batch) (struct brw_context * brw);
void (*update_texture_surface)(struct gl_context *ctx,
diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c
index ea156a82b13..0f7671bd929 100644
--- a/src/mesa/drivers/dri/i965/brw_vtbl.c
+++ b/src/mesa/drivers/dri/i965/brw_vtbl.c
@@ -91,27 +91,6 @@ brw_destroy_context(struct brw_context *brw)
}
/**
- * called from intel_batchbuffer_flush and children before sending a
- * batchbuffer off.
- *
- * Note that ALL state emitted here must fit in the reserved space
- * at the end of a batchbuffer. If you add more GPU state, increase
- * the BATCH_RESERVED macro.
- */
-static void
-brw_finish_batch(struct brw_context *brw)
-{
- brw_emit_query_end(brw);
-
- if (brw->curbe.curbe_bo) {
- drm_intel_gem_bo_unmap_gtt(brw->curbe.curbe_bo);
- drm_intel_bo_unreference(brw->curbe.curbe_bo);
- brw->curbe.curbe_bo = NULL;
- }
-}
-
-
-/**
* called from intelFlushBatchLocked
*/
static void
@@ -155,7 +134,6 @@ brw_new_batch(struct brw_context *brw)
void brwInitVtbl( struct brw_context *brw )
{
brw->vtbl.new_batch = brw_new_batch;
- brw->vtbl.finish_batch = brw_finish_batch;
brw->vtbl.destroy = brw_destroy_context;
assert(brw->gen >= 4);
diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
index 77f3ada0f68..20a6d83cb41 100644
--- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c
+++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
@@ -172,6 +172,27 @@ do_batch_dump(struct brw_context *brw)
}
}
+/**
+ * Called from intel_batchbuffer_flush before emitting MI_BATCHBUFFER_END and
+ * sending it off.
+ *
+ * This function can emit state (say, to preserve registers that aren't saved
+ * between batches). All of this state MUST fit in the reserved space at the
+ * end of the batchbuffer. If you add more GPU state, increase the reserved
+ * space by updating the BATCH_RESERVED macro.
+ */
+static void
+brw_finish_batch(struct brw_context *brw)
+{
+ brw_emit_query_end(brw);
+
+ if (brw->curbe.curbe_bo) {
+ drm_intel_gem_bo_unmap_gtt(brw->curbe.curbe_bo);
+ drm_intel_bo_unreference(brw->curbe.curbe_bo);
+ brw->curbe.curbe_bo = NULL;
+ }
+}
+
/* TODO: Push this whole function into bufmgr.
*/
static int
@@ -256,8 +277,7 @@ _intel_batchbuffer_flush(struct brw_context *brw,
brw->batch.reserved_space = 0;
- if (brw->vtbl.finish_batch)
- brw->vtbl.finish_batch(brw);
+ brw_finish_batch(brw);
/* Mark the end of the buffer. */
intel_batchbuffer_emit_dword(brw, MI_BATCH_BUFFER_END);