diff options
author | Eric Anholt <eric@anholt.net> | 2018-07-03 15:52:59 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2018-07-05 12:39:36 -0700 |
commit | 7b63371420526b85cdae1ff17d7b2bbeceee038d (patch) | |
tree | 87a5123ca93703920dd54718c0f6782c0ab6bdec /src/broadcom | |
parent | dbd52585fa9fe79aabea3560cb3aaefffe544af9 (diff) |
v3d: Respect swap_color_rb for the f32_color_rb case.
We don't actually set the two flags together, but I want to use the
r/g/b/a reordered fields in the next commit.
Diffstat (limited to 'src/broadcom')
-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) { |