freedreno/ir3: all mem instructions have WAR hazzard
authorRob Clark <robdclark@gmail.com>
Sun, 3 Dec 2017 16:48:56 +0000 (11:48 -0500)
committerRob Clark <robdclark@gmail.com>
Sun, 3 Dec 2017 19:17:41 +0000 (14:17 -0500)
It isn't just load instructions that have write-after-read hazzard.

Fixes stk gaussian blur compute shaders.

Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/ir3/ir3_legalize.c

index 3f12b68ada19838f06008afa978003177e6c08ff..b4d5db58ccb6ca4d11fe683614716fda0cb28356 100644 (file)
@@ -211,7 +211,7 @@ legalize_block(struct ir3_legalize_ctx *ctx, struct ir3_block *block)
                /* both tex/sfu appear to not always immediately consume
                 * their src register(s):
                 */
-               if (is_tex(n) || is_sfu(n) || is_load(n)) {
+               if (is_tex(n) || is_sfu(n) || is_mem(n)) {
                        foreach_src(reg, n) {
                                if (reg_gpr(reg))
                                        regmask_set(&needs_ss_war, reg);