1 |
From efc31a64eeee9600a26f4b0a201c6af8fed36167 Mon Sep 17 00:00:00 2001 |
2 |
From: Eric Anholt <eric@anholt.net> |
3 |
Date: Tue, 11 Dec 2018 16:14:03 -0800 |
4 |
Subject: [PATCH 18/78] v3d: Make sure that a thrsw doesn't split a multop from |
5 |
its umul24. |
6 |
|
7 |
The thrsw will invalidate rtop, just like accumulators and flags. Caught |
8 |
by simulator assertions in CS imulextended/umulextended tests. |
9 |
|
10 |
Fixes: 90269ba35333 ("broadcom/vc5: Use THRSW to enable multi-threaded shaders.") |
11 |
(cherry picked from commit 3f9bcf9136af794d44fa4b0802c0d4df6b170175) |
12 |
--- |
13 |
src/broadcom/compiler/qpu_schedule.c | 1 + |
14 |
1 file changed, 1 insertion(+) |
15 |
|
16 |
diff --git a/src/broadcom/compiler/qpu_schedule.c b/src/broadcom/compiler/qpu_schedule.c |
17 |
index 4f3b621fd2..5448319595 100644 |
18 |
--- a/src/broadcom/compiler/qpu_schedule.c |
19 |
+++ b/src/broadcom/compiler/qpu_schedule.c |
20 |
@@ -392,6 +392,7 @@ calculate_deps(struct schedule_state *state, struct schedule_node *n) |
21 |
for (int i = 0; i < ARRAY_SIZE(state->last_r); i++) |
22 |
add_write_dep(state, &state->last_r[i], n); |
23 |
add_write_dep(state, &state->last_sf, n); |
24 |
+ add_write_dep(state, &state->last_rtop, n); |
25 |
|
26 |
/* Scoreboard-locking operations have to stay after the last |
27 |
* thread switch. |
28 |
-- |
29 |
2.20.1 |
30 |
|