summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexManagerBase.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2019-03-12 03:10:20 -0400
committerGitHub <noreply@github.com>2019-03-12 03:10:20 -0400
commit22e7419747cf629c185546052006872f6d4838d6 (patch)
tree5552e6e5d05b6f2edd25ea52a5ad3614e3874709 /Source/Core/VideoCommon/VertexManagerBase.cpp
parent909e9322e78ecbe45f6982dd5226bcbe6bc74e68 (diff)
parent0e2397a1bc7da07312ad8f7a82d3745d7e9a56ed (diff)
Merge pull request #7838 from stenzek/efb-tile-cache
FramebufferManager: Implement EFB tile cache
Diffstat (limited to 'Source/Core/VideoCommon/VertexManagerBase.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexManagerBase.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp
index bbc355a98c..06168c6cec 100644
--- a/Source/Core/VideoCommon/VertexManagerBase.cpp
+++ b/Source/Core/VideoCommon/VertexManagerBase.cpp
@@ -99,8 +99,7 @@ u32 VertexManagerBase::GetRemainingSize() const
DataReader VertexManagerBase::PrepareForAdditionalData(int primitive, u32 count, u32 stride,
bool cullall)
{
- // Flush all EFB pokes and invalidate the peek cache.
- g_framebuffer_manager->InvalidatePeekCache();
+ // Flush all EFB pokes. Since the buffer is shared, we can't draw pokes+primitives concurrently.
g_framebuffer_manager->FlushEFBPokes();
// The SSE vertex loader can write up to 4 bytes past the end
@@ -449,6 +448,9 @@ void VertexManagerBase::Flush()
g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP);
OnDraw();
+
+ // The EFB cache is now potentially stale.
+ g_framebuffer_manager->FlagPeekCacheAsOutOfDate();
}
}