mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Lower casts to bool to comparisons.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com> Signed-off-by: Matteo Bruni <mbruni@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
committed by
Alexandre Julliard
parent
8fa196cf51
commit
8c086b5c91
@@ -27,7 +27,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
int32_t i;
|
||||
double d;
|
||||
float f;
|
||||
bool b;
|
||||
|
||||
if (dst->node.data_type->dimx != src->node.data_type->dimx
|
||||
|| dst->node.data_type->dimy != src->node.data_type->dimy)
|
||||
@@ -47,7 +46,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
i = src->value[k].f;
|
||||
f = src->value[k].f;
|
||||
d = src->value[k].f;
|
||||
b = !!src->value[k].f;
|
||||
break;
|
||||
|
||||
case HLSL_TYPE_DOUBLE:
|
||||
@@ -55,7 +53,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
i = src->value[k].d;
|
||||
f = src->value[k].d;
|
||||
d = src->value[k].d;
|
||||
b = !!src->value[k].d;
|
||||
break;
|
||||
|
||||
case HLSL_TYPE_INT:
|
||||
@@ -63,7 +60,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
i = src->value[k].i;
|
||||
f = src->value[k].i;
|
||||
d = src->value[k].i;
|
||||
b = !!src->value[k].i;
|
||||
break;
|
||||
|
||||
case HLSL_TYPE_UINT:
|
||||
@@ -71,7 +67,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
i = src->value[k].u;
|
||||
f = src->value[k].u;
|
||||
d = src->value[k].u;
|
||||
b = !!src->value[k].u;
|
||||
break;
|
||||
|
||||
case HLSL_TYPE_BOOL:
|
||||
@@ -79,7 +74,6 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
i = !!src->value[k].u;
|
||||
f = !!src->value[k].u;
|
||||
d = !!src->value[k].u;
|
||||
b = !!src->value[k].u;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -107,7 +101,8 @@ static bool fold_cast(struct hlsl_ctx *ctx, struct hlsl_ir_constant *dst, struct
|
||||
break;
|
||||
|
||||
case HLSL_TYPE_BOOL:
|
||||
dst->value[k].u = b ? ~0u : 0;
|
||||
/* Casts to bool should have already been lowered. */
|
||||
assert(0);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user