[v2 PATCH vkd3d 2/4] vkd3d-shader/hlsl: Cast round() input to float.

Zebediah Figura (she/her) zfigura at codeweavers.com
Mon Dec 20 15:44:20 CST 2021


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);
>> +}
>> +
> 



More information about the wine-devel mailing list