From c73f5a00826201f6e76854145aa823cec4f389d2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 27 Oct 2021 16:58:10 -0400 Subject: [PATCH] zink: add more int/float types to cast switching in ntv these come from opcode results, which are not always 32bit cc: mesa-stable Reviewed-by: Dave Airlie Part-of: --- .../drivers/zink/nir_to_spirv/nir_to_spirv.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index b03dca51f4e..740224c498a 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -1226,10 +1226,18 @@ store_dest(struct ntv_context *ctx, nir_dest *dest, SpvId result, nir_alu_type t break; case nir_type_uint: + case nir_type_uint8: + case nir_type_uint16: + case nir_type_uint64: break; /* nothing to do! */ case nir_type_int: + case nir_type_int8: + case nir_type_int16: + case nir_type_int64: case nir_type_float: + case nir_type_float16: + case nir_type_float64: result = bitcast_to_uvec(ctx, result, bit_size, num_components); break; @@ -1569,12 +1577,20 @@ get_dest_type(struct ntv_context *ctx, nir_dest *dest, nir_alu_type type) unreachable("bool should have bit-size 1"); case nir_type_int: + case nir_type_int8: + case nir_type_int16: + case nir_type_int64: return get_ivec_type(ctx, bit_size, num_components); case nir_type_uint: + case nir_type_uint8: + case nir_type_uint16: + case nir_type_uint64: return get_uvec_type(ctx, bit_size, num_components); case nir_type_float: + case nir_type_float16: + case nir_type_float64: return get_fvec_type(ctx, bit_size, num_components); default: