summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-04-10 06:02:12 +0200
committerbunnei <bunneidev@gmail.com>2018-04-17 21:25:54 +0200
commit5d529698c94da9c13f8a685d817c9f660fd8abee (patch)
treed46f9497d066ced9f35c815df40eac7c0d491905 /src
parentMerge pull request #341 from shinyquagsire23/pfs-hfs-impl (diff)
downloadyuzu-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.cpp13
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;
}
}