diff options
-rw-r--r-- | src/freedreno/ir3/ir3.h | 1 | ||||
-rw-r--r-- | src/freedreno/ir3/ir3_context.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index 356e9c60dea..918fce833f2 100644 --- a/src/freedreno/ir3/ir3.h +++ b/src/freedreno/ir3/ir3.h @@ -1076,6 +1076,7 @@ static inline struct ir3_register * __ssa_src(struct ir3_instruction *instr, flags |= IR3_REG_HALF; reg = ir3_reg_create(instr, 0, IR3_REG_SSA | flags); reg->instr = src; + reg->wrmask = src->regs[0]->wrmask; return reg; } diff --git a/src/freedreno/ir3/ir3_context.c b/src/freedreno/ir3/ir3_context.c index 1aab7396c3e..1fc453c15b3 100644 --- a/src/freedreno/ir3/ir3_context.c +++ b/src/freedreno/ir3/ir3_context.c @@ -340,6 +340,8 @@ ir3_create_collect(struct ir3_context *ctx, struct ir3_instruction *const *arr, ir3_reg_create(collect, 0, IR3_REG_SSA | flags)->instr = elem; } + collect->regs[0]->wrmask = MASK(arrsz); + return collect; } |