vkd3d-shader/hlsl: Store constant values as an array of unions.

This allows us to more easily manipulate individual elements in a type-agnostic
way. For example, it allows easier implementation of constant swizzle folding.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura
2021-09-20 16:40:10 -05:00
committed by Alexandre Julliard
parent e2b57f6d2b
commit b4e301b2d8
5 changed files with 37 additions and 32 deletions

View File

@@ -962,7 +962,7 @@ static void write_sm4_constant(struct hlsl_ctx *ctx,
instr.srcs[0].reg.idx[0] = constant->reg.id;
instr.srcs[0].reg.idx_count = 1;
for (i = 0; i < dimx; ++i)
instr.srcs[0].reg.immconst_uint[i] = constant->value.u[i];
instr.srcs[0].reg.immconst_uint[i] = constant->value[i].u;
instr.src_count = 1,
write_sm4_instruction(buffer, &instr);