Mesa (master): v3d: Add a note about i/o indirection for future performance work.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 26 19:44:08 UTC 2019


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Apr 22 10:40:47 2019 -0700

v3d: Add a note about i/o indirection for future performance work.

---

 src/broadcom/compiler/nir_to_vir.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index 30fd4002ef9..3fa2e1de953 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -1737,6 +1737,9 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
                 break;
 
         case nir_intrinsic_load_input:
+                /* Use ldvpmv (uniform offset) or ldvpmd (non-uniform offset)
+                 * and enable PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR.
+                 */
                 offset = (nir_intrinsic_base(instr) +
                           nir_src_as_uint(instr->src[0]));
                 if (c->s->info.stage != MESA_SHADER_FRAGMENT &&
@@ -1778,6 +1781,10 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
                 break;
 
         case nir_intrinsic_store_output:
+                /* XXX perf: Use stvpmv with uniform non-constant offsets and
+                 * stvpmd with non-uniform offsets and enable
+                 * PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR.
+                 */
                 if (c->s->info.stage == MESA_SHADER_FRAGMENT) {
                         offset = ((nir_intrinsic_base(instr) +
                                    nir_src_as_uint(instr->src[1])) * 4 +




More information about the mesa-commit mailing list