diff options
author | riperiperi <rhy3756547@hotmail.com> | 2023-05-05 22:40:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-05 23:40:46 +0200 |
commit | 7df4fcada702dbc01d09b8f6fa027f5d409e33e3 (patch) | |
tree | d006bc4b9b78d81475a288b6c5ee9dfd7c3f3d33 /src/Ryujinx.Memory/Tracking/RegionHandle.cs | |
parent | d6698680bef4ac37b63d67c5415edf5717a84b3a (diff) |
GPU: Remove CPU region handle containers (#4817)1.1.760
* GPU: Remove CPU region handle containers.
Another one for the "I don't know why I didn't do this earlier" pile.
This removes the "Cpu" prefixed region handle classes, which each mirror a region handle type from Ryujinx.Memory.
Originally, not all projects had a reference to Ryujinx.Memory, so these classes were introduced to bridge the gap. Someone else crossed that bridge since, so these classes don't have much of a purpose anymore.
This PR replaces all uses of CpuRegionHandle etc to their direct Ryujinx.Memory versions.
RegionHandle methods (specifically QueryModified) are about the hottest path there is in the entire emulator, so there is a nice boost from doing this.
* Add docs
Diffstat (limited to 'src/Ryujinx.Memory/Tracking/RegionHandle.cs')
-rw-r--r-- | src/Ryujinx.Memory/Tracking/RegionHandle.cs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Ryujinx.Memory/Tracking/RegionHandle.cs b/src/Ryujinx.Memory/Tracking/RegionHandle.cs index 7a59f9f2..63a16884 100644 --- a/src/Ryujinx.Memory/Tracking/RegionHandle.cs +++ b/src/Ryujinx.Memory/Tracking/RegionHandle.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection.Metadata; using System.Threading; namespace Ryujinx.Memory.Tracking @@ -444,6 +445,16 @@ namespace Ryujinx.Memory.Tracking } /// <summary> + /// Determines if this handle's memory range matches another exactly. + /// </summary> + /// <param name="other">The other handle</param> + /// <returns>True on a match, false otherwise</returns> + public bool RangeEquals(RegionHandle other) + { + return RealAddress == other.RealAddress && RealSize == other.RealSize; + } + + /// <summary> /// Dispose the handle. Within the tracking lock, this removes references from virtual regions. /// </summary> public void Dispose() |