freedreno/ir3: use (ss) instead of (sy) for ldlv

Fixes a bunch of flat-varying fail on a4xx (where we need to use ldlv to
read the un-interpolated varying).

Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
Rob Clark 2016-04-11 12:57:31 -04:00
parent b35ad6e701
commit dd70945e09

View file

@ -183,7 +183,13 @@ legalize_block(struct ir3_legalize_ctx *ctx, struct ir3_block *block)
ctx->has_samp = true;
regmask_set(&needs_sy, n->regs[0]);
} else if (is_load(n)) {
regmask_set(&needs_sy, n->regs[0]);
/* seems like ldlv needs (ss) bit instead?? which is odd but
* makes a bunch of flat-varying tests start working on a4xx.
*/
if (n->opc == OPC_LDLV)
regmask_set(&needs_ss, n->regs[0]);
else
regmask_set(&needs_sy, n->regs[0]);
}
/* both tex/sfu appear to not always immediately consume