diff options
author | Rob Clark <[email protected]> | 2018-12-05 15:07:51 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2018-12-22 15:27:21 -0500 |
commit | 6667dde098c4d9f30720024e76e35963eec2c511 (patch) | |
tree | 2b8134b80e030108f6182e81ea39ade914f2144b /src/freedreno/ir3/ir3_ra.c | |
parent | 3453814622040d2638ce7b7c73c046cd4a0119e9 (diff) |
freedreno/ir3: don't treat all inputs/outputs as vec4
This was a hold-over from the early TGSI days, and mostly not needed
with NIR. This avoids burning an entire 4 consecutive scalar regs
for vec3 outputs, for example. Which fixes a few places that we were
doing worse that we should on register usage.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/freedreno/ir3/ir3_ra.c')
-rw-r--r-- | src/freedreno/ir3/ir3_ra.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/freedreno/ir3/ir3_ra.c b/src/freedreno/ir3/ir3_ra.c index b202c141378..f951acd5eef 100644 --- a/src/freedreno/ir3/ir3_ra.c +++ b/src/freedreno/ir3/ir3_ra.c @@ -917,6 +917,8 @@ ra_add_interference(struct ir3_ra_ctx *ctx) /* need to fix things up to keep outputs live: */ for (unsigned i = 0; i < ir->noutputs; i++) { struct ir3_instruction *instr = ir->outputs[i]; + if (!instr) + continue; unsigned name = ra_name(ctx, &ctx->instrd[instr->ip]); ctx->use[name] = ctx->instr_cnt; } |