diff options
author | Rob Clark <[email protected]> | 2017-11-09 10:50:44 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2017-11-10 08:57:33 -0500 |
commit | 86154acb5722c2eecf46324c5509e963a212ba44 (patch) | |
tree | f49c8c2a725bb65b1299bf080d0d08939ae7530f /src/gallium/drivers/freedreno | |
parent | 3fcf18634ce2dc883c60aeee48a31f90010be278 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c index d5db8e57ffb..ef7a752014d 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; } |