From 24be4b4969d0103dab41b0f1bf8e627de9e67f98 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sat, 2 Jan 2016 20:18:58 +0100 Subject: [PATCH] gsdx-ogl: remove unsafe fbmask of the free SW blending Initially it was free to do the SW blending because safe fbmask will already do a sw blending. Unsafe version uses a fast path with a limited blending. Therefore SW blending isn't free anymore. Improve the speed of the previous speed hack (xenosaga 1) --- plugins/GSdx/GSRendererOGL.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GSdx/GSRendererOGL.cpp b/plugins/GSdx/GSRendererOGL.cpp index 4c3ef80b4c..3785a2b4e1 100644 --- a/plugins/GSdx/GSRendererOGL.cpp +++ b/plugins/GSdx/GSRendererOGL.cpp @@ -387,7 +387,7 @@ bool GSRendererOGL::EmulateBlending(GSDeviceOGL::PSSelector& ps_sel, bool DATE_G ((ALPHA.C == 0 && m_vt.m_alpha.max > 128) || (ALPHA.C == 2 && ALPHA.FIX > 128u)); case ACC_BLEND_CCLIP_DALPHA: sw_blending |= (ALPHA.C == 1) || (m_env.COLCLAMP.CLAMP == 0); case ACC_BLEND_SPRITE: sw_blending |= m_vt.m_primclass == GS_SPRITE_CLASS; - case ACC_BLEND_FREE: sw_blending |= ps_sel.fbmask || impossible_or_free_blend; + case ACC_BLEND_FREE: sw_blending |= (ps_sel.fbmask && !m_unsafe_fbmask) || impossible_or_free_blend; // blending is only free when we use slow fbmask default: sw_blending |= accumulation_blend; } // SW Blending