Jelajahi Sumber

gl_shader_decompiler: Use fragment output color for GPR 0-3.

bunnei 8 tahun lalu
induk
melakukan
5ba71369ac
1 mengubah file dengan 5 tambahan dan 0 penghapusan
  1. 5 0
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

+ 5 - 0
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;
     }