ryujinx/Ryujinx.Memory
riperiperi 1fc90e57d2
Update range for remapped sparse textures instead of recreating them (#4442)
* Update sparsely mapped texture ranges without recreating

Important TODO in TexturePool. Smaller TODO: should I look into making textures with views also do this? It needs to be able to detect if the views can be instantly deleted without issue if they're now remapped.

* Actually do partial updates

* Signal group dirty after mappings changed

* Fix various issues (should work now)

* Further optimisation

Should load a lot less data (16x) when partial updating 3d textures.

* Improve stability

* Allow granular uploads on large textures, improve rules

* Actually avoid updating slices that aren't modified.

* Address some feedback, minor optimisation

* Small tweak

* Refactor DereferenceRequest

More specific initialization methods.

* Improve code for resetting handles

* Explain data loading a bit more

* Add some safety for setting null from different threads.

All texture sets come from the one thread, but null sets can come from multiple. Only decrement ref count if we succeeded the null set first.

* Address feedback 1

* Make a bit safer
2023-03-14 17:08:44 -03:00
..
Range Update range for remapped sparse textures instead of recreating them (#4442) 2023-03-14 17:08:44 -03:00
Tracking Clear CPU side data on GPU buffer clears (#4125) 2023-02-16 18:28:49 -03:00
WindowsShared Replace DllImport usage with LibraryImport (#4084) 2022-12-15 18:07:31 +01:00
AddressSpaceManager.cs Clear CPU side data on GPU buffer clears (#4125) 2023-02-16 18:28:49 -03:00
InvalidAccessHandler.cs POWER - Performance Optimizations With Extensive Ramifications (#2286) 2021-05-24 22:52:44 +02:00
InvalidMemoryRegionException.cs Update InvalidMemoryRegionException.cs to abide by English rules. (#1834) 2020-12-25 04:09:02 +01:00
IRefCounted.cs POWER - Performance Optimizations With Extensive Ramifications (#2286) 2021-05-24 22:52:44 +02:00
IVirtualMemoryManager.cs Clear CPU side data on GPU buffer clears (#4125) 2023-02-16 18:28:49 -03:00
IWritableBlock.cs Return mapped buffer pointer directly for flush, WriteableRegion for textures (#2494) 2021-07-19 19:10:54 -03:00
MemoryAllocationFlags.cs Implement JIT Arm64 backend (#4114) 2023-01-10 19:16:59 -03:00
MemoryBlock.cs Implement support for page sizes > 4KB (#4252) 2023-01-17 05:13:24 +01:00
MemoryConstants.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
MemoryManagement.cs Implement JIT Arm64 backend (#4114) 2023-01-10 19:16:59 -03:00
MemoryManagementUnix.cs Implement JIT Arm64 backend (#4114) 2023-01-10 19:16:59 -03:00
MemoryManagementWindows.cs Move partial unmap handler to the native signal handler (#3437) 2022-07-29 19:16:29 -03:00
MemoryManagerUnixHelper.cs Implement JIT Arm64 backend (#4114) 2023-01-10 19:16:59 -03:00
MemoryMapFlags.cs Implement support for page sizes > 4KB (#4252) 2023-01-17 05:13:24 +01:00
MemoryNotContiguousException.cs IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel (#1458) 2020-12-02 00:23:43 +01:00
MemoryPermission.cs POWER - Performance Optimizations With Extensive Ramifications (#2286) 2021-05-24 22:52:44 +02:00
MemoryProtectionException.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
NativeMemoryManager.cs POWER - Performance Optimizations With Extensive Ramifications (#2286) 2021-05-24 22:52:44 +02:00
PageTable.cs Support memory aliasing (#2954) 2022-05-02 20:30:02 -03:00
Ryujinx.Memory.csproj infra: Migrate to .NET 7 (#3795) 2022-11-09 20:22:43 +01:00
WritableRegion.cs Return mapped buffer pointer directly for flush, WriteableRegion for textures (#2494) 2021-07-19 19:10:54 -03:00