diff options
author | Georg Lehmann <dadschoorse@gmail.com> | 2021-10-20 15:02:39 +0300 |
---|---|---|
committer | Joshua Ashton <joshua@froggi.es> | 2021-10-22 02:38:16 +0300 |
commit | 3175b62a32a40e91c963cf07ed70666ab8c3d935 (patch) | |
tree | 839291a4d4e45ab842f221af7fa52326f7b86211 | |
parent | 34f828522fff903ef41eab7d106be09e11fd54df (diff) |
[dxso] Respect SM2+ sampler source swizzle.dxvk-native-1.9.2a
-rw-r--r-- | src/dxso/dxso_compiler.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dxso/dxso_compiler.cpp b/src/dxso/dxso_compiler.cpp index f7bd312b..1656c517 100644 --- a/src/dxso/dxso_compiler.cpp +++ b/src/dxso/dxso_compiler.cpp @@ -2843,7 +2843,10 @@ void DxsoCompiler::emitControlFlowGenericLoop( } // Apply operand swizzle to the operand value - result = emitRegisterSwizzle(result, IdentitySwizzle, ctx.dst.mask); + if (m_programInfo.majorVersion() >= 2) // SM 2.0+ + result = emitRegisterSwizzle(result, ctx.src[1].swizzle, ctx.dst.mask); + else + result = emitRegisterSwizzle(result, IdentitySwizzle, ctx.dst.mask); if (opcode == DxsoOpcode::TexBemL) { uint32_t float_t = m_module.defFloatType(32); |