Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl_sm4.c:
{ - if (a->data_type->base_type != b->data_type->base_type) - return a->data_type->base_type - b->data_type->base_type; - if (a->reg.allocated && b->reg.allocated) - return a->reg.id - b->reg.id; + enum hlsl_regset a_regset, b_regset; + bool a_allocated, b_allocated; + unsigned int a_id, b_id; + + a_regset = HLSL_REGSET_NUMERIC; + if (hlsl_type_is_resource(a->data_type)) + a_regset = hlsl_type_get_regset(ctx, a->data_type); + + b_regset = HLSL_REGSET_NUMERIC; + if (hlsl_type_is_resource(b->data_type)) + b_regset = hlsl_type_get_regset(ctx, b->data_type); I don't know if this is right, but it looks like a hack. What are we supposed to do with structs?
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/66#note_23481