0
0
Fork 0
mirror of https://github.com/ryujinx-mirror/ryujinx.git synced 2024-12-23 13:05:46 +00:00
ryujinx-fork/Ryujinx.Graphics.Gpu/Memory
riperiperi 5a39d3c4a1
GPU: Relax locking on Buffer Cache (#3883)
I did this on ncbuffer2 when we were using it for LDN 3, but I noticed that it can apply to the current buffer manager too, and it's an easy performance win.

The only buffer access that can come from another thread is the overlap search for buffers that have been unmapped. Everything else, including modifications, come from the main GPU thread. That means we only need to lock the range list when it's being modified, as that's the only time where we'll cause a race with the unmapped handler.

This has a significant performance improvements in situations where FIFO is high, like the other two PRs. Joined together they give a nice boost (73.6 master -> 79 -> 83 fps in SMO).
2022-11-24 01:41:16 +00:00
..
Buffer.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
BufferBounds.cs Implement lazy flush-on-read for Buffers (SSBO/Copy) (#1790) 2021-01-17 17:08:06 -03:00
BufferCache.cs GPU: Relax locking on Buffer Cache (#3883) 2022-11-24 01:41:16 +00:00
BufferCacheEntry.cs POWER - Performance Optimizations With Extensive Ramifications (#2286) 2021-05-24 22:52:44 +02:00
BufferManager.cs GPU: Eliminate CB0 accesses when storage buffer accesses are resolved (#3847) 2022-11-17 18:47:41 +01:00
BufferModifiedRangeList.cs Gpu: Fix thread safety of ReregisterRanges (#3865) 2022-11-18 21:47:29 +01:00
BufferTextureBinding.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
CounterCache.cs Implement Counter Queue and Partial Host Conditional Rendering (#1167) 2020-05-04 12:24:59 +10:00
GpuRegionHandle.cs Replace CacheResourceWrite with more general "precise" write (#2684) 2021-09-29 02:27:03 +02:00
IndexBuffer.cs Add XML documentation to Ryujinx.Graphics.Gpu.Memory 2020-01-09 02:13:00 +01:00
MemoryManager.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
MultiRangeWritableBlock.cs Texture Sync, incompatible overlap handling, data flush improvements. (#2971) 2022-01-09 13:28:48 -03:00
PhysicalMemory.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
PteKind.cs De-tile GOB when DMA copying from block linear to pitch kind memory regions (#3207) 2022-03-20 13:55:07 -03:00
UnmapEventArgs.cs Initial conditional rendering support (#1012) 2020-04-22 16:00:11 +10:00
VertexBuffer.cs Add XML documentation to Ryujinx.Graphics.Gpu.Memory 2020-01-09 02:13:00 +01:00