From 6fcc7e9c3612cca64b3e6878046fc08b7b327292 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 29 May 2018 23:52:54 -0400 Subject: gl_shader_decompiler: F2F_R instruction: Implement abs. --- src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/video_core') diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index c17bd7d2c..70ddea643 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -853,7 +853,13 @@ private: break; } case OpCode::Id::F2F_R: { - regs.SetRegisterToFloat(instr.gpr0, 0, regs.GetRegisterAsFloat(instr.gpr20), 1, 1); + std::string op_a = regs.GetRegisterAsFloat(instr.gpr20); + + if (instr.conversion.abs_a) { + op_a = "abs(" + op_a + ')'; + } + + regs.SetRegisterToFloat(instr.gpr0, 0, op_a, 1, 1); break; } default: { -- cgit v1.2.3