From 777f883c36286555373118f3d582971cd81644f1 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Wed, 7 Jun 2023 22:23:52 +0200 Subject: [PATCH] gallivm: Cast read_first_invocation source to an int cc: mesa-stable Reviewed-by: Dave Airlie Part-of: (cherry picked from commit c3c9e28131ee9036718f033d141d1962884846fc) --- .pick_status.json | 2 +- src/gallium/auxiliary/gallivm/lp_bld_nir.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 463e59f21b0a2..43bbad9ff15bf 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -112,7 +112,7 @@ "description": "gallivm: Cast read_first_invocation source to an int", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c index 53054416ebccc..65bd6af2ccce2 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c @@ -2211,12 +2211,13 @@ visit_intrinsic(struct lp_build_nir_context *bld_base, #endif case nir_intrinsic_read_invocation: case nir_intrinsic_read_first_invocation: { - LLVMValueRef src1 = NULL; LLVMValueRef src0 = get_src(bld_base, instr->src[0]); - if (instr->intrinsic == nir_intrinsic_read_invocation) { + src0 = cast_type(bld_base, src0, nir_type_int, nir_src_bit_size(instr->src[0])); + + LLVMValueRef src1 = NULL; + if (instr->intrinsic == nir_intrinsic_read_invocation) src1 = cast_type(bld_base, get_src(bld_base, instr->src[1]), nir_type_int, 32); - src0 = cast_type(bld_base, src0, nir_type_int, nir_src_bit_size(instr->src[0])); - } + bld_base->read_invocation(bld_base, src0, nir_src_bit_size(instr->src[0]), src1, result); break; }