Przeglądaj źródła

gl_shader_gen: Fix bug where TEV stage outputs should be clamped.

bunnei 10 lat temu
rodzic
commit
bd833b8dd8

+ 3 - 3
src/video_core/renderer_opengl/gl_shader_gen.cpp

@@ -307,9 +307,9 @@ static void WriteTevStage(std::string& out, const ShaderCacheKey& config, unsign
         AppendAlphaCombiner(out, stage.alpha_op, "alpha_results_" + index_name);
         AppendAlphaCombiner(out, stage.alpha_op, "alpha_results_" + index_name);
         out += ";\n";
         out += ";\n";
 
 
-        out += "g_last_tex_env_out = vec4(min(color_output_" + index_name + " * " +
-            std::to_string(stage.GetColorMultiplier()) + ".0, 1.0), min(alpha_output_" + index_name + " * " +
-            std::to_string(stage.GetAlphaMultiplier()) + ".0, 1.0));\n";
+        out += "g_last_tex_env_out = vec4("
+            "clamp(color_output_" + index_name + " * " + std::to_string(stage.GetColorMultiplier()) + ".0, 0.0, 1.0),"
+            "clamp(alpha_output_" + index_name + " * " + std::to_string(stage.GetAlphaMultiplier()) + ".0, 0.0, 1.0));\n";
     }
     }
 
 
     if (config.TevStageUpdatesCombinerBufferColor(index))
     if (config.TevStageUpdatesCombinerBufferColor(index))