From 016a9ab2f93f9b6efb28c6bd168e96f5c9feb080 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 27 Jun 2019 08:24:32 -0700 Subject: [PATCH] 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 Reviewed-by: Eric Anholt Reviewed-by: Kristian H. Kristensen --- src/freedreno/ir3/ir3_legalize.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/freedreno/ir3/ir3_legalize.c b/src/freedreno/ir3/ir3_legalize.c index c39b3a1..e1ca1ad 100644 --- a/src/freedreno/ir3/ir3_legalize.c +++ b/src/freedreno/ir3/ir3_legalize.c @@ -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) -- 2.7.4