mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-04 23:29:17 +00:00
FramebufferManager: Implement deferred EFB cache invalidation
This commit is contained in:
parent
6bc4bfd26a
commit
a218a794cb
11 changed files with 42 additions and 14 deletions
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue