diff options
Diffstat (limited to 'src/Ryujinx.ShaderTools/Program.cs')
| -rw-r--r-- | src/Ryujinx.ShaderTools/Program.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/Ryujinx.ShaderTools/Program.cs b/src/Ryujinx.ShaderTools/Program.cs index 04453912..4252f1b2 100644 --- a/src/Ryujinx.ShaderTools/Program.cs +++ b/src/Ryujinx.ShaderTools/Program.cs @@ -11,17 +11,57 @@ namespace Ryujinx.ShaderTools { private class GpuAccessor : IGpuAccessor { + private const int DefaultArrayLength = 32; + private readonly byte[] _data; + private int _texturesCount; + private int _imagesCount; + public GpuAccessor(byte[] data) { _data = data; + _texturesCount = 0; + _imagesCount = 0; + } + + public int CreateConstantBufferBinding(int index) + { + return index + 1; + } + + public int CreateImageBinding(int count, bool isBuffer) + { + int binding = _imagesCount; + + _imagesCount += count; + + return binding; + } + + public int CreateStorageBufferBinding(int index) + { + return index; + } + + public int CreateTextureBinding(int count, bool isBuffer) + { + int binding = _texturesCount; + + _texturesCount += count; + + return binding; } public ReadOnlySpan<ulong> GetCode(ulong address, int minimumSize) { return MemoryMarshal.Cast<byte, ulong>(new ReadOnlySpan<byte>(_data)[(int)address..]); } + + public int QueryTextureArrayLengthFromBuffer(int slot) + { + return DefaultArrayLength; + } } private class Options |
