intel: Reserve less batchbuffer space.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 8 Jun 2013 17:17:22 +0000 (10:17 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 10 Jun 2013 17:58:51 +0000 (10:58 -0700)
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.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/intel/intel_batchbuffer.h

index 39e7d26851d7b6d8d795c7a9aedd4664a04ceb75..1a6d1aa4946416eb93c713d69e0a8d033e3c5695 100644 (file)
@@ -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;