Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl_codegen.c:
+ assert(hlsl_type_get_regset(sampler_array_type) == HLSL_REGSET_SAMPLERS); + + hlsl_copy_deref(ctx, &deref_to_sampler_array, &sample->resource); + hlsl_strip_deref_suffix(ctx, &deref_to_sampler_array, path_len_to_sampler_array); + + if (!(name = hlsl_get_string_buffer(ctx))) + return false; + vkd3d_string_buffer_printf(name, "<resource>"); + hlsl_write_deref_path(ctx, name, &deref_to_sampler_array); + + TRACE("Lowering to separate resource %s.\n", debugstr_a(name->buffer)); + + if (!(var = hlsl_get_var(ctx->globals, name->buffer))) + { + struct hlsl_type *data_type = hlsl_new_texture_type(ctx, sample->sampling_dim, + ctx->builtin_types.vector[HLSL_TYPE_FLOAT][4 - 1], 0); You can use `hlsl_get_vector_type()`.
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/209#note_33388