summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/FramebufferManager.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-04-28 16:13:49 +1000
committerStenzek <stenzek@gmail.com>2019-04-28 16:13:49 +1000
commit53af27b1338827d6f08ef87a8f360dc1ceb550f8 (patch)
tree77fc416543f7000b314987eeeeb51804cb20999e /Source/Core/VideoCommon/FramebufferManager.cpp
parent5399995c611f6ae4197baca2cd5e3746f4827d1e (diff)
FramebufferManager: Fix invalid transitions for 1xIR in EFB cache
Diffstat (limited to 'Source/Core/VideoCommon/FramebufferManager.cpp')
-rw-r--r--Source/Core/VideoCommon/FramebufferManager.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/FramebufferManager.cpp b/Source/Core/VideoCommon/FramebufferManager.cpp
index 39b389e283..6f4e132c06 100644
--- a/Source/Core/VideoCommon/FramebufferManager.cpp
+++ b/Source/Core/VideoCommon/FramebufferManager.cpp
@@ -223,10 +223,7 @@ AbstractTexture* FramebufferManager::ResolveEFBColorTexture(const MathUtil::Rect
{
// Return the normal EFB texture if multisampling is off.
if (!IsEFBMultisampled())
- {
- m_efb_color_texture->FinishedRendering();
return m_efb_color_texture.get();
- }
// It's not valid to resolve an out-of-range rectangle.
MathUtil::Rectangle<int> clamped_region = region;
@@ -246,10 +243,7 @@ AbstractTexture* FramebufferManager::ResolveEFBColorTexture(const MathUtil::Rect
AbstractTexture* FramebufferManager::ResolveEFBDepthTexture(const MathUtil::Rectangle<int>& region)
{
if (!IsEFBMultisampled())
- {
- m_efb_depth_texture->FinishedRendering();
return m_efb_depth_texture.get();
- }
// It's not valid to resolve an out-of-range rectangle.
MathUtil::Rectangle<int> clamped_region = region;
@@ -566,6 +560,7 @@ void FramebufferManager::PopulateEFBCache(bool depth, u32 tile_index)
// Downsample from internal resolution to 1x.
// TODO: This won't produce correct results at IRs above 2x. More samples are required.
// This is the same issue as with EFB copies.
+ src_texture->FinishedRendering();
g_renderer->BeginUtilityDrawing();
const float rcp_src_width = 1.0f / m_efb_framebuffer->GetWidth();