aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Cpu
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-08-29 16:52:38 -0300
committerGitHub <noreply@github.com>2021-08-29 16:52:38 -0300
commit82cefc8dd3babb781d4b7229435e26911fb083dd (patch)
tree769fb8595890c414fd8721e345ef3f0764c80e25 /Ryujinx.Cpu
parent15e7fe3ac940a1768a25326e66683ad0f23127e0 (diff)
Handle indirect draw counts with non-zero draw starts properly (#2593)
Diffstat (limited to 'Ryujinx.Cpu')
-rw-r--r--Ryujinx.Cpu/IVirtualMemoryManagerTracked.cs8
-rw-r--r--Ryujinx.Cpu/MemoryManager.cs2
2 files changed, 9 insertions, 1 deletions
diff --git a/Ryujinx.Cpu/IVirtualMemoryManagerTracked.cs b/Ryujinx.Cpu/IVirtualMemoryManagerTracked.cs
index 23b4119f..8004d39b 100644
--- a/Ryujinx.Cpu/IVirtualMemoryManagerTracked.cs
+++ b/Ryujinx.Cpu/IVirtualMemoryManagerTracked.cs
@@ -9,6 +9,14 @@ namespace Ryujinx.Cpu
public interface IVirtualMemoryManagerTracked : IVirtualMemoryManager
{
/// <summary>
+ /// Reads data from CPU mapped memory, with read tracking
+ /// </summary>
+ /// <typeparam name="T">Type of the data being read</typeparam>
+ /// <param name="va">Virtual address of the data in memory</param>
+ /// <returns>The data</returns>
+ T ReadTracked<T>(ulong va) where T : unmanaged;
+
+ /// <summary>
/// Writes data to CPU mapped memory, without write tracking.
/// </summary>
/// <param name="va">Virtual address to write the data into</param>
diff --git a/Ryujinx.Cpu/MemoryManager.cs b/Ryujinx.Cpu/MemoryManager.cs
index 153bff62..2c11bab8 100644
--- a/Ryujinx.Cpu/MemoryManager.cs
+++ b/Ryujinx.Cpu/MemoryManager.cs
@@ -117,7 +117,7 @@ namespace Ryujinx.Cpu
/// <inheritdoc/>
public T Read<T>(ulong va) where T : unmanaged
{
- return MemoryMarshal.Cast<byte, T>(GetSpan(va, Unsafe.SizeOf<T>(), true))[0];
+ return MemoryMarshal.Cast<byte, T>(GetSpan(va, Unsafe.SizeOf<T>()))[0];
}
/// <inheritdoc/>