diff options
author | bunnei <bunneidev@gmail.com> | 2016-03-16 18:17:07 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2016-03-16 18:17:07 +0100 |
commit | caba93fa455ff52a297db057ccae5d5108b115b9 (patch) | |
tree | 8d7e8bfe85f72eaff15209cb7eccb391b84d25e5 /src/video_core/shader/shader_interpreter.cpp | |
parent | Merge pull request #1526 from bunnei/sdl-rgb8 (diff) | |
parent | PICA: Fix MAD/MADI encoding (diff) | |
download | yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.tar yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.tar.gz yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.tar.bz2 yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.tar.lz yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.tar.xz yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.tar.zst yuzu-caba93fa455ff52a297db057ccae5d5108b115b9.zip |
Diffstat (limited to 'src/video_core/shader/shader_interpreter.cpp')
-rw-r--r-- | src/video_core/shader/shader_interpreter.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp index 79fcc56b9..295a2466b 100644 --- a/src/video_core/shader/shader_interpreter.cpp +++ b/src/video_core/shader/shader_interpreter.cpp @@ -413,9 +413,12 @@ void RunInterpreter(UnitState<Debug>& state) { bool is_inverted = (instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MADI); + const int address_offset = (instr.mad.address_register_index == 0) + ? 0 : state.address_registers[instr.mad.address_register_index - 1]; + const float24* src1_ = LookupSourceRegister(instr.mad.GetSrc1(is_inverted)); - const float24* src2_ = LookupSourceRegister(instr.mad.GetSrc2(is_inverted)); - const float24* src3_ = LookupSourceRegister(instr.mad.GetSrc3(is_inverted)); + const float24* src2_ = LookupSourceRegister(instr.mad.GetSrc2(is_inverted) + (!is_inverted * address_offset)); + const float24* src3_ = LookupSourceRegister(instr.mad.GetSrc3(is_inverted) + ( is_inverted * address_offset)); const bool negate_src1 = ((bool)swizzle.negate_src1 != false); const bool negate_src2 = ((bool)swizzle.negate_src2 != false); |