diff options
author | bunnei <bunneidev@gmail.com> | 2018-04-10 06:02:12 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-04-17 21:25:54 +0200 |
commit | 5d529698c94da9c13f8a685d817c9f660fd8abee (patch) | |
tree | d46f9497d066ced9f35c815df40eac7c0d491905 /src | |
parent | Merge pull request #341 from shinyquagsire23/pfs-hfs-impl (diff) | |
download | yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.tar yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.tar.gz yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.tar.bz2 yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.tar.lz yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.tar.xz yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.tar.zst yuzu-5d529698c94da9c13f8a685d817c9f660fd8abee.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index e11711533..a439da470 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -270,6 +270,17 @@ private: SetDest(0, dest, op_a + " + " + op_b, 1, 1); break; } + case OpCode::Id::MUFU: { + switch (instr.sub_op) { + case SubOp::Rcp: + SetDest(0, dest, "1.0 / " + op_a, 1, 1); + break; + default: + LOG_ERROR(HW_GPU, "Unhandled sub op: 0x%02x", (int)instr.sub_op.Value()); + throw DecompileFail("Unhandled sub op"); + } + break; + } default: { LOG_CRITICAL(HW_GPU, "Unhandled arithmetic instruction: 0x%02x (%s): 0x%08x", static_cast<unsigned>(instr.opcode.EffectiveOpCode()), @@ -298,7 +309,6 @@ private: SetDest(0, dest, op_a + " * " + op_b + " + " + op_c, 1, 1); break; } - default: { LOG_CRITICAL(HW_GPU, "Unhandled arithmetic FFMA instruction: 0x%02x (%s): 0x%08x", static_cast<unsigned>(instr.opcode.EffectiveOpCode()), @@ -347,7 +357,6 @@ private: LOG_CRITICAL(HW_GPU, "Unhandled instruction: 0x%02x (%s): 0x%08x", static_cast<unsigned>(instr.opcode.EffectiveOpCode()), OpCode::GetInfo(instr.opcode).name.c_str(), instr.hex); - throw DecompileFail("Unhandled instruction"); break; } } |