[PATCH vkd3d 12/17] vkd3d-shader/hlsl: Introduce hlsl_new_store_index().

Giovanni Mascellani gmascellani at codeweavers.com
Tue Jul 19 04:25:07 CDT 2022


Hi,

Il 15/07/22 03:23, Francisco Casas ha scritto:
> @@ -1732,32 +1715,30 @@ static void initialize_var_components(struct hlsl_ctx *ctx, struct list *instrs,
>           struct hlsl_ir_var *dst, unsigned int *store_index, struct hlsl_ir_node *src)
>   {
>       unsigned int src_comp_count = hlsl_type_component_count(src->data_type);
> +    struct hlsl_deref dst_deref;
>       unsigned int k;
>   
> +    hlsl_init_simple_deref_from_var(&dst_deref, dst);
> +
>       for (k = 0; k < src_comp_count; ++k)
>       {
>           struct hlsl_type *dst_comp_type;
> -        unsigned int dst_reg_offset;
>           struct hlsl_ir_store *store;
> -        struct hlsl_ir_constant *c;
>           struct hlsl_ir_load *load;
>           struct hlsl_ir_node *conv;
> +        struct hlsl_block block;
>   
>           if (!(load = add_load_component(ctx, instrs, src, k, &src->loc)))
>               return;
>   
> -        dst_reg_offset = hlsl_compute_component_offset(ctx, dst->data_type, *store_index, &dst_comp_type);
> +        dst_comp_type = hlsl_type_get_component_type(ctx, dst->data_type, *store_index);
>   
>           if (!(conv = add_implicit_conversion(ctx, instrs, &load->node, dst_comp_type, &src->loc)))
>               return;
>   
> -        if (!(c = hlsl_new_uint_constant(ctx, dst_reg_offset, &src->loc)))
> +        if (!(store = hlsl_new_store_component(ctx, &block, &dst_deref, *store_index, conv)))
>               return;
> -        list_add_tail(instrs, &c->node.entry);
> -
> -        if (!(store = hlsl_new_store(ctx, dst, &c->node, conv, 0, src->loc)))
> -            return;
> -        list_add_tail(instrs, &store->node.entry);
> +        list_move_tail(instrs, &block.instrs);
>   
>           ++*store_index;
>       }

Here you are using hlsl_new_store_component(), which makes sense, so 
maybe these changes should belong to 11/17? Maybe I am blind, but I 
can't see how they depend on the changes in this patch.

Giovanni.



More information about the wine-devel mailing list