diff options
author | Jason Ekstrand <[email protected]> | 2016-10-11 16:39:25 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2017-07-13 13:41:09 -0700 |
commit | add72599d9aba53753a311db13332531c3635176 (patch) | |
tree | 1809cd4324e036be65c581b4896f1f6ddf93058a | |
parent | 42c64b5f87531367eb554188fd924c885c8cecde (diff) |
i965/urb: Trigger upload_urb on NEW_BLORP
It's a bit rare, but blorp can trigger a urb reconfiguration. When
that happens, we need to re-upload the URB config. Previoulsy blorp
would set BRW_NEW_URB_SIZE, but this is a pretty big hammer as it
would cause back-to-black blorp operations to reconfigure both times.
Using BRW_NEW_BLORP is a small, more accurate hammer.
v2 (idr): Sort BRW_NEW_ tokens to match brw_recalculate_urb_fence and
gen6_urb.
v3 (idr): Don't whack BRW_NEW_URB_SIZE in blorp. Suggested by Jason.
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_urb.c | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/genX_blorp_exec.c | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_urb.c b/src/mesa/drivers/dri/i965/gen7_urb.c index 525c9c4d3da..c4b479ceb9b 100644 --- a/src/mesa/drivers/dri/i965/gen7_urb.c +++ b/src/mesa/drivers/dri/i965/gen7_urb.c @@ -236,7 +236,8 @@ gen7_upload_urb(struct brw_context *brw, unsigned vs_size, const struct brw_tracked_state gen7_urb = { .dirty = { .mesa = 0, - .brw = BRW_NEW_CONTEXT | + .brw = BRW_NEW_BLORP | + BRW_NEW_CONTEXT | BRW_NEW_URB_SIZE | BRW_NEW_GS_PROG_DATA | BRW_NEW_TCS_PROG_DATA | diff --git a/src/mesa/drivers/dri/i965/genX_blorp_exec.c b/src/mesa/drivers/dri/i965/genX_blorp_exec.c index 8fd17fb053b..af3d60919d9 100644 --- a/src/mesa/drivers/dri/i965/genX_blorp_exec.c +++ b/src/mesa/drivers/dri/i965/genX_blorp_exec.c @@ -183,8 +183,6 @@ blorp_emit_urb_config(struct blorp_batch *batch, brw->urb.vsize >= vs_entry_size) return; - brw->ctx.NewDriverState |= BRW_NEW_URB_SIZE; - gen7_upload_urb(brw, vs_entry_size, false, false); #elif GEN_GEN == 6 gen6_upload_urb(brw, vs_entry_size, false, 0); |