diff options
| author | Scott Mansell <phiren@gmail.com> | 2023-01-31 00:46:10 +1300 |
|---|---|---|
| committer | Scott Mansell <phiren@gmail.com> | 2023-01-31 19:41:24 +1300 |
| commit | 0da69055d9f41d838bdf94b66805540c746eaa7d (patch) | |
| tree | 74363fda70c41594e6a24d64d8e62bc78d26685f /Source/Core/VideoCommon/TextureCacheBase.cpp | |
| parent | 2a18b34a73f4f1bc798dab0a5eec46c222ec7429 (diff) | |
Split out everying remaining from Swap
Diffstat (limited to 'Source/Core/VideoCommon/TextureCacheBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 21b58d931e..6029f09c5c 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -769,6 +769,23 @@ void TextureCacheBase::DoLoadState(PointerWrap& p) } } +void TextureCacheBase::OnFrameEnd() +{ + if (m_force_reload_textures.TestAndClear()) + { + ForceReload(); + } + else + { + // Flush any outstanding EFB copies to RAM, in case the game is running at an uncapped frame + // rate and not waiting for vblank. Otherwise, we'd end up with a huge list of pending + // copies. + g_texture_cache->FlushEFBCopies(); + } + + g_texture_cache->Cleanup(g_renderer->m_frame_count); +} + void TCacheEntry::DoState(PointerWrap& p) { p.Do(addr); |
