diff options
author | bunnei <bunneidev@gmail.com> | 2018-09-07 01:19:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-07 01:19:04 +0200 |
commit | 6faf1b0972a5bdc563491ca6bc1a9633f32e6666 (patch) | |
tree | b25152a76618497ef6397c3af84b9b0780d80897 | |
parent | Merge pull request #1248 from degasus/shader_fix (diff) | |
parent | gl_shader_decompiler: Implement saturate mode for IPA. (diff) | |
download | yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.tar yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.tar.gz yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.tar.bz2 yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.tar.lz yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.tar.xz yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.tar.zst yuzu-6faf1b0972a5bdc563491ca6bc1a9633f32e6666.zip |
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 6 |
1 files changed, 5 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 781ddb073..841647ebe 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -2197,11 +2197,15 @@ private: case OpCode::Id::IPA: { const auto& attribute = instr.attribute.fmt28; const auto& reg = instr.gpr0; - ASSERT_MSG(instr.ipa.saturate == 0, "IPA saturate not implemented"); + Tegra::Shader::IpaMode input_mode{instr.ipa.interp_mode.Value(), instr.ipa.sample_mode.Value()}; regs.SetRegisterToInputAttibute(reg, attribute.element, attribute.index, input_mode); + + if (instr.ipa.saturate) { + regs.SetRegisterToFloat(reg, 0, regs.GetRegisterAsFloat(reg), 1, 1, true); + } break; } case OpCode::Id::SSY: { |