Module: vkd3d Branch: master Commit: a471c5567acaf467292cdfb9c061e2213b348805 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/a471c5567acaf467292cdfb9c061e2...
Author: Giovanni Mascellani gmascellani@codeweavers.com Date: Fri May 26 14:24:07 2023 +0200
vkd3d-shader/tpf: Emit constant values inline.
---
libs/vkd3d-shader/tpf.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index feea213d..de4e9bc7 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -3540,6 +3540,14 @@ static void sm4_src_from_node(struct sm4_src_register *src, { unsigned int writemask;
+ if (instr->type == HLSL_IR_CONSTANT) + { + struct hlsl_ir_constant *constant = hlsl_ir_constant(instr); + + sm4_src_from_constant_value(src, &constant->value, instr->data_type->dimx, map_writemask); + return; + } + sm4_register_from_node(&src->reg, &writemask, &src->swizzle_type, instr); if (src->swizzle_type == VKD3D_SM4_SWIZZLE_VEC4) src->swizzle = hlsl_map_swizzle(hlsl_swizzle_from_writemask(writemask), map_writemask);