From b8eb6abeccbd4a468214a4d2ad3a9b6e5e06973c Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 5 May 2020 22:02:28 -0300 Subject: Refactor shader GPU state and memory access (#1203) * Refactor shader GPU state and memory access * Fix NVDEC project build * Address PR feedback and add missing XML comments --- Ryujinx.ShaderTools/Program.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'Ryujinx.ShaderTools/Program.cs') diff --git a/Ryujinx.ShaderTools/Program.cs b/Ryujinx.ShaderTools/Program.cs index 25ac8d2a..567083e4 100644 --- a/Ryujinx.ShaderTools/Program.cs +++ b/Ryujinx.ShaderTools/Program.cs @@ -2,11 +2,27 @@ using Ryujinx.Graphics.Shader.Translation; using System; using System.IO; +using System.Runtime.InteropServices; namespace Ryujinx.ShaderTools { class Program { + private class GpuAccessor : IGpuAccessor + { + private readonly byte[] _data; + + public GpuAccessor(byte[] data) + { + _data = data; + } + + public T MemoryRead(ulong address) where T : unmanaged + { + return MemoryMarshal.Cast(new ReadOnlySpan(_data).Slice((int)address))[0]; + } + } + static void Main(string[] args) { if (args.Length == 1 || args.Length == 2) @@ -20,7 +36,7 @@ namespace Ryujinx.ShaderTools byte[] data = File.ReadAllBytes(args[^1]); - string code = Translator.Translate(data, new TranslatorCallbacks(null, null), flags).Code; + string code = Translator.Translate(0, new GpuAccessor(data), flags).Code; Console.WriteLine(code); } -- cgit v1.2.3