aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2024-03-14 22:38:27 +0000
committerGitHub <noreply@github.com>2024-03-14 19:38:27 -0300
commitfdd3263e31f8bf352a21e05703d0a6a82c800995 (patch)
tree24859502db57a2febaa5ab4c7d968d7375156079 /src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs
parentce607db944beb352065107830769d8570f0c245e (diff)
Separate guest/host tracking + unaligned protection (#6486)1.1.1229
* WIP: Separate guest/host tracking + unaligned protection Allow memory manager to define support for single byte guest tracking * Formatting * Improve docs * Properly handle cases where the address space bits are too low * Address feedback
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs b/src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs
index 69a3054a..cca02bb1 100644
--- a/src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs
+++ b/src/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs
@@ -368,10 +368,11 @@ namespace Ryujinx.Graphics.Gpu.Memory
/// <param name="address">CPU virtual address of the region</param>
/// <param name="size">Size of the region</param>
/// <param name="kind">Kind of the resource being tracked</param>
+ /// <param name="flags">Region flags</param>
/// <returns>The memory tracking handle</returns>
- public RegionHandle BeginTracking(ulong address, ulong size, ResourceKind kind)
+ public RegionHandle BeginTracking(ulong address, ulong size, ResourceKind kind, RegionFlags flags = RegionFlags.None)
{
- return _cpuMemory.BeginTracking(address, size, (int)kind);
+ return _cpuMemory.BeginTracking(address, size, (int)kind, flags);
}
/// <summary>
@@ -408,12 +409,19 @@ namespace Ryujinx.Graphics.Gpu.Memory
/// <param name="address">CPU virtual address of the region</param>
/// <param name="size">Size of the region</param>
/// <param name="kind">Kind of the resource being tracked</param>
+ /// <param name="flags">Region flags</param>
/// <param name="handles">Handles to inherit state from or reuse</param>
/// <param name="granularity">Desired granularity of write tracking</param>
/// <returns>The memory tracking handle</returns>
- public MultiRegionHandle BeginGranularTracking(ulong address, ulong size, ResourceKind kind, IEnumerable<IRegionHandle> handles = null, ulong granularity = 4096)
+ public MultiRegionHandle BeginGranularTracking(
+ ulong address,
+ ulong size,
+ ResourceKind kind,
+ RegionFlags flags = RegionFlags.None,
+ IEnumerable<IRegionHandle> handles = null,
+ ulong granularity = 4096)
{
- return _cpuMemory.BeginGranularTracking(address, size, handles, granularity, (int)kind);
+ return _cpuMemory.BeginGranularTracking(address, size, handles, granularity, (int)kind, flags);
}
/// <summary>