Mesa (master): pan/midgard: Force perspective ops to use vec4

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 25 13:38:11 UTC 2019


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

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Wed Jul 24 15:36:46 2019 -0700

pan/midgard: Force perspective ops to use vec4

It doesn't make sense to use them with anything less.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>

---

 src/panfrost/midgard/midgard_ra.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/panfrost/midgard/midgard_ra.c b/src/panfrost/midgard/midgard_ra.c
index 19c60f4b05d..485ab789cd4 100644
--- a/src/panfrost/midgard/midgard_ra.c
+++ b/src/panfrost/midgard/midgard_ra.c
@@ -317,6 +317,16 @@ set_class(unsigned *classes, unsigned node, unsigned class)
         classes[node] |= (class << 2);
 }
 
+static void
+force_vec4(unsigned *classes, unsigned node)
+{
+        if ((node < 0) || (node >= SSA_FIXED_MINIMUM))
+                return;
+
+        /* Force vec4 = 3 */
+        classes[node] |= 0x3;
+}
+
 /* Special register classes impose special constraints on who can read their
  * values, so check that */
 
@@ -514,6 +524,12 @@ allocate_registers(compiler_context *ctx, bool *spilled)
 
                         set_class(found_class, ins->ssa_args.src0, class);
                         set_class(found_class, ins->ssa_args.src1, class);
+
+                        if (force_r27) {
+                                force_vec4(found_class, ins->ssa_args.dest);
+                                force_vec4(found_class, ins->ssa_args.src0);
+                                force_vec4(found_class, ins->ssa_args.src1);
+                        }
                 }
         }
 




More information about the mesa-commit mailing list