diff --git a/Source/Core/VideoBackends/D3D/Render.cpp b/Source/Core/VideoBackends/D3D/Render.cpp index 86f93fc9ad..0f5aaa8853 100644 --- a/Source/Core/VideoBackends/D3D/Render.cpp +++ b/Source/Core/VideoBackends/D3D/Render.cpp @@ -615,7 +615,7 @@ void Renderer::SetBlendMode(bool forceUpdate) (target_has_alpha) ? D3D11_BLEND_INV_DEST_ALPHA : D3D11_BLEND_ZERO }; - if (bpmem.blendmode.logicopenable && !forceUpdate) + if (bpmem.blendmode.logicopenable && !bpmem.blendmode.blendenable && !forceUpdate) return; if (bpmem.blendmode.subtract) @@ -1234,7 +1234,7 @@ void Renderer::SetLogicOpMode() D3D11_BLEND_ONE//15 }; - if (bpmem.blendmode.logicopenable) + if (bpmem.blendmode.logicopenable && !bpmem.blendmode.blendenable) { gx_state.blend.blend_enable = true; gx_state.blend.blend_op = d3dLogicOps[bpmem.blendmode.logicmode]; diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index f26a1460ce..9ee86471ff 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -1882,7 +1882,7 @@ void Renderer::SetLogicOpMode() GL_SET }; - if (bpmem.blendmode.logicopenable) + if (bpmem.blendmode.logicopenable && !bpmem.blendmode.blendenable) { glEnable(GL_COLOR_LOGIC_OP); glLogicOp(glLogicOpCodes[bpmem.blendmode.logicmode]);