From f1254c79ed7a1aff398891f11a842885221da468 Mon Sep 17 00:00:00 2001 From: raven02 Date: Sun, 13 Apr 2014 16:03:50 +0800 Subject: [PATCH] Turn off regular alpha blending --- GPU/GLES/StateMapping.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/StateMapping.cpp b/GPU/GLES/StateMapping.cpp index 1378d7efb5..179039094f 100644 --- a/GPU/GLES/StateMapping.cpp +++ b/GPU/GLES/StateMapping.cpp @@ -325,7 +325,12 @@ void TransformDrawEngine::ApplyDrawState(int prim) { } if (((blendFuncEq >= GE_BLENDMODE_MIN) && gl_extensions.EXT_blend_minmax) || gl_extensions.GLES3) { - glstate.blendEquation.set(eqLookup[blendFuncEq]); + if (blendFuncEq == GE_BLENDMODE_ABSDIFF && gl_extensions.EXT_shader_framebuffer_fetch) { + // Handle GE_BLENDMODE_ABSDIFF in fragment shader and turn off regular alpha blending here. + glstate.blend.set(false); + } else { + glstate.blendEquation.set(eqLookup[blendFuncEq]); + } } else { glstate.blendEquation.set(eqLookupNoMinMax[blendFuncEq]); }