summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-05-30 05:10:44 +0200
committerbunnei <bunneidev@gmail.com>2018-05-30 05:10:44 +0200
commit68937a662dd09e67a7558e6ab21c5f31338db2a4 (patch)
treeb376dc84787c4548a3a093f5c6da0f862d5e6884 /src/video_core/renderer_opengl/gl_shader_decompiler.cpp
parentnvhost_ctrl: Stub out IocCtrlEventRegister. (diff)
downloadyuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.tar
yuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.tar.gz
yuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.tar.bz2
yuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.tar.lz
yuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.tar.xz
yuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.tar.zst
yuzu-68937a662dd09e67a7558e6ab21c5f31338db2a4.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 75822e750..c17bd7d2c 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -834,13 +834,14 @@ private:
}
case OpCode::Type::Conversion: {
ASSERT_MSG(instr.conversion.size == Register::Size::Word, "Unimplemented");
- ASSERT_MSG(!instr.conversion.selector, "Unimplemented");
ASSERT_MSG(!instr.conversion.negate_a, "Unimplemented");
ASSERT_MSG(!instr.conversion.saturate_a, "Unimplemented");
switch (opcode->GetId()) {
case OpCode::Id::I2I_R:
case OpCode::Id::I2F_R: {
+ ASSERT_MSG(!instr.conversion.selector, "Unimplemented");
+
std::string op_a =
regs.GetRegisterAsInteger(instr.gpr20, 0, instr.conversion.is_signed);
@@ -851,6 +852,10 @@ private:
regs.SetRegisterToInteger(instr.gpr0, instr.conversion.is_signed, 0, op_a, 1, 1);
break;
}
+ case OpCode::Id::F2F_R: {
+ regs.SetRegisterToFloat(instr.gpr0, 0, regs.GetRegisterAsFloat(instr.gpr20), 1, 1);
+ break;
+ }
default: {
NGLOG_CRITICAL(HW_GPU, "Unhandled conversion instruction: {}", opcode->GetName());
UNREACHABLE();