vc4: No turning unpack arguments into small immediates.
authorEric Anholt <eric@anholt.net>
Sun, 11 Jan 2015 20:14:41 +0000 (09:14 +1300)
committerEric Anholt <eric@anholt.net>
Thu, 15 Jan 2015 09:19:25 +0000 (22:19 +1300)
Since unpack only happens on things read from the A register file, we have
to leave them as something that can be allocated to A (temp or uniform).

src/gallium/drivers/vc4/vc4_opt_small_immediates.c

index 8b98ce3f1821819fa9b11c70789ff9cd229719c8..74304b998885efd448019c3c65916a4436f38ded 100644 (file)
@@ -79,6 +79,9 @@ qir_opt_small_immediates(struct vc4_compile *c)
                                 continue;
                         }
 
+                        if (qir_src_needs_a_file(inst))
+                                continue;
+
                         uint32_t imm = c->uniform_data[src.index];
                         uint32_t small_imm = qpu_encode_small_immediate(imm);
                         if (small_imm == ~0)