From a1aaf72915cef87dec738646d0a40f1d0e44a876 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 21 Apr 2019 03:59:05 +0000 Subject: [PATCH] panfrost/midgard: Don't try to inline constants on branches Along with a corresponding fix to the move elimination pass (not included here yet -- I just have it disabled for now), this will fix dEQP-GLES2.functional.shaders.loops.for_uniform_iterations.* Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index b51f1224cf1..66c8deb4771 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard_compile.c +++ b/src/gallium/drivers/panfrost/midgard/midgard_compile.c @@ -2842,6 +2842,9 @@ inline_alu_constants(compiler_context *ctx) /* If there is already a constant here, we can do nothing */ if (alu->has_constants) continue; + /* It makes no sense to inline constants on a branch */ + if (alu->compact_branch || alu->prepacked_branch) continue; + CONDITIONAL_ATTACH(src0); if (!alu->has_constants) { -- 2.30.2