From dfcb25fff16ef08a52c77ad01ff60e2c980cc93d Mon Sep 17 00:00:00 2001
From: Russel Arbore <russel.jma@gmail.com>
Date: Wed, 5 Mar 2025 22:37:33 -0600
Subject: [PATCH] cava gpu dont_fuse_gamut

---
 juno_samples/cava/src/gpu.sch | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/juno_samples/cava/src/gpu.sch b/juno_samples/cava/src/gpu.sch
index 0ef466c0..0981804f 100644
--- a/juno_samples/cava/src/gpu.sch
+++ b/juno_samples/cava/src/gpu.sch
@@ -109,18 +109,25 @@ fixpoint {
   fork-coalesce(fuse4);
 }
 simpl!(fuse4);
-fork-unroll(fuse4@channel_loop);
-simpl!(fuse4);
-fixpoint {
-  fork-fusion(fuse4@channel_loop);
+
+if !feature("dont_fuse_gamut") {
+  fork-unroll(fuse4@channel_loop);
+  simpl!(fuse4);
+  fixpoint {
+    fork-fusion(fuse4@channel_loop);
+  }
+  simpl!(fuse4);
 }
-simpl!(fuse4);
 array-slf(fuse4);
 simpl!(fuse4);
-fork-tile[2, 0, false, true](fuse4@channel_loop);
-let out = fork-split(fuse4@channel_loop);
-fork-unroll(out.cava_3.fj1);
-unforkify(fuse4@channel_loop);
+unforkify(fuse4@channel_loop | fuse4@cp_loop);
+
+fork-tile[4, 1, false, true](fuse4);
+fork-tile[8, 0, false, true](fuse4);
+fork-interchange[1, 2](fuse4);
+let split = fork-split(fuse4);
+fork-coalesce(split.cava_3.fj0 \ split.cava_3.fj2);
+fork-coalesce(split.cava_3.fj2);
 
 no-memset(fuse5@res1);
 no-memset(fuse5@res2);
@@ -133,13 +140,6 @@ simpl!(fuse5);
 array-slf(fuse5);
 simpl!(fuse5);
 
-fork-tile[4, 1, false, true](fuse4);
-fork-tile[8, 0, false, true](fuse4);
-fork-interchange[1, 2](fuse4);
-let split = fork-split(fuse4);
-fork-coalesce(split.cava_3.fj0 \ split.cava_3.fj2);
-fork-coalesce(split.cava_3.fj2);
-
 delete-uncalled(*);
 simpl!(*);
 
-- 
GitLab