[PATCH vkd3d 6/8] vkd3d-shader/hlsl: Support casts for all numeric types in fold_constants().

Zebediah Figura (she/her) zfigura at codeweavers.com
Mon Jan 17 17:53:18 CST 2022


On 1/6/22 11:39, Francisco Casas wrote:
> +        switch (src->node.data_type->base_type)
> +        {
> +            case HLSL_TYPE_FLOAT:
> +            case HLSL_TYPE_HALF:
> +                u = src->value[k].f;
> +                i = src->value[k].f;
> +                f = src->value[k].f;
> +                d = src->value[k].f;
> +                break;
> +            case HLSL_TYPE_DOUBLE:
> +                u = src->value[k].d;
> +                i = src->value[k].d;
> +                f = src->value[k].d;
> +                d = src->value[k].d;
> +                break;
> +            case HLSL_TYPE_INT:
> +                u = src->value[k].i;
> +                i = src->value[k].i;
> +                f = src->value[k].i;
> +                d = src->value[k].i;
> +                break;
> +            case HLSL_TYPE_UINT:
> +                u = src->value[k].u;
> +                i = src->value[k].u;
> +                f = src->value[k].u;
> +                d = src->value[k].u;
> +                break;
> +            case HLSL_TYPE_BOOL:
> +                u = !!src->value[k].u;
> +                i = !!src->value[k].u;
> +                f = !!src->value[k].u;
> +                d = !!src->value[k].u;
> +                break;

Booleans still use the "b" member upstream.

> +            default:
> +                FIXME("Cast from %s to %s.\n", debug_hlsl_type(ctx, src->node.data_type),
> +                        debug_hlsl_type(ctx, tgt->node.data_type));
> +                return 0;
> +        }



More information about the wine-devel mailing list