Mesa (master): freedreno/ir3: take reg->num out of union in ir3_register

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Oct 25 23:52:29 UTC 2018


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

Author: Hyunjun Ko <zzoon at igalia.com>
Date:   Thu Oct 25 17:26:19 2018 +0900

freedreno/ir3: take reg->num out of union in ir3_register

To avoid wrong result when identifying the type of register.
Ie. If the reg is an array, it might be identified as address or
predicate register.

Fixes: dEQP-GLES31.functional.ssbo.layout.random.arrays_of_arrays.6

Signed-off-by: Rob Clark <robdclark at gmail.com>

---

 src/gallium/drivers/freedreno/ir3/ir3.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3.h b/src/gallium/drivers/freedreno/ir3/ir3.h
index 3055c10f1d..1f47cef7e0 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3.h
+++ b/src/gallium/drivers/freedreno/ir3/ir3.h
@@ -95,12 +95,13 @@ struct ir3_register {
 		IR3_REG_ARRAY  = 0x8000,
 
 	} flags;
+
+	/* normal registers:
+	 * the component is in the low two bits of the reg #, so
+	 * rN.x becomes: (N << 2) | x
+	 */
+	int   num;
 	union {
-		/* normal registers:
-		 * the component is in the low two bits of the reg #, so
-		 * rN.x becomes: (N << 2) | x
-		 */
-		int   num;
 		/* immediate: */
 		int32_t  iim_val;
 		uint32_t uim_val;




More information about the mesa-commit mailing list