i965: Un-virtualize brw_new_batch().
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 15 Oct 2013 23:00:16 +0000 (16:00 -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 ace4bd0162425800233cc8d8155a4ff8de32fd56..81fc1b9d5fc23b9f7a60d02cf1c8fbdb386f10fb 100644 (file)
@@ -923,7 +923,6 @@ struct brw_context
    struct
    {
       void (*destroy) (struct brw_context * brw);
-      void (*new_batch) (struct brw_context * brw);
 
       void (*update_texture_surface)(struct gl_context *ctx,
                                      unsigned unit,
index 0f7671bd929bcdd4d59de50d6e0ec4ba3f70b1fb..d78af8b34961fddc6462a5a55b84b8fa41dd91b3 100644 (file)
@@ -90,50 +90,8 @@ brw_destroy_context(struct brw_context *brw)
    drm_intel_gem_context_destroy(brw->hw_ctx);
 }
 
-/**
- * called from intelFlushBatchLocked
- */
-static void
-brw_new_batch(struct brw_context *brw)
-{
-   /* If the kernel supports hardware contexts, then most hardware state is
-    * preserved between batches; we only need to re-emit state that is required
-    * to be in every batch.  Otherwise we need to re-emit all the state that
-    * would otherwise be stored in the context (which for all intents and
-    * purposes means everything).
-    */
-   if (brw->hw_ctx == NULL)
-      brw->state.dirty.brw |= BRW_NEW_CONTEXT;
-
-   brw->state.dirty.brw |= BRW_NEW_BATCH;
-
-   /* Assume that the last command before the start of our batch was a
-    * primitive, for safety.
-    */
-   brw->batch.need_workaround_flush = true;
-
-   brw->state_batch_count = 0;
-
-   brw->ib.type = -1;
-
-   /* Mark that the current program cache BO has been used by the GPU.
-    * It will be reallocated if we need to put new programs in for the
-    * next batch.
-    */
-   brw->cache.bo_used_by_gpu = true;
-
-   /* We need to periodically reap the shader time results, because rollover
-    * happens every few seconds.  We also want to see results every once in a
-    * while, because many programs won't cleanly destroy our context, so the
-    * end-of-run printout may not happen.
-    */
-   if (INTEL_DEBUG & DEBUG_SHADER_TIME)
-      brw_collect_and_report_shader_time(brw);
-}
-
 void brwInitVtbl( struct brw_context *brw )
 {
-   brw->vtbl.new_batch = brw_new_batch;
    brw->vtbl.destroy = brw_destroy_context;
 
    assert(brw->gen >= 4);
index 20a6d83cb414a1e6cc152c8d54bf9b1aa4531b8a..6d1ae7974261eadc04f55083e3b170442891015b 100644 (file)
@@ -172,6 +172,47 @@ do_batch_dump(struct brw_context *brw)
    }
 }
 
+/**
+ * Called when starting a new batch buffer.
+ */
+static void
+brw_new_batch(struct brw_context *brw)
+{
+   /* If the kernel supports hardware contexts, then most hardware state is
+    * preserved between batches; we only need to re-emit state that is required
+    * to be in every batch.  Otherwise we need to re-emit all the state that
+    * would otherwise be stored in the context (which for all intents and
+    * purposes means everything).
+    */
+   if (brw->hw_ctx == NULL)
+      brw->state.dirty.brw |= BRW_NEW_CONTEXT;
+
+   brw->state.dirty.brw |= BRW_NEW_BATCH;
+
+   /* Assume that the last command before the start of our batch was a
+    * primitive, for safety.
+    */
+   brw->batch.need_workaround_flush = true;
+
+   brw->state_batch_count = 0;
+
+   brw->ib.type = -1;
+
+   /* Mark that the current program cache BO has been used by the GPU.
+    * It will be reallocated if we need to put new programs in for the
+    * next batch.
+    */
+   brw->cache.bo_used_by_gpu = true;
+
+   /* We need to periodically reap the shader time results, because rollover
+    * happens every few seconds.  We also want to see results every once in a
+    * while, because many programs won't cleanly destroy our context, so the
+    * end-of-run printout may not happen.
+    */
+   if (INTEL_DEBUG & DEBUG_SHADER_TIME)
+      brw_collect_and_report_shader_time(brw);
+}
+
 /**
  * Called from intel_batchbuffer_flush before emitting MI_BATCHBUFFER_END and
  * sending it off.
@@ -245,7 +286,7 @@ do_flush_locked(struct brw_context *brw)
       fprintf(stderr, "intel_do_flush_locked failed: %s\n", strerror(-ret));
       exit(1);
    }
-   brw->vtbl.new_batch(brw);
+   brw_new_batch(brw);
 
    return ret;
 }