From c532118d94dea0bbafff7b92000c1a25cd4e021d Mon Sep 17 00:00:00 2001 From: gdkchan Date: Wed, 5 Apr 2023 00:25:19 -0300 Subject: Use index fragment shader output when dual source blend is enabled (#4404) * Use index fragment shader output when dual source blend is enabled * Shader cache version bump * Actually set DualSourceBlendEnabled to true * Fix XML doc --------- Co-authored-by: Ac_K --- Ryujinx.Graphics.OpenGL/Pipeline.cs | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) (limited to 'Ryujinx.Graphics.OpenGL') diff --git a/Ryujinx.Graphics.OpenGL/Pipeline.cs b/Ryujinx.Graphics.OpenGL/Pipeline.cs index 62996bd0..6b6d0289 100644 --- a/Ryujinx.Graphics.OpenGL/Pipeline.cs +++ b/Ryujinx.Graphics.OpenGL/Pipeline.cs @@ -833,31 +833,13 @@ namespace Ryujinx.Graphics.OpenGL (BlendingFactorSrc)blend.AlphaSrcFactor.Convert(), (BlendingFactorDest)blend.AlphaDstFactor.Convert()); - static bool IsDualSource(BlendFactor factor) - { - switch (factor) - { - case BlendFactor.Src1Color: - case BlendFactor.Src1ColorGl: - case BlendFactor.Src1Alpha: - case BlendFactor.Src1AlphaGl: - case BlendFactor.OneMinusSrc1Color: - case BlendFactor.OneMinusSrc1ColorGl: - case BlendFactor.OneMinusSrc1Alpha: - case BlendFactor.OneMinusSrc1AlphaGl: - return true; - } - - return false; - } - EnsureFramebuffer(); _framebuffer.SetDualSourceBlend( - IsDualSource(blend.ColorSrcFactor) || - IsDualSource(blend.ColorDstFactor) || - IsDualSource(blend.AlphaSrcFactor) || - IsDualSource(blend.AlphaDstFactor)); + blend.ColorSrcFactor.IsDualSource() || + blend.ColorDstFactor.IsDualSource() || + blend.AlphaSrcFactor.IsDualSource() || + blend.AlphaDstFactor.IsDualSource()); if (_blendConstant != blend.BlendConstant) { -- cgit v1.2.3