Mesa (master): spirv: do not set num_components for non-vectorized mbcnt_amd intrinsic

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 17 07:17:17 UTC 2020


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Tue Jun 16 09:08:02 2020 +0200

spirv: do not set num_components for non-vectorized mbcnt_amd intrinsic

Fixes: 167fa2887f0 ("nir/validate: validate intr->num_components")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Rob Clark <robdclark at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5493>

---

 src/compiler/spirv/vtn_amd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compiler/spirv/vtn_amd.c b/src/compiler/spirv/vtn_amd.c
index d893bd07a34..f180e3bf060 100644
--- a/src/compiler/spirv/vtn_amd.c
+++ b/src/compiler/spirv/vtn_amd.c
@@ -91,7 +91,8 @@ vtn_handle_amd_shader_ballot_instruction(struct vtn_builder *b, SpvOp ext_opcode
 
    nir_intrinsic_instr *intrin = nir_intrinsic_instr_create(b->nb.shader, op);
    nir_ssa_dest_init_for_type(&intrin->instr, &intrin->dest, dest_type, NULL);
-   intrin->num_components = intrin->dest.ssa.num_components;
+   if (nir_intrinsic_infos[op].src_components[0] == 0)
+      intrin->num_components = intrin->dest.ssa.num_components;
 
    for (unsigned i = 0; i < num_args; i++)
       intrin->src[i] = nir_src_for_ssa(vtn_ssa_value(b, w[i + 5])->def);



More information about the mesa-commit mailing list