From f6c35144e40950943375d43dcab7a74871561642 Mon Sep 17 00:00:00 2001 From: Shaun Ren Date: Wed, 26 Feb 2025 21:00:00 -0500 Subject: [PATCH] vkd3d-shader/hlsl: Support patch arrays in hlsl_reg_from_deref(). --- libs/vkd3d-shader/hlsl_codegen.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index c0c0ad78..59d9f722 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -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;