vkd3d-shader/hlsl: Do not emit HLSL_OP1_ABS for unsigned types.

This commit is contained in:
Elizabeth Figura
2025-03-28 14:55:06 -05:00
committed by Henri Verbeet
parent cdc74a9377
commit a06b9f6646
Notes: Henri Verbeet 2025-05-14 15:27:19 +02:00
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1497
5 changed files with 47 additions and 6 deletions

View File

@@ -3189,6 +3189,11 @@ static bool elementwise_intrinsic_uint_convert_args(struct hlsl_ctx *ctx,
static bool intrinsic_abs(struct hlsl_ctx *ctx,
const struct parse_initializer *params, const struct vkd3d_shader_location *loc)
{
const struct hlsl_type *type = params->args[0]->data_type;
if (!hlsl_type_is_floating_point(type) && !hlsl_type_is_signed_integer(type))
return true;
return !!add_unary_arithmetic_expr(ctx, params->instrs, HLSL_OP1_ABS, params->args[0], loc);
}