From 27620161c29dbfe159b53700b3e5069df17d4fb8 Mon Sep 17 00:00:00 2001 From: LotP1 <68976644+LotP1@users.noreply.github.com> Date: Thu, 20 Nov 2025 02:21:56 +0100 Subject: [PATCH] experimental caching of memory array --- src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs b/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs index 0ad96c6ae..c1840adf7 100644 --- a/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs +++ b/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs @@ -263,6 +263,9 @@ namespace Ryujinx.Cpu.Jit } } + //Might cause issues, if so revert to old solution + byte[] _cachedArray = []; + public override ReadOnlySpan GetSpan(ulong va, int size, bool tracked = false) { if (size == 0) @@ -281,7 +284,12 @@ namespace Ryujinx.Cpu.Jit } else { - Span data = new byte[size]; + if (_cachedArray.Length < size) + { + Array.Resize(ref _cachedArray, size); + } + + Span data = _cachedArray.AsSpan(0, size); Read(va, data);