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