vkd3d-shader/hlsl: Avoid hlsl_type_get_regset() in sm4_get_extern_resources().

This commit is contained in:
Francisco Casas 2023-06-09 17:44:54 -04:00 committed by Alexandre Julliard
parent dfce1e7f4a
commit cd0e3786c3
Notes: Alexandre Julliard 2023-10-05 22:36:55 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/342

View File

@ -3296,10 +3296,14 @@ static struct extern_resource *sm4_get_extern_resources(struct hlsl_ctx *ctx, un
}
else
{
unsigned int r;
if (!hlsl_type_is_resource(var->data_type))
continue;
regset = hlsl_type_get_regset(var->data_type);
if (!var->regs[regset].allocated)
for (r = 0; r <= HLSL_REGSET_LAST; ++r)
{
if (!var->regs[r].allocated)
continue;
if (!(hlsl_array_reserve(ctx, (void **)&extern_resources, &capacity, *count + 1,
@ -3323,13 +3327,14 @@ static struct extern_resource *sm4_get_extern_resources(struct hlsl_ctx *ctx, un
extern_resources[*count].data_type = var->data_type;
extern_resources[*count].is_user_packed = !!var->reg_reservation.reg_type;
extern_resources[*count].regset = regset;
extern_resources[*count].id = var->regs[regset].id;
extern_resources[*count].bind_count = var->bind_count[regset];
extern_resources[*count].regset = r;
extern_resources[*count].id = var->regs[r].id;
extern_resources[*count].bind_count = var->bind_count[r];
++*count;
}
}
}
qsort(extern_resources, *count, sizeof(*extern_resources), sm4_compare_extern_resources);
return extern_resources;