Mesa (main): pan/bi: Respect swizzles in nir_op_pack_64_2x32_split

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 1 20:24:58 UTC 2022


Module: Mesa
Branch: main
Commit: bc4d42023dda81d3acddea35b6c0bfb6cdef48cc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bc4d42023dda81d3acddea35b6c0bfb6cdef48cc

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Thu May 26 12:09:54 2022 -0400

pan/bi: Respect swizzles in nir_op_pack_64_2x32_split

Triggered a BIR validation error, which made debugging a breeze. That validation
pass (dimensionality checks) gets a lot of use, it seems :-)

Fixes:

   dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4x2_comp_access_store_cols

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16724>

---

 src/panfrost/bifrost/bifrost_compile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c
index e3178d3124a..6386e2675d0 100644
--- a/src/panfrost/bifrost/bifrost_compile.c
+++ b/src/panfrost/bifrost/bifrost_compile.c
@@ -2292,8 +2292,8 @@ bi_emit_alu(bi_builder *b, nir_alu_instr *instr)
 
         case nir_op_pack_64_2x32_split:
                 bi_collect_v2i32_to(b, dst,
-                                    bi_src_index(&instr->src[0].src),
-                                    bi_src_index(&instr->src[1].src));
+                                    bi_extract(b, bi_src_index(&instr->src[0].src), instr->src[0].swizzle[0]),
+                                    bi_extract(b, bi_src_index(&instr->src[1].src), instr->src[1].swizzle[0]));
                 return;
 
         case nir_op_pack_64_2x32:



More information about the mesa-commit mailing list