From: Eric Anholt Date: Wed, 10 Dec 2014 00:34:37 +0000 (-0800) Subject: vc4: Refuse to merge instructions involving 32-bit immediate loads. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cff8c96a0d418f41e00aa97a13dc55e3ed213eb7;p=mesa.git 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. --- 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));