summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-12-11 16:14:03 -0800
committerEric Anholt <[email protected]>2018-12-14 17:48:01 -0800
commit3f9bcf9136af794d44fa4b0802c0d4df6b170175 (patch)
treee3ea0cc949f0a82c28da5c3ebbf7a67df372de21
parent332a5cf6a57dc838e7010e2f7c42eceb8209f6c6 (diff)
v3d: Make sure that a thrsw doesn't split a multop from its umul24.
The thrsw will invalidate rtop, just like accumulators and flags. Caught by simulator assertions in CS imulextended/umulextended tests. Fixes: 90269ba35333 ("broadcom/vc5: Use THRSW to enable multi-threaded shaders.")
-rw-r--r--src/broadcom/compiler/qpu_schedule.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/broadcom/compiler/qpu_schedule.c b/src/broadcom/compiler/qpu_schedule.c
index 944059c9778..365aebdbd6d 100644
--- a/src/broadcom/compiler/qpu_schedule.c
+++ b/src/broadcom/compiler/qpu_schedule.c
@@ -405,6 +405,7 @@ calculate_deps(struct schedule_state *state, struct schedule_node *n)
for (int i = 0; i < ARRAY_SIZE(state->last_r); i++)
add_write_dep(state, &state->last_r[i], n);
add_write_dep(state, &state->last_sf, n);
+ add_write_dep(state, &state->last_rtop, n);
/* Scoreboard-locking operations have to stay after the last
* thread switch.