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
This commit is contained in:
parent
7f500e7cae
commit
b8eb6abecc
35 changed files with 633 additions and 684 deletions
|
@ -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<T>(ulong address) where T : unmanaged
|
||||
{
|
||||
return MemoryMarshal.Cast<byte, T>(new ReadOnlySpan<byte>(_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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue