On 12/20/21 12:15, Zebediah Figura (she/her) wrote:
On 12/19/21 06:41, Nikolay Sivov wrote:
+static struct hlsl_ir_node *intrinsic_float_convert_arg(struct hlsl_ctx *ctx, + const struct parse_initializer *params, struct hlsl_ir_node *arg, const struct vkd3d_shader_location *loc) +{ + struct hlsl_type *type = arg->data_type;
+ if (type->base_type == HLSL_TYPE_FLOAT || type->base_type == HLSL_TYPE_HALF) + return arg;
add_implicit_conversion() already does this.
Sorry, turns out I'm wrong; this preserves the input type for half, whereas add_implicit_conversion() alone would not.
+ type = hlsl_get_numeric_type(ctx, type->type, HLSL_TYPE_FLOAT, type->dimx, type->dimy); + return add_implicit_conversion(ctx, params->instrs, arg, type, loc); +}