[Mesa-dev] [PATCH 8/8] intel: Reserve less batchbuffer space.

Kenneth Graunke kenneth at whitecape.org
Sat Jun 8 12:01:23 PDT 2013


Now that Gen6+ relies on hardware contexts, we don't need to record an
occlusion query value at the end of each batch.  That means we no longer
need to reserve space for the absurd number of PIPE_CONTROLs required to
do that on Sandybridge.

See commit 4e087de51ad0e7ba4a7199d3664e1d096f8dc510, which bumped this
up to 60 bytes.  This is not quite a revert, as it uses 24 bytes instead
of 16, and saves the comments.  As far as I can tell, the old value of
16 bytes was just wrong, so we shouldn't go back to that.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/drivers/dri/intel/intel_batchbuffer.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_batchbuffer.h b/src/mesa/drivers/dri/intel/intel_batchbuffer.h
index 39e7d26..1a6d1aa 100644
--- a/src/mesa/drivers/dri/intel/intel_batchbuffer.h
+++ b/src/mesa/drivers/dri/intel/intel_batchbuffer.h
@@ -17,11 +17,10 @@ extern "C" {
  * This includes:
  * - MI_BATCHBUFFER_END (4 bytes)
  * - Optional MI_NOOP for ensuring the batch length is qword aligned (4 bytes)
- * - Any state emitted by vtbl->finish_batch()
- *   - On 965+, this means ending occlusion queries (on Gen6, which has the
- *     most workaround flushes, this can be as much as (4+4+5)*4 = 52 bytes)
+ * - Any state emitted by vtbl->finish_batch():
+ *   - Gen4-5 record ending occlusion query values (4 * 4 = 16 bytes)
  */
-#define BATCH_RESERVED 60
+#define BATCH_RESERVED 24
 
 struct intel_batchbuffer;
 
-- 
1.8.3



More information about the mesa-dev mailing list