broadcom/vc5: Don't emit component 3/4 F16 TLB writes for float/vec2.
authorEric Anholt <eric@anholt.net>
Thu, 28 Dec 2017 23:29:04 +0000 (15:29 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 3 Jan 2018 22:31:28 +0000 (14:31 -0800)
Fixes a simulator assertion failure on
dEQP-GLES3.functional.fragment_out.array.fixed.r8_highp_float.

src/broadcom/compiler/nir_to_vir.c

index 394e20d2070108f1c6f9164e72b6a43731c29a30..f998f716590997e2d858140f2cd09426a19e969c 100644 (file)
@@ -1214,7 +1214,8 @@ emit_frag_end(struct v3d_compile *c)
                                                 vir_uniform_ui(c, conf);
                                 }
 
-                                inst = vir_VFPACK_dest(c, vir_reg(QFILE_TLB, 0), b, a);
+                                if (num_components >= 3)
+                                        inst = vir_VFPACK_dest(c, vir_reg(QFILE_TLB, 0), b, a);
                         }
                         break;
                 }