From cff8c96a0d418f41e00aa97a13dc55e3ed213eb7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 9 Dec 2014 16:34:37 -0800 Subject: [PATCH] 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 6daa07281f4..faf8790b572 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)); -- 2.30.2