forked from Mirror/Ryujinx
ecbf303266
* 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 |