mirror of
https://github.com/Ryujinx-NX/Ryujinx.git
synced 2024-11-14 21:17:43 -07:00
187372cbde
* Prune ForceDirty and CheckModified caches on unmap Since we're now using this for modified checks on the HLE indirect draw method, I'm worried that leaving these to forever gather cache entries isn't the best idea for performance in the long term, and it could keep old buffer objects alive for longer than they should be. This PR adds the ability to prune invalid entries before checking these caches, and queues it whenever gpu memory is unmapped. It also aligns modified checks to the page size, as I figured it would be possible for a huge number of overlapping over a game's runtime. This prevents Super Mario Odyssey from having 10s of thousands of entries in the modified cache in Metro Kingdom, and them duplicating when entering and leaving a building (should be cleared, as they were unmapped). * Address Feedback |
||
---|---|---|
.. | ||
Buffer.cs | ||
BufferBounds.cs | ||
BufferCache.cs | ||
BufferCacheEntry.cs | ||
BufferManager.cs | ||
BufferModifiedRangeList.cs | ||
BufferTextureBinding.cs | ||
CounterCache.cs | ||
GpuRegionHandle.cs | ||
IndexBuffer.cs | ||
MemoryManager.cs | ||
MultiRangeWritableBlock.cs | ||
PhysicalMemory.cs | ||
PteKind.cs | ||
UnmapEventArgs.cs | ||
VertexBuffer.cs |