Mesa (master): vc4: Refuse to merge instructions involving 32-bit immediate loads.
Eric Anholt
anholt at kemper.freedesktop.org
Wed Dec 10 02:35:23 UTC 2014
Module: Mesa
Branch: master
Commit: cff8c96a0d418f41e00aa97a13dc55e3ed213eb7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cff8c96a0d418f41e00aa97a13dc55e3ed213eb7
Author: Eric Anholt <eric at anholt.net>
Date: Tue Dec 9 16:34:37 2014 -0800
vc4: Refuse to merge instructions involving 32-bit immediate loads.
An immediate load overwrites the mul and add operations, so you can't
merge with them.
---
src/gallium/drivers/vc4/vc4_qpu.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/gallium/drivers/vc4/vc4_qpu.c b/src/gallium/drivers/vc4/vc4_qpu.c
index 6daa072..faf8790 100644
--- a/src/gallium/drivers/vc4/vc4_qpu.c
+++ b/src/gallium/drivers/vc4/vc4_qpu.c
@@ -356,6 +356,11 @@ qpu_merge_inst(uint64_t a, uint64_t b)
if (qpu_num_sf_accesses(a) && qpu_num_sf_accesses(b))
return 0;
+ if (QPU_GET_FIELD(a, QPU_SIG) == QPU_SIG_LOAD_IMM ||
+ QPU_GET_FIELD(b, QPU_SIG) == QPU_SIG_LOAD_IMM) {
+ return 0;
+ }
+
ok = ok && merge_fields(&merge, a, b, QPU_SIG_MASK,
QPU_SET_FIELD(QPU_SIG_NONE, QPU_SIG));
More information about the mesa-commit
mailing list