Mesa (master): freedreno/ir3: fix incorrect conversion folding

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 24 13:22:54 UTC 2020


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

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Thu Apr 23 12:31:15 2020 -0400

freedreno/ir3: fix incorrect conversion folding

Fixes dEQP-VK.glsl.builtin.function.pack_unpack.unpackhalf2x16_compute

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4708>

---

 src/freedreno/ir3/ir3_cf.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/freedreno/ir3/ir3_cf.c b/src/freedreno/ir3/ir3_cf.c
index 9875ba4906f..db9b5de008b 100644
--- a/src/freedreno/ir3/ir3_cf.c
+++ b/src/freedreno/ir3/ir3_cf.c
@@ -103,6 +103,13 @@ try_conversion_folding(struct ir3_instruction *conv)
 	case OPC_SIGN_F:
 	case OPC_ABSNEG_F:
 		return;
+	case OPC_MOV:
+		/* if src is a "cov" and type doesn't match, then it can't be folded
+		 * for example cov.u32u16+cov.f16f32 can't be folded to cov.u32f32
+		 */
+		if (src->cat1.dst_type != src->cat1.src_type &&
+			conv->cat1.src_type != src->cat1.dst_type)
+			return;
 	default:
 		break;
 	}



More information about the mesa-commit mailing list