diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Memory/Buffer.cs')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Memory/Buffer.cs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Gpu/Memory/Buffer.cs b/Ryujinx.Graphics.Gpu/Memory/Buffer.cs index 3778cd82..f267dfda 100644 --- a/Ryujinx.Graphics.Gpu/Memory/Buffer.cs +++ b/Ryujinx.Graphics.Gpu/Memory/Buffer.cs @@ -82,7 +82,7 @@ namespace Ryujinx.Graphics.Gpu.Memory Address = address; Size = size; - Handle = context.Renderer.CreateBuffer((int)size); + Handle = context.Renderer.CreateBuffer((int)size, baseBuffers?.MaxBy(x => x.Size).Handle ?? BufferHandle.Null); _useGranular = size > GranularBufferThreshold; @@ -415,10 +415,10 @@ namespace Ryujinx.Graphics.Gpu.Memory { int offset = (int)(address - Address); - ReadOnlySpan<byte> data = _context.Renderer.GetBufferData(Handle, offset, (int)size); + using PinnedSpan<byte> data = _context.Renderer.GetBufferData(Handle, offset, (int)size); // TODO: When write tracking shaders, they will need to be aware of changes in overlapping buffers. - _physicalMemory.WriteUntracked(address, data); + _physicalMemory.WriteUntracked(address, data.Get()); } /// <summary> |