Mesa (master): freedreno/ir3: correct # of dest components for intrinsics

Rob Clark robclark at kemper.freedesktop.org
Fri Nov 10 14:01:29 UTC 2017


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

Author: Rob Clark <robdclark at gmail.com>
Date:   Thu Nov  9 10:50:44 2017 -0500

freedreno/ir3: correct # of dest components for intrinsics

Don't rely on intr->num_components having a valid value.  It doesn't
seem to anymore for non-vectorized intrinsics.

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

---

 src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
index d5db8e57ff..ef7a752014 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
@@ -1418,7 +1418,12 @@ emit_intrinsic(struct ir3_compile *ctx, nir_intrinsic_instr *intr)
 	int idx;
 
 	if (info->has_dest) {
-		dst = get_dst(ctx, &intr->dest, intr->num_components);
+		unsigned n;
+		if (info->dest_components)
+			n = info->dest_components;
+		else
+			n = intr->num_components;
+		dst = get_dst(ctx, &intr->dest, n);
 	} else {
 		dst = NULL;
 	}




More information about the mesa-commit mailing list