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