summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorOatmealDome <julian@oatmealdome.me>2021-08-02 23:41:26 -0400
committerOatmealDome <julian@oatmealdome.me>2021-12-06 22:36:40 -0500
commit426c68b5a00a8de18975739de2bdb6575428669b (patch)
treebbaf1e16b952ae681b20b38ed41f42e8584cf0d9 /Source/Core
parentf87f704f43a18c8ff6eeeebc44ece07f02985c98 (diff)
ShaderCache: Don't turn on logic ops approximation if framebuffer fetch is supported
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoCommon/ShaderCache.cpp4
1 files changed, 3 insertions, 1 deletions
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.");