[PATCH vkd3d 12/17] vkd3d-shader/hlsl: Introduce hlsl_new_store_index().
Francisco Casas
fcasas at codeweavers.com
Tue Jul 19 11:00:51 CDT 2022
Yep, you are totally right, I should have left this change in the
previous commit when I split the patch.
Good catch!
On 19-07-22 05:25, Giovanni Mascellani wrote:
> 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