From c9e9d72ccec5d7c5a764bdd1633c0f1edd40b475 Mon Sep 17 00:00:00 2001 From: Ella Stanforth Date: Thu, 24 Jul 2025 09:27:28 +0100 Subject: [PATCH] v3d/compiler: implement normalised to float conversions Reviewed-by: Iago Toral Quiroga Part-of: --- src/broadcom/compiler/nir_to_vir.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 868bc9da06d..ad359f38ca1 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1780,13 +1780,25 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr) break; case nir_op_f2unorm_16_v3d: + assert(c->devinfo->ver >= 71); result = vir_FTOUNORM16(c, src[0]); break; case nir_op_f2snorm_16_v3d: + assert(c->devinfo->ver >= 71); result = vir_FTOSNORM16(c, src[0]); break; + case nir_op_snorm2f_16_v3d: + assert(c->devinfo->ver >= 71); + result = vir_FUNPACKSNORMLO(c, src[0]); + break; + + case nir_op_unorm2f_16_v3d: + assert(c->devinfo->ver >= 71); + result = vir_FUNPACKUNORMLO(c, src[0]); + break; + case nir_op_fsat: assert(v3d_device_has_unpack_sat(c->devinfo)); result = vir_FMOV(c, src[0]);