summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>2019-04-21 03:59:05 +0000
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>2019-04-24 02:22:31 +0000
commita1aaf72915cef87dec738646d0a40f1d0e44a876 (patch)
treeedde0757b29c336c647d95f648e3f0f5f7be8542
parentc0fb2605dcd473722a871cc1416d68d901b3917d (diff)
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 <alyssa@rosenzweig.io>
-rw-r--r--src/gallium/drivers/panfrost/midgard/midgard_compile.c3
1 files changed, 3 insertions, 0 deletions
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) {