vkd3d-shader/hlsl: Preserve halves in intrinsic_step().

This commit is contained in:
Elizabeth Figura 2024-09-04 21:45:12 -05:00 committed by Henri Verbeet
parent b23c172a47
commit 2688a24bde
Notes: Henri Verbeet 2024-09-11 15:34:20 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1042

View File

@ -4583,13 +4583,12 @@ static bool intrinsic_step(struct hlsl_ctx *ctx,
if (!elementwise_intrinsic_float_convert_args(ctx, params, loc)) if (!elementwise_intrinsic_float_convert_args(ctx, params, loc))
return false; return false;
type = params->args[0]->data_type;
if (!(ge = add_binary_comparison_expr(ctx, params->instrs, HLSL_OP2_GEQUAL, if (!(ge = add_binary_comparison_expr(ctx, params->instrs, HLSL_OP2_GEQUAL,
params->args[1], params->args[0], loc))) params->args[1], params->args[0], loc)))
return false; return false;
type = ge->data_type;
type = hlsl_get_numeric_type(ctx, type->class, HLSL_TYPE_FLOAT, type->dimx, type->dimy);
return !!add_implicit_conversion(ctx, params->instrs, ge, type, loc); return !!add_implicit_conversion(ctx, params->instrs, ge, type, loc);
} }