freedreno/ir3: fix missing (ss) in dummy bary.f case

In case we need to insert a dummy bary.f for the (ei) flag, it also
needs (ss) so we don't release varying storage to the next VS wave
before the ldlv completed.  Fixes random failures in:

dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.*

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
This commit is contained in:
Rob Clark 2019-06-27 08:24:32 -07:00
parent 21beddd3bc
commit 016a9ab2f9

View file

@ -306,6 +306,11 @@ legalize_block(struct ir3_legalize_ctx *ctx, struct ir3_block *block)
list_add(&baryf->node, &last_input->node);
last_input = baryf;
/* by definition, we need (ss) since we are inserting
* the dummy bary.f immediately after the ldlv:
*/
last_input_needs_ss = true;
}
last_input->regs[0]->flags |= IR3_REG_EI;
if (last_input_needs_ss)