i965: Un-virtualize brw_finish_batch().
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 15 Oct 2013 22:55:42 +0000 (15:55 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 17 Oct 2013 21:27:03 +0000 (14:27 -0700)
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>
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_vtbl.c
src/mesa/drivers/dri/i965/intel_batchbuffer.c

index 721d35410a69c18215596278197047ff6fc93c7f..ace4bd0162425800233cc8d8155a4ff8de32fd56 100644 (file)
@@ -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,
index ea156a82b13f155f3ce0b1f7c7ecfe49c28c3892..0f7671bd929bcdd4d59de50d6e0ec4ba3f70b1fb 100644 (file)
@@ -90,27 +90,6 @@ brw_destroy_context(struct brw_context *brw)
    drm_intel_gem_context_destroy(brw->hw_ctx);
 }
 
-/**
- * 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
  */
@@ -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);
index 77f3ada0f6820968a67a21b2a878a39b9559d4a1..20a6d83cb414a1e6cc152c8d54bf9b1aa4531b8a 100644 (file)
@@ -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);