diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2020-01-12 20:27:50 -0300 |
|---|---|---|
| committer | jduncanator <1518948+jduncanator@users.noreply.github.com> | 2020-01-13 10:27:50 +1100 |
| commit | b8e3909d800ff5947683bb169d8efda2ef63d697 (patch) | |
| tree | 653a2e60b42cb45fbeb1ad76aa6b827bc1e38966 /Ryujinx.Graphics.Gpu/Image | |
| parent | 8b90924c1ebf7e65d1f170df5dd1ac6c2596926f (diff) | |
Add a GetSpan method to the memory manager and use it on GPU (#877)
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Image')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Image/SamplerPool.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Image/Texture.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs | 4 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Image/TexturePool.cs | 4 |
4 files changed, 6 insertions, 6 deletions
diff --git a/Ryujinx.Graphics.Gpu/Image/SamplerPool.cs b/Ryujinx.Graphics.Gpu/Image/SamplerPool.cs index f10f800c..2abf96de 100644 --- a/Ryujinx.Graphics.Gpu/Image/SamplerPool.cs +++ b/Ryujinx.Graphics.Gpu/Image/SamplerPool.cs @@ -43,7 +43,7 @@ namespace Ryujinx.Graphics.Gpu.Image { ulong address = Address + (ulong)(uint)id * DescriptorSize; - Span<byte> data = Context.PhysicalMemory.Read(address, DescriptorSize); + ReadOnlySpan<byte> data = Context.PhysicalMemory.GetSpan(address, DescriptorSize); SamplerDescriptor descriptor = MemoryMarshal.Cast<byte, SamplerDescriptor>(data)[0]; diff --git a/Ryujinx.Graphics.Gpu/Image/Texture.cs b/Ryujinx.Graphics.Gpu/Image/Texture.cs index e33de1fa..7d5e9079 100644 --- a/Ryujinx.Graphics.Gpu/Image/Texture.cs +++ b/Ryujinx.Graphics.Gpu/Image/Texture.cs @@ -304,7 +304,7 @@ namespace Ryujinx.Graphics.Gpu.Image return; } - Span<byte> data = _context.PhysicalMemory.Read(Address, Size); + ReadOnlySpan<byte> data = _context.PhysicalMemory.GetSpan(Address, Size); if (Info.IsLinear) { diff --git a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs index 984d45a9..7cc7f046 100644 --- a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs +++ b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs @@ -197,7 +197,7 @@ namespace Ryujinx.Graphics.Gpu.Image address = bufferManager.GetGraphicsUniformBufferAddress(stageIndex, binding.CbufSlot); } - packedId = MemoryMarshal.Cast<byte, int>(_context.PhysicalMemory.Read(address + (ulong)binding.CbufOffset * 4, 4))[0]; + packedId = MemoryMarshal.Cast<byte, int>(_context.PhysicalMemory.GetSpan(address + (ulong)binding.CbufOffset * 4, 4))[0]; } else { @@ -321,7 +321,7 @@ namespace Ryujinx.Graphics.Gpu.Image address += (uint)wordOffset * 4; - return BitConverter.ToInt32(_context.PhysicalMemory.Read(address, 4)); + return BitConverter.ToInt32(_context.PhysicalMemory.GetSpan(address, 4)); } /// <summary> diff --git a/Ryujinx.Graphics.Gpu/Image/TexturePool.cs b/Ryujinx.Graphics.Gpu/Image/TexturePool.cs index f6aede79..a4f54c52 100644 --- a/Ryujinx.Graphics.Gpu/Image/TexturePool.cs +++ b/Ryujinx.Graphics.Gpu/Image/TexturePool.cs @@ -85,7 +85,7 @@ namespace Ryujinx.Graphics.Gpu.Image { ulong address = Address + (ulong)(uint)id * DescriptorSize; - Span<byte> data = Context.PhysicalMemory.Read(address, DescriptorSize); + ReadOnlySpan<byte> data = Context.PhysicalMemory.GetSpan(address, DescriptorSize); return MemoryMarshal.Cast<byte, TextureDescriptor>(data)[0]; } @@ -107,7 +107,7 @@ namespace Ryujinx.Graphics.Gpu.Image if (texture != null) { - Span<byte> data = Context.PhysicalMemory.Read(address, DescriptorSize); + ReadOnlySpan<byte> data = Context.PhysicalMemory.GetSpan(address, DescriptorSize); TextureDescriptor descriptor = MemoryMarshal.Cast<byte, TextureDescriptor>(data)[0]; |
