pan/bi: Fix assert when writing vertex outputs
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 2 Oct 2020 16:02:36 +0000 (12:02 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 2 Oct 2020 16:03:53 +0000 (12:03 -0400)
Varying stores require us to generate a LEA_ATTR_IMM instruction, which
is a load.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: 0aa08ae2f67 ("nir: Split NIR_INTRINSIC_TYPE into separate src/dest indices")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6985>

src/panfrost/bifrost/bifrost_compile.c

index 96b4e38..6dda881 100644 (file)
@@ -189,7 +189,9 @@ bi_load_with_r61(enum bi_class T, nir_intrinsic_instr *instr)
         ld.src[2] = BIR_INDEX_REGISTER | 62;
         ld.src_types[1] = nir_type_uint32;
         ld.src_types[2] = nir_type_uint32;
-        ld.format = nir_intrinsic_dest_type(instr);
+        ld.format = instr->intrinsic == nir_intrinsic_store_output ?
+                nir_intrinsic_src_type(instr) :
+                nir_intrinsic_dest_type(instr);
         return ld;
 }