mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader/hlsl: Allow non-constant indices in register_deref_usage().
This commit is contained in:
Notes:
Henri Verbeet
2025-03-12 22:20:19 +01:00
Approved-by: Francisco Casas (@fcasas) Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1388
@ -4807,8 +4807,7 @@ static void register_deref_usage(struct hlsl_ctx *ctx, struct hlsl_deref *deref)
|
|||||||
struct hlsl_type *type;
|
struct hlsl_type *type;
|
||||||
unsigned int index;
|
unsigned int index;
|
||||||
|
|
||||||
if (!hlsl_regset_index_from_deref(ctx, deref, regset, &index))
|
hlsl_regset_index_from_deref(ctx, deref, regset, &index);
|
||||||
return;
|
|
||||||
|
|
||||||
if (regset <= HLSL_REGSET_LAST_OBJECT)
|
if (regset <= HLSL_REGSET_LAST_OBJECT)
|
||||||
{
|
{
|
||||||
@ -4819,7 +4818,6 @@ static void register_deref_usage(struct hlsl_ctx *ctx, struct hlsl_deref *deref)
|
|||||||
{
|
{
|
||||||
type = hlsl_deref_get_type(ctx, deref);
|
type = hlsl_deref_get_type(ctx, deref);
|
||||||
|
|
||||||
hlsl_regset_index_from_deref(ctx, deref, regset, &index);
|
|
||||||
required_bind_count = align(index + type->reg_size[regset], 4) / 4;
|
required_bind_count = align(index + type->reg_size[regset], 4) / 4;
|
||||||
var->bind_count[regset] = max(var->bind_count[regset], required_bind_count);
|
var->bind_count[regset] = max(var->bind_count[regset], required_bind_count);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user