Mesa (master): pan/mdg: Ensure ld_vary_16 is aligned

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 4 19:07:39 UTC 2020


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

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Thu Jun  4 11:32:59 2020 -0400

pan/mdg: Ensure ld_vary_16 is aligned

Otherwise packing may fail.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Fixes: 5f8dd413bcc ("pan/mdg: Handle 16-bit ld_vary")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5339>

---

 src/panfrost/midgard/midgard_compile.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index 98f948a9b88..4cce9102c68 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -1273,6 +1273,12 @@ emit_varying_read(
 
         midgard_instruction ins = m_ld_vary_32(dest, offset);
         ins.mask = mask_of(nr_comp);
+        ins.dest_type = type;
+
+        if (type == nir_type_float16) {
+                /* Ensure we are aligned so we can pack it later */
+                ins.mask = mask_of(ALIGN_POT(nr_comp, 2));
+        }
 
         for (unsigned i = 0; i < ARRAY_SIZE(ins.swizzle[0]); ++i)
                 ins.swizzle[0][i] = MIN2(i + component, COMPONENT_W);



More information about the mesa-commit mailing list