From 426c68b5a00a8de18975739de2bdb6575428669b Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Mon, 2 Aug 2021 23:41:26 -0400 Subject: [PATCH] ShaderCache: Don't turn on logic ops approximation if framebuffer fetch is supported --- Source/Core/VideoCommon/ShaderCache.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 8b1196cabc..9b2ae56f0b 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -585,7 +585,9 @@ AbstractPipelineConfig ShaderCache::GetGXPipelineConfig( config.blending_state = blending_state; config.framebuffer_state = g_framebuffer_manager->GetEFBFramebufferState(); - if (config.blending_state.logicopenable && !g_ActiveConfig.backend_info.bSupportsLogicOp) + // We can use framebuffer fetch to emulate logic ops in the fragment shader. + if (config.blending_state.logicopenable && !g_ActiveConfig.backend_info.bSupportsLogicOp && + !g_ActiveConfig.backend_info.bSupportsFramebufferFetch) { WARN_LOG_FMT(VIDEO, "Approximating logic op with blending, this will produce incorrect rendering.");