Mesa (master): freedreno/a6xx: Add helper for incrementing regid

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 18 18:57:16 UTC 2019


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

Author: Kristian H. Kristensen <hoegsberg at google.com>
Date:   Thu Apr 18 10:40:45 2019 -0700

freedreno/a6xx: Add helper for incrementing regid

Increments the regid by specified amount unless regid is is
r63.x (invalid).

Signed-off-by: Kristian H. Kristensen <hoegsberg at google.com>

---

 src/gallium/drivers/freedreno/a6xx/fd6_program.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.c b/src/gallium/drivers/freedreno/a6xx/fd6_program.c
index d44ecf42577..44c9e8a689b 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_program.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.c
@@ -287,6 +287,15 @@ setup_stages(struct fd6_program_state *state, struct stage *s, bool binning_pass
 	}
 }
 
+static inline uint32_t
+next_regid(uint32_t reg, uint32_t increment)
+{
+	if (reg == regid(63,0))
+		return regid(63,0);
+	else
+		return reg + increment;
+}
+
 static void
 setup_stateobj(struct fd_ringbuffer *ring,
                struct fd6_program_state *state, bool binning_pass)
@@ -327,7 +336,7 @@ setup_stateobj(struct fd_ringbuffer *ring,
 	samp_mask_regid = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_SAMPLE_MASK_IN);
 	face_regid      = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRONT_FACE);
 	coord_regid     = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRAG_COORD);
-	zwcoord_regid   = (coord_regid == regid(63,0)) ? regid(63,0) : (coord_regid + 2);
+	zwcoord_regid   = next_regid(coord_regid, 2);
 	vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_VARYING_COORD);
 	posz_regid      = ir3_find_output_regid(s[FS].v, FRAG_RESULT_DEPTH);
 




More information about the mesa-commit mailing list