freedreno/ir3: fix use_count refcnt'ing issue
authorRob Clark <robdclark@gmail.com>
Tue, 20 Feb 2018 18:40:46 +0000 (13:40 -0500)
committerRob Clark <robdclark@gmail.com>
Tue, 20 Feb 2018 18:43:42 +0000 (13:43 -0500)
Was hitting an assert with vs-varying-array-mat4-index-col-row-wr.shader_test

When eliminating a copy, we were dropping the use_count of the mov that
is skipped, but not increasing the use_count of it's src instruction.

Fixes: 76440fcca91 freedreno/ir3: clean up dangling false-dep's
Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/ir3/ir3_cp.c

index 7713c645e08b1499a01fecb82de6cf3e9c355e16..391e94ca44f707c8ec5fd52b50fef41fb2119b84 100644 (file)
@@ -361,6 +361,7 @@ reg_cp(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr,
                        instr->barrier_conflict |= src->barrier_conflict;
 
                        unuse(src);
+                       reg->instr->use_count++;
                }
 
        } else if (is_same_type_mov(src) &&