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()`.