[PATCH vkd3d v2 10/10] vkd3d-shader/hlsl: Support array initializers.
Francisco Casas
fcasas at codeweavers.com
Mon Jan 10 13:33:18 CST 2022
Signed-off-by: Francisco Casas <fcasas at codeweavers.com>
---
libs/vkd3d-shader/hlsl.y | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
index 6fb4eb78..158ab492 100644
--- a/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d-shader/hlsl.y
@@ -1347,7 +1347,14 @@ static void generic_var_initializer(struct hlsl_ctx *ctx, struct hlsl_ir_var *va
}
else if (type->type == HLSL_CLASS_ARRAY)
{
- hlsl_fixme(ctx, &v->loc, "Initializers for arrays not supported yet.");
+ for (int i = 0; i < type->e.array.elements_count; i++)
+ {
+ struct hlsl_type *elem_type = type->e.array.type;
+ unsigned int elem_offset = i * elem_type->reg_size;
+
+ generic_var_initializer(ctx, var, v, reg_offset + elem_offset, elem_type,
+ initializer_i, instrs);
+ }
return;
}
else if (type->type == HLSL_CLASS_OBJECT)
--
2.25.1
More information about the wine-devel
mailing list