From e3f1d4c0215f3b00545465feabe994c54475d8af Mon Sep 17 00:00:00 2001 From: WinterSnowfall Date: Tue, 28 Jan 2025 01:54:49 +0200 Subject: [PATCH] [d3d8] Fix up swizzle for all opcodes requiring a replicate swizzle --- src/d3d8/d3d8_shader.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/d3d8/d3d8_shader.cpp b/src/d3d8/d3d8_shader.cpp index 37e59de7b..1f7dfc5ec 100644 --- a/src/d3d8/d3d8_shader.cpp +++ b/src/d3d8/d3d8_shader.cpp @@ -313,8 +313,10 @@ namespace dxvk { // Instructions if ((token & VS_BIT_PARAM) == 0) { - // RSQ swizzle fixup - if (opcode == D3DSIO_RSQ) { + // Swizzle fixup for opcodes that require explicit use of a replicate swizzle. + if (opcode == D3DSIO_RSQ || opcode == D3DSIO_RCP + || opcode == D3DSIO_EXP || opcode == D3DSIO_LOG + || opcode == D3DSIO_EXPP || opcode == D3DSIO_LOGP) { tokens.push_back(token); // instr tokens.push_back(token = pFunction[i++]); // dest token = pFunction[i++]; // src0