diff options
-rw-r--r-- | src/broadcom/compiler/nir_to_vir.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 267d61a25ab..8012d483a72 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1031,14 +1031,16 @@ emit_frag_end(struct v3d_compile *c) } if (c->fs_key->f32_color_rb & (1 << rt)) { - inst = vir_MOV_dest(c, vir_reg(QFILE_TLBU, 0), color[0]); + inst = vir_MOV_dest(c, vir_reg(QFILE_TLBU, 0), r); inst->src[vir_get_implicit_uniform_src(inst)] = vir_uniform_ui(c, conf); - for (int i = 1; i < num_components; i++) { - inst = vir_MOV_dest(c, vir_reg(QFILE_TLB, 0), - color[i]); - } + if (num_components >= 2) + vir_MOV_dest(c, vir_reg(QFILE_TLB, 0), g); + if (num_components >= 3) + vir_MOV_dest(c, vir_reg(QFILE_TLB, 0), b); + if (num_components >= 4) + vir_MOV_dest(c, vir_reg(QFILE_TLB, 0), a); } else { inst = vir_VFPACK_dest(c, vir_reg(QFILE_TLB, 0), r, g); if (conf != ~0) { |