From be011e8675c2d4a158921bdc429184cc3fc42d38 Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Thu, 13 Feb 2025 16:59:49 +0100 Subject: [PATCH] pan/bi: Stop using V2F16_TO_V2S16 for barycentric_at_offset on v11+ This was removed on v11. Signed-off-by: Mary Guillemard Reviewed-by: Lars-Ivar Hesselberg Simonsen Part-of: --- src/panfrost/compiler/bifrost_compile.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/panfrost/compiler/bifrost_compile.c b/src/panfrost/compiler/bifrost_compile.c index 07143701180..a58288eb2e4 100644 --- a/src/panfrost/compiler/bifrost_compile.c +++ b/src/panfrost/compiler/bifrost_compile.c @@ -347,7 +347,21 @@ bi_varying_src0_for_barycentric(bi_builder *b, nir_intrinsic_instr *intr) } } - return bi_v2f16_to_v2s16(b, f16); + /* v11 removed V2F16_TO_V2S16 */ + if (b->shader->arch >= 11) { + bi_index f[2]; + + for (int i = 0; i < 2; i++) { + bi_index tmp = bi_half(f16, i == 1); + tmp = bi_f16_to_f32(b, tmp); + tmp = bi_f32_to_s32(b, tmp); + f[i] = bi_half(tmp, false); + } + + return bi_mkvec_v2i16(b, f[0], f[1]); + } else { + return bi_v2f16_to_v2s16(b, f16); + } } case nir_intrinsic_load_barycentric_pixel: