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

Author: Alyssa Rosenzweig <[email protected]>
Date:   Thu Aug 15 16:53:03 2019 -0700

pan/midgard: Clamp st_vary swizzle by number of components

Same issue with liveness analysis. If we store out a vec3, we should not
reference the .w component.

Signed-off-by: Alyssa Rosenzweig <[email protected]>

---

 src/panfrost/midgard/midgard_compile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/panfrost/midgard/midgard_compile.c 
b/src/panfrost/midgard/midgard_compile.c
index 2b454a92260..55406e6f458 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -1577,11 +1577,12 @@ emit_intrinsic(compiler_context *ctx, 
nir_intrinsic_instr *instr)
                         emit_explicit_constant(ctx, reg, reg);
 
                         unsigned component = nir_intrinsic_component(instr);
+                        unsigned nr_comp = 
nir_src_num_components(instr->src[0]);
 
                         midgard_instruction st = m_st_vary_32(reg, offset);
                         st.load_store.arg_1 = 0x9E;
                         st.load_store.arg_2 = 0x1E;
-                        st.load_store.swizzle = SWIZZLE_XYZW << (2*component);
+                        st.load_store.swizzle = swizzle_of(nr_comp) << 
(2*component);
                         emit_mir_instruction(ctx, st);
                 } else {
                         DBG("Unknown store\n");

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to