Mesa (master): i965: Rework brw_new_batch to actually start a new batch.

Kenneth Graunke kwg at kemper.freedesktop.org
Fri Nov 15 19:00:02 UTC 2013


Module: Mesa
Branch: master
Commit: 4ec982ad012a563b7acf9ee8c7fd61140f24ea9d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ec982ad012a563b7acf9ee8c7fd61140f24ea9d

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Oct 15 19:23:53 2013 -0700

i965: Rework brw_new_batch to actually start a new batch.

Previously, brw_new_batch was called just after execbuf, but before
intel_batchbuffer_reset.  Essentially, it prepared for the creation of a
new batch, that wasn't yet available, and which it didn't create.  This
was a bit awkward.

This patch makes brw_new_batch call intel_batchbuffer_reset as the very
first operation.  This means that brw_new_batch actually creates a new
batchbuffer, and thus has it available.  It brings the creation of the
new batchbuffer and BRW_NEW_BATCH flagging together into one place.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/drivers/dri/i965/intel_batchbuffer.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
index 9cdbe9e..fb0b45b 100644
--- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c
+++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
@@ -178,6 +178,9 @@ do_batch_dump(struct brw_context *brw)
 static void
 brw_new_batch(struct brw_context *brw)
 {
+   /* Create a new batchbuffer and reset the associated state: */
+   intel_batchbuffer_reset(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
@@ -286,7 +289,6 @@ do_flush_locked(struct brw_context *brw)
       fprintf(stderr, "intel_do_flush_locked failed: %s\n", strerror(-ret));
       exit(1);
    }
-   brw_new_batch(brw);
 
    return ret;
 }
@@ -339,9 +341,8 @@ _intel_batchbuffer_flush(struct brw_context *brw,
       drm_intel_bo_wait_rendering(brw->batch.bo);
    }
 
-   /* Reset the buffer:
-    */
-   intel_batchbuffer_reset(brw);
+   /* Start a new batch buffer. */
+   brw_new_batch(brw);
 
    return ret;
 }




More information about the mesa-commit mailing list