diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Memory')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Memory/Buffer.cs | 3 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Gpu/Memory/Buffer.cs b/Ryujinx.Graphics.Gpu/Memory/Buffer.cs index 5fe85d2e..2394f90d 100644 --- a/Ryujinx.Graphics.Gpu/Memory/Buffer.cs +++ b/Ryujinx.Graphics.Gpu/Memory/Buffer.cs @@ -151,7 +151,8 @@ namespace Ryujinx.Graphics.Gpu.Memory byte[] data = _context.Renderer.GetBufferData(Handle, offset, (int)size); - _context.PhysicalMemory.Write(address, data); + // TODO: When write tracking shaders, they will need to be aware of changes in overlapping buffers. + _context.PhysicalMemory.WriteUntracked(address, data); } /// <summary> diff --git a/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs b/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs index 88beab8f..ed325369 100644 --- a/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs +++ b/Ryujinx.Graphics.Gpu/Memory/PhysicalMemory.cs @@ -68,6 +68,16 @@ namespace Ryujinx.Graphics.Gpu.Memory } /// <summary> + /// Writes data to the application process, without any tracking. + /// </summary> + /// <param name="address">Address to write into</param> + /// <param name="data">Data to be written</param> + public void WriteUntracked(ulong address, ReadOnlySpan<byte> data) + { + _cpuMemory.WriteUntracked(address, data); + } + + /// <summary> /// Checks if a specified virtual memory region has been modified by the CPU since the last call. /// </summary> /// <param name="address">CPU virtual address of the region</param> |
