Mesa (master): vc4: Use the intrinsic' s first_component for vattr VPM index.

Eric Anholt anholt at kemper.freedesktop.org
Fri Aug 19 20:13:40 UTC 2016


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

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Aug  4 16:33:16 2016 -0700

vc4: Use the intrinsic's first_component for vattr VPM index.

Avoids another multiplication by 4 of the base in the NIR.

---

 src/gallium/drivers/vc4/vc4_nir_lower_io.c | 4 ++--
 src/gallium/drivers/vc4/vc4_program.c      | 6 +-----
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_nir_lower_io.c b/src/gallium/drivers/vc4/vc4_nir_lower_io.c
index d2b27bd..ad96ef5 100644
--- a/src/gallium/drivers/vc4/vc4_nir_lower_io.c
+++ b/src/gallium/drivers/vc4/vc4_nir_lower_io.c
@@ -196,8 +196,8 @@ vc4_nir_lower_vertex_attr(struct vc4_compile *c, nir_builder *b,
                         nir_intrinsic_instr_create(c->s,
                                                    nir_intrinsic_load_input);
                 intr_comp->num_components = 1;
-                nir_intrinsic_set_base(intr_comp,
-                                       nir_intrinsic_base(intr) * 4 + i);
+                nir_intrinsic_set_base(intr_comp, nir_intrinsic_base(intr));
+                nir_intrinsic_set_component(intr_comp, i);
                 intr_comp->src[0] = nir_src_for_ssa(nir_imm_int(b, 0));
                 nir_ssa_dest_init(&intr_comp->instr, &intr_comp->dest, 1, 32, NULL);
                 nir_builder_instr_insert(b, &intr_comp->instr);
diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c
index 4d1d623..4542027 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -1627,15 +1627,11 @@ ntq_emit_intrinsic(struct vc4_compile *c, nir_intrinsic_instr *instr)
                         }
                         ntq_store_dest(c, &instr->dest, 0,
                                        c->color_reads[sample_index]);
-                } else if (c->stage == QSTAGE_FRAG) {
+                } else {
                         offset = nir_intrinsic_base(instr) + const_offset->u32[0];
                         int comp = nir_intrinsic_component(instr);
                         ntq_store_dest(c, &instr->dest, 0,
                                        c->inputs[offset * 4 + comp]);
-                } else {
-                        offset = nir_intrinsic_base(instr) + const_offset->u32[0];
-                        ntq_store_dest(c, &instr->dest, 0,
-                                       c->inputs[offset]);
                 }
                 break;
 




More information about the mesa-commit mailing list