From ae7a9d0585ac3b5eb439fa203687ba4889a7286f Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 8 Dec 2020 15:21:48 +0100 Subject: [PATCH] ir3: Assume that nir_tex_instr::dest_type is sized Reviewed-by: Jason Ekstrand Part-of: --- src/freedreno/ir3/ir3_compiler_nir.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index 0470cfba9e6..4e3594bdc9d 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -2050,18 +2050,22 @@ get_tex_dest_type(nir_tex_instr *tex) { type_t type; - switch (nir_alu_type_get_base_type(tex->dest_type)) { + switch (tex->dest_type) { + case nir_type_float32: + return TYPE_F32; + case nir_type_float16: + return TYPE_F16; + case nir_type_int32: + return TYPE_S32; + case nir_type_int16: + return TYPE_S16; + case nir_type_bool32: + case nir_type_uint32: + return TYPE_U32; + case nir_type_bool16: + case nir_type_uint16: + return TYPE_U16; case nir_type_invalid: - case nir_type_float: - type = nir_dest_bit_size(tex->dest) == 16 ? TYPE_F16 : TYPE_F32; - break; - case nir_type_int: - type = nir_dest_bit_size(tex->dest) == 16 ? TYPE_S16 : TYPE_S32; - break; - case nir_type_uint: - case nir_type_bool: - type = nir_dest_bit_size(tex->dest) == 16 ? TYPE_U16 : TYPE_U32; - break; default: unreachable("bad dest_type"); } @@ -2522,7 +2526,7 @@ emit_tex(struct ir3_context *ctx, nir_tex_instr *tex) if (opc == OPC_GETLOD) { struct ir3_instruction *factor = create_immed(b, fui(1.0 / 256)); - compile_assert(ctx, nir_alu_type_get_base_type(tex->dest_type) == nir_type_float); + compile_assert(ctx, tex->dest_type == nir_type_float32); for (i = 0; i < 2; i++) { dst[i] = ir3_MUL_F(b, ir3_COV(b, dst[i], TYPE_S32, TYPE_F32), 0, factor, 0);