diff options
| author | 2018-08-15 09:16:35 -0500 | |
|---|---|---|
| committer | 2018-08-15 09:16:35 -0500 | |
| commit | 5ef447cc0eecede9f6c622ac50376a1d3f15d3ee (patch) | |
| tree | 69895ff02e954bd54ca8657d7554321033f33f22 | |
| parent | Shader/F2I: Implemented the negate bit in the F2I instruction. (diff) | |
| download | yuzu-5ef447cc0eecede9f6c622ac50376a1d3f15d3ee.tar.gz yuzu-5ef447cc0eecede9f6c622ac50376a1d3f15d3ee.tar.xz yuzu-5ef447cc0eecede9f6c622ac50376a1d3f15d3ee.zip | |
Shader/F2I: Implemented the F2I_C instruction variant.
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 12 |
1 files changed, 10 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 5bd128e4f..054b8b13d 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -1298,9 +1298,17 @@ private: | |||
| 1298 | regs.SetRegisterToFloat(instr.gpr0, 0, op_a, 1, 1, instr.alu.saturate_d); | 1298 | regs.SetRegisterToFloat(instr.gpr0, 0, op_a, 1, 1, instr.alu.saturate_d); |
| 1299 | break; | 1299 | break; |
| 1300 | } | 1300 | } |
| 1301 | case OpCode::Id::F2I_R: { | 1301 | case OpCode::Id::F2I_R: |
| 1302 | case OpCode::Id::F2I_C: { | ||
| 1302 | ASSERT_MSG(instr.conversion.src_size == Register::Size::Word, "Unimplemented"); | 1303 | ASSERT_MSG(instr.conversion.src_size == Register::Size::Word, "Unimplemented"); |
| 1303 | std::string op_a = regs.GetRegisterAsFloat(instr.gpr20); | 1304 | std::string op_a{}; |
| 1305 | |||
| 1306 | if (instr.is_b_gpr) { | ||
| 1307 | op_a = regs.GetRegisterAsFloat(instr.gpr20); | ||
| 1308 | } else { | ||
| 1309 | op_a = regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset, | ||
| 1310 | GLSLRegister::Type::Float); | ||
| 1311 | } | ||
| 1304 | 1312 | ||
| 1305 | if (instr.conversion.abs_a) { | 1313 | if (instr.conversion.abs_a) { |
| 1306 | op_a = "abs(" + op_a + ')'; | 1314 | op_a = "abs(" + op_a + ')'; |