vkd3d-shader/hlsl: Support patch arrays in hlsl_reg_from_deref().

This commit is contained in:
Shaun Ren
2025-02-26 21:00:00 -05:00
committed by Henri Verbeet
parent 261b5120f6
commit f6c35144e4
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

View File

@@ -6087,11 +6087,14 @@ struct hlsl_reg hlsl_reg_from_deref(struct hlsl_ctx *ctx, const struct hlsl_dere
{
const struct hlsl_ir_var *var = deref->var;
struct hlsl_reg ret = var->regs[HLSL_REGSET_NUMERIC];
unsigned int offset = hlsl_offset_from_deref_safe(ctx, deref);
unsigned int offset = 0;
VKD3D_ASSERT(deref->data_type);
VKD3D_ASSERT(hlsl_is_numeric_type(deref->data_type));
if (!hlsl_type_is_patch_array(deref->var->data_type))
offset = hlsl_offset_from_deref_safe(ctx, deref);
ret.index += offset / 4;
ret.id += offset / 4;