[PATCH vkd3d 7/8] vkd3d-shader/hlsl: Swap failure and success branches in copy_propagation_transform_load().

Zebediah Figura (she/her) zfigura at codeweavers.com
Tue May 3 12:57:53 CDT 2022


On 5/3/22 04:57, Giovanni Mascellani wrote:
> Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
> ---
>   libs/vkd3d-shader/hlsl_codegen.c | 22 ++++++++++++----------
>   1 file changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c
> index 78b22910..7c401e14 100644
> --- a/libs/vkd3d-shader/hlsl_codegen.c
> +++ b/libs/vkd3d-shader/hlsl_codegen.c
> @@ -474,18 +474,20 @@ static bool copy_propagation_transform_load(struct hlsl_ctx *ctx,
>               return false;
>       }
>   
> -    if (!(new_node = copy_propagation_compute_replacement(ctx, state, &load->src, dimx, &swizzle)))
> -        return false;
> -
> -    if (type->type != HLSL_CLASS_OBJECT)
> +    if ((new_node = copy_propagation_compute_replacement(ctx, state, &load->src, dimx, &swizzle)))
>       {
> -        if (!(swizzle_node = hlsl_new_swizzle(ctx, swizzle, dimx, new_node, &node->loc)))
> -            return false;
> -        list_add_before(&node->entry, &swizzle_node->node.entry);
> -        new_node = &swizzle_node->node;
> +        if (type->type != HLSL_CLASS_OBJECT)
> +        {
> +            if (!(swizzle_node = hlsl_new_swizzle(ctx, swizzle, dimx, new_node, &node->loc)))
> +                return false;
> +            list_add_before(&node->entry, &swizzle_node->node.entry);
> +            new_node = &swizzle_node->node;
> +        }
> +        hlsl_replace_node(node, new_node);
> +        return true;
>       }
> -    hlsl_replace_node(node, new_node);
> -    return true;
> +
> +    return false;
>   }
>   
>   static bool copy_propagation_transform_object_load(struct hlsl_ctx *ctx,

I'm not sure I see how this is an improvement?



More information about the wine-devel mailing list