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