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

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 28 20:03:27 UTC 2019


Module: Mesa
Branch: master
Commit: 016a9ab2f93f9b6efb28c6bd168e96f5c9feb080
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=016a9ab2f93f9b6efb28c6bd168e96f5c9feb080

Author: Rob Clark <robdclark at chromium.org>
Date:   Thu Jun 27 08:24:32 2019 -0700

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 at chromium.org>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>

---

 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 c39b3a11011..e1ca1ada2c5 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)




More information about the mesa-commit mailing list