Module: vkd3d Branch: master Commit: b84b9349bfe547ee8fb49a94a90f7c2348b1b3ed URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/b84b9349bfe547ee8fb49a94a90f7c...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Jan 24 15:44:09 2023 +0300
vkd3d-shader/hlsl: Handle RSQ output for SM1.
---
libs/vkd3d-shader/hlsl_sm1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/hlsl_sm1.c b/libs/vkd3d-shader/hlsl_sm1.c index fb505473..5050b7a9 100644 --- a/libs/vkd3d-shader/hlsl_sm1.c +++ b/libs/vkd3d-shader/hlsl_sm1.c @@ -632,13 +632,14 @@ static void write_sm1_expr(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b break;
case HLSL_OP1_RCP: + case HLSL_OP1_RSQ: for (i = 0; i < instr->data_type->dimx; ++i) { struct hlsl_reg src = arg1->reg, dst = instr->reg;
src.writemask = hlsl_combine_writemasks(src.writemask, 1u << i); dst.writemask = hlsl_combine_writemasks(dst.writemask, 1u << i); - write_sm1_unary_op(ctx, buffer, D3DSIO_RCP, &dst, &src, 0); + write_sm1_unary_op(ctx, buffer, expr->op == HLSL_OP1_RCP ? D3DSIO_RCP : D3DSIO_RSQ, &dst, &src, 0); } break;