From 9034d157c00e29124ed171fd4692503730926134 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 5 Sep 2017 15:57:41 -0700 Subject: [PATCH] i965: Make BLORP properly avoid batch wrapping. We need to set brw->no_batch_wrap to actually avoid flushing in the middle of our BLORP operation, and instead grow the batchbuffer. Reviewed-by: Matt Turner Reviewed-by: Chris Wilson --- src/mesa/drivers/dri/i965/genX_blorp_exec.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/mesa/drivers/dri/i965/genX_blorp_exec.c b/src/mesa/drivers/dri/i965/genX_blorp_exec.c index feb87923ccb..5bff7eaff59 100644 --- a/src/mesa/drivers/dri/i965/genX_blorp_exec.c +++ b/src/mesa/drivers/dri/i965/genX_blorp_exec.c @@ -224,9 +224,7 @@ genX(blorp_exec)(struct blorp_batch *batch, retry: intel_batchbuffer_require_space(brw, estimated_max_batch_usage, RENDER_RING); intel_batchbuffer_save_state(brw); - struct brw_bo *saved_bo = brw->batch.bo; - uint32_t saved_used = USED_BATCH(brw->batch); - uint32_t saved_state_used = brw->batch.state_used; + brw->no_batch_wrap = true; #if GEN_GEN == 6 /* Emit workaround flushes when we switch from drawing to blorping. */ @@ -254,17 +252,7 @@ retry: blorp_exec(batch, params); - /* Make sure we didn't wrap the batch unintentionally, and make sure we - * reserved enough space that a wrap will never happen. - */ - assert(brw->batch.bo == saved_bo); - assert((USED_BATCH(brw->batch) - saved_used) * 4 + - (brw->batch.state_used - saved_state_used) < - estimated_max_batch_usage); - /* Shut up compiler warnings on release build */ - (void)saved_bo; - (void)saved_used; - (void)saved_state_used; + brw->no_batch_wrap = false; /* Check if the blorp op we just did would make our batch likely to fail to * map all the BOs into the GPU at batch exec time later. If so, flush the -- 2.30.2