From b8e3909d800ff5947683bb169d8efda2ef63d697 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sun, 12 Jan 2020 20:27:50 -0300 Subject: Add a GetSpan method to the memory manager and use it on GPU (#877) --- Ryujinx.Graphics.Shader/Decoders/Decoder.cs | 10 +++++----- Ryujinx.Graphics.Shader/Translation/ShaderHeader.cs | 4 ++-- Ryujinx.Graphics.Shader/Translation/Translator.cs | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'Ryujinx.Graphics.Shader') diff --git a/Ryujinx.Graphics.Shader/Decoders/Decoder.cs b/Ryujinx.Graphics.Shader/Decoders/Decoder.cs index db63712b..8a502e3c 100644 --- a/Ryujinx.Graphics.Shader/Decoders/Decoder.cs +++ b/Ryujinx.Graphics.Shader/Decoders/Decoder.cs @@ -21,7 +21,7 @@ namespace Ryujinx.Graphics.Shader.Decoders _opActivators = new ConcurrentDictionary(); } - public static Block[] Decode(Span code, ulong headerSize) + public static Block[] Decode(ReadOnlySpan code, ulong headerSize) { List blocks = new List(); @@ -214,10 +214,10 @@ namespace Ryujinx.Graphics.Shader.Decoders } private static void FillBlock( - Span code, - Block block, - ulong limitAddress, - ulong startAddress) + ReadOnlySpan code, + Block block, + ulong limitAddress, + ulong startAddress) { ulong address = block.Address; diff --git a/Ryujinx.Graphics.Shader/Translation/ShaderHeader.cs b/Ryujinx.Graphics.Shader/Translation/ShaderHeader.cs index 0c56132d..42701fbd 100644 --- a/Ryujinx.Graphics.Shader/Translation/ShaderHeader.cs +++ b/Ryujinx.Graphics.Shader/Translation/ShaderHeader.cs @@ -76,9 +76,9 @@ namespace Ryujinx.Graphics.Shader.Translation public bool OmapSampleMask { get; } public bool OmapDepth { get; } - public ShaderHeader(Span code) + public ShaderHeader(ReadOnlySpan code) { - Span header = MemoryMarshal.Cast(code); + ReadOnlySpan header = MemoryMarshal.Cast(code); int commonWord0 = header[0]; int commonWord1 = header[1]; diff --git a/Ryujinx.Graphics.Shader/Translation/Translator.cs b/Ryujinx.Graphics.Shader/Translation/Translator.cs index 760d616f..a333db95 100644 --- a/Ryujinx.Graphics.Shader/Translation/Translator.cs +++ b/Ryujinx.Graphics.Shader/Translation/Translator.cs @@ -14,7 +14,7 @@ namespace Ryujinx.Graphics.Shader.Translation { private const int HeaderSize = 0x50; - public static Span ExtractCode(Span code, bool compute, out int headerSize) + public static ReadOnlySpan ExtractCode(ReadOnlySpan code, bool compute, out int headerSize) { headerSize = compute ? 0 : HeaderSize; @@ -38,14 +38,14 @@ namespace Ryujinx.Graphics.Shader.Translation return code.Slice(0, headerSize + (int)endAddress); } - public static ShaderProgram Translate(Span code, TranslatorCallbacks callbacks, TranslationFlags flags) + public static ShaderProgram Translate(ReadOnlySpan code, TranslatorCallbacks callbacks, TranslationFlags flags) { Operation[] ops = DecodeShader(code, callbacks, flags, out ShaderConfig config, out int size); return Translate(ops, config, size); } - public static ShaderProgram Translate(Span vpACode, Span vpBCode, TranslatorCallbacks callbacks, TranslationFlags flags) + public static ShaderProgram Translate(ReadOnlySpan vpACode, ReadOnlySpan vpBCode, TranslatorCallbacks callbacks, TranslationFlags flags) { Operation[] vpAOps = DecodeShader(vpACode, callbacks, flags, out _, out _); Operation[] vpBOps = DecodeShader(vpBCode, callbacks, flags, out ShaderConfig config, out int sizeB); @@ -88,7 +88,7 @@ namespace Ryujinx.Graphics.Shader.Translation } private static Operation[] DecodeShader( - Span code, + ReadOnlySpan code, TranslatorCallbacks callbacks, TranslationFlags flags, out ShaderConfig config, -- cgit v1.2.3