summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2020-09-24 10:25:48 +1000
committerStenzek <stenzek@gmail.com>2020-09-25 20:58:02 +1000
commit880f7ca6bb9df5bdb4e3765697ffdf60b59d68f3 (patch)
tree11369d0157c41ae9071c4c29289df5c220ec8bab
parent57f14b260bf043b6c261ca284b6c45fa3a7932de (diff)
FramebufferManager: Fix EFB readbacks with MSAA on
Regression from #8827.
-rw-r--r--Source/Core/VideoCommon/FramebufferManager.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/FramebufferManager.cpp b/Source/Core/VideoCommon/FramebufferManager.cpp
index c989f9d5c8..edf4e5427e 100644
--- a/Source/Core/VideoCommon/FramebufferManager.cpp
+++ b/Source/Core/VideoCommon/FramebufferManager.cpp
@@ -258,8 +258,8 @@ AbstractTexture* FramebufferManager::ResolveEFBColorTexture(const MathUtil::Rect
AbstractTexture* FramebufferManager::ResolveEFBDepthTexture(const MathUtil::Rectangle<int>& region,
bool force_r32f)
{
- if (!IsEFBMultisampled() || !force_r32f ||
- m_efb_depth_texture->GetFormat() == AbstractTextureFormat::R32F)
+ if (!IsEFBMultisampled() &&
+ (!force_r32f || m_efb_depth_texture->GetFormat() == AbstractTextureFormat::D32F))
{
return m_efb_depth_texture.get();
}
@@ -271,7 +271,8 @@ AbstractTexture* FramebufferManager::ResolveEFBDepthTexture(const MathUtil::Rect
m_efb_depth_texture->FinishedRendering();
g_renderer->BeginUtilityDrawing();
g_renderer->SetAndDiscardFramebuffer(m_efb_depth_resolve_framebuffer.get());
- g_renderer->SetPipeline(m_efb_depth_resolve_pipeline.get());
+ g_renderer->SetPipeline(IsEFBMultisampled() ? m_efb_depth_resolve_pipeline.get() :
+ m_efb_depth_cache.copy_pipeline.get());
g_renderer->SetTexture(0, m_efb_depth_texture.get());
g_renderer->SetSamplerState(0, RenderState::GetPointSamplerState());
g_renderer->SetViewportAndScissor(clamped_region);