Module: vkd3d Branch: master Commit: 5a05fabe6299f60d942f18189ce5d53afe6774b1 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/5a05fabe6299f60d942f18189ce5d5...
Author: Giovanni Mascellani gmascellani@codeweavers.com Date: Fri Jun 9 22:30:56 2023 +0200
vkd3d-shader/hlsl: Fold floating point minimum expressions.
---
libs/vkd3d-shader/hlsl_constant_ops.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/libs/vkd3d-shader/hlsl_constant_ops.c b/libs/vkd3d-shader/hlsl_constant_ops.c index edfc898e..b9bca0d3 100644 --- a/libs/vkd3d-shader/hlsl_constant_ops.c +++ b/libs/vkd3d-shader/hlsl_constant_ops.c @@ -535,6 +535,15 @@ static bool fold_min(struct hlsl_ctx *ctx, struct hlsl_constant_value *dst, cons { switch (type) { + case HLSL_TYPE_FLOAT: + case HLSL_TYPE_HALF: + dst->u[k].f = fminf(src1->value.u[k].f, src2->value.u[k].f); + break; + + case HLSL_TYPE_DOUBLE: + dst->u[k].d = fmin(src1->value.u[k].d, src2->value.u[k].d); + break; + case HLSL_TYPE_INT: dst->u[k].i = min(src1->value.u[k].i, src2->value.u[k].i); break;