summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2021-11-22 12:23:13 +0100
committerMarge Bot <emma+marge@anholt.net>2021-11-22 12:53:43 +0000
commitbd7584c16bc56fdcb3a7a720c9a857e158f699d2 (patch)
tree302d351354bddc35c93bf9271bbfe9ffa039875e
parented16eedb2d97d4f9d100afe1b66835fc792cefea (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> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13910>
-rw-r--r--src/broadcom/compiler/qpu_schedule.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/broadcom/compiler/qpu_schedule.c b/src/broadcom/compiler/qpu_schedule.c
index f987766a1b9..de71d1372d6 100644
--- a/src/broadcom/compiler/qpu_schedule.c
+++ b/src/broadcom/compiler/qpu_schedule.c
@@ -1517,6 +1517,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;