mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2025-08-30 07:25:05 +00:00
* GPU: Avoid using garbage size for non-cb0 storage buffers In the depths area, Tears of the Kingdom uses a global memory access with address on constant buffer slot 6. This isn't standard and thus doesn't actually have a size 8 bytes after it, so we were reading back a garbage size that ended up very large (at least in version 1.1.0), and would synchronize a lot of data per frame. This PR makes storage buffers created from addresses outside constant buffer slot 0 get their size as the number of bytes remaining in the GPU mapping starting at the given virtual address. This should bound the buffer to a reasonable size, and ideally stop it crossing into other memory. * Limit max size * Add TODO * Feedback |
||
|---|---|---|
| .. | ||
| Buffer.cs | ||
| BufferBounds.cs | ||
| BufferCache.cs | ||
| BufferCacheEntry.cs | ||
| BufferManager.cs | ||
| BufferMigration.cs | ||
| BufferModifiedRangeList.cs | ||
| BufferTextureBinding.cs | ||
| CounterCache.cs | ||
| GpuRegionHandle.cs | ||
| IndexBuffer.cs | ||
| MemoryManager.cs | ||
| MultiRangeWritableBlock.cs | ||
| PhysicalMemory.cs | ||
| PteKind.cs | ||
| ResourceKind.cs | ||
| UnmapEventArgs.cs | ||
| VertexBuffer.cs | ||