ryujinx/Ryujinx.Memory
riperiperi 8d36681bf1
Improve handling for unmapped GPU resources (#2083)
* Improve handling for unmapped GPU resources

- Fixed a memory tracking bug that would set protection on empty PTEs
- When a texture's memory is (partially) unmapped, all pool references are forcibly removed and the texture must be rediscovered to draw with it. This will also force the texture discovery to always compare the texture's range for a match.
- RegionHandles now know if they are unmapped, and automatically unset their dirty flag when unmapped.
- Partial texture sync now loads only the region of texture that has been modified. Unmapped memory tracking handles cause dirty flags for a texture group handle to be ignored.

This greatly improves the emulator's stability for newer UE4 games.

* Address feedback, fix MultiRange slice

Fixed an issue where the size of the multi-range slice would be miscalculated.

* Update Ryujinx.Memory/Range/MultiRange.cs (feedback)

Co-authored-by: Mary <thog@protonmail.com>

Co-authored-by: Mary <thog@protonmail.com>
2021-03-06 11:43:55 -03:00
..
Range Improve handling for unmapped GPU resources (#2083) 2021-03-06 11:43:55 -03:00
Tracking Improve handling for unmapped GPU resources (#2083) 2021-03-06 11:43:55 -03:00
AddressSpaceManager.cs Fix virtual address overflow near ulong limit (#2044) 2021-02-28 11:48:04 +01:00
InvalidMemoryRegionException.cs Update InvalidMemoryRegionException.cs to abide by English rules. (#1834) 2020-12-25 04:09:02 +01:00
IVirtualMemoryManager.cs Reduce temporary copy/fill buffer size (#1926) 2021-01-19 13:31:15 +11:00
IWritableBlock.cs Support for resources on non-contiguous GPU memory regions (#1905) 2021-01-17 19:44:34 +01:00
MemoryAllocationFlags.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
MemoryBlock.cs PPTC & Pool Enhancements. (#1968) 2021-02-22 03:23:48 +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 a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
MemoryManagementUnix.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
MemoryManagementWindows.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10: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 Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
MemoryProtectionException.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
NativeMemoryManager.cs New NVDEC and VIC implementation (#1384) 2020-07-12 05:07:01 +02:00
Ryujinx.Memory.csproj infra: Migrate to .NET 5 (#1694) 2020-11-15 19:27:15 +01:00
WritableRegion.cs Support for resources on non-contiguous GPU memory regions (#1905) 2021-01-17 19:44:34 +01:00