summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2021-11-22 12:23:13 +0100
committerEric Engestrom <eric@engestrom.ch>2021-12-01 18:55:46 +0000
commitf6504f64e853809bde997a761cca16a693512175 (patch)
treec463a21ecbce2a2947cd033e7e7ce35b8b68f59b
parentec1891bae899a673bbd5515878c23465f3bbca63 (diff)
broadcom/compiler: don't allow RF writes from signals after thrend
Writes to physical registers are not allowed after thread end. We were checking this for ALU writes, but we need to check it for signal writes too. Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com> (cherry picked from commit bd7584c16bc56fdcb3a7a720c9a857e158f699d2) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13923>
-rw-r--r--.pick_status.json2
-rw-r--r--src/broadcom/compiler/qpu_schedule.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 5cf866f299c..75174b7e574 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -1561,7 +1561,7 @@
"description": "broadcom/compiler: don't allow RF writes from signals after thrend",
"nominated": false,
"nomination_type": null,
- "resolution": 4,
+ "resolution": 1,
"main_sha": null,
"because_sha": null
},
diff --git a/src/broadcom/compiler/qpu_schedule.c b/src/broadcom/compiler/qpu_schedule.c
index c559814b9ea..afab1641600 100644
--- a/src/broadcom/compiler/qpu_schedule.c
+++ b/src/broadcom/compiler/qpu_schedule.c
@@ -1490,6 +1490,11 @@ qpu_inst_valid_in_thrend_slot(struct v3d_compile *c,
return false;
}
+ if (v3d_qpu_sig_writes_address(c->devinfo, &inst->sig) &&
+ !inst->sig_magic) {
+ return false;
+ }
+
if (c->devinfo->ver < 40 && inst->alu.add.op == V3D_QPU_A_SETMSF)
return false;