From bc4edc79dda8bb6cbb7bc4dcf8ad66188810ea1c Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Sat, 11 Apr 2026 14:02:11 +0200 Subject: [PATCH] ir3: support isam with less than 4 components This currently doesn't happen yet but we want to support load_image with lass than 4 components in the future. Signed-off-by: Job Noorman Part-of: --- src/freedreno/ir3/ir3_compiler_nir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index cf2c393a9e4..a207e0d3e0b 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -1794,7 +1794,7 @@ emit_intrinsic_load_image(struct ir3_context *ctx, nir_intrinsic_instr *intr, coords[i] = src0[i]; } - sam = emit_sam(ctx, OPC_ISAM, info, type, 0b1111, + sam = emit_sam(ctx, OPC_ISAM, info, type, MASK(intr->num_components), ir3_create_collect(b, coords, ncoords), NULL); ir3_handle_nonuniform(sam, intr); @@ -1802,7 +1802,7 @@ emit_intrinsic_load_image(struct ir3_context *ctx, nir_intrinsic_instr *intr, sam->barrier_class = IR3_BARRIER_IMAGE_R; sam->barrier_conflict = IR3_BARRIER_IMAGE_W; - ir3_split_dest(b, dst, sam, 0, 4); + ir3_split_dest(b, dst, sam, 0, intr->num_components); if (intr->intrinsic == nir_intrinsic_image_sparse_load || intr->intrinsic == nir_intrinsic_bindless_image_sparse_load) {