summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-04-10 00:04:49 -0400
committerbunnei <bunneidev@gmail.com>2018-04-17 15:25:54 -0400
commit5ba71369acca9c0d58e9cea4c915a921029ddab4 (patch)
treea13b97a68a5a207c9de432f19be6d7849aa751e2 /src
parent5d529698c94da9c13f8a685d817c9f660fd8abee (diff)
gl_shader_decompiler: Use fragment output color for GPR 0-3.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index a439da470..ba3aa7dd1 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -187,6 +187,11 @@ private:
/// Generates code representing a temporary (GPR) register.
std::string GetRegister(const Register& reg) {
+ if (stage == Maxwell3D::Regs::ShaderStage::Fragment && reg.GetIndex() < 4) {
+ // GPRs 0-3 are output color for the fragment shader
+ return std::string{"color."} + "rgba"[reg.GetIndex()];
+ }
+
return *declr_register.insert("register_" + std::to_string(reg)).first;
}