aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-05-05 22:02:28 -0300
committerGitHub <noreply@github.com>2020-05-06 11:02:28 +1000
commitb8eb6abeccbd4a468214a4d2ad3a9b6e5e06973c (patch)
treecd3d71ebde0f4f32eb674778adae89c0efcb75df /Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs
parent7f500e7cae940958289abe1a3461e52684742053 (diff)
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
Diffstat (limited to 'Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs')
-rw-r--r--Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs58
1 files changed, 6 insertions, 52 deletions
diff --git a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs
index 3035ebf6..9e8329de 100644
--- a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs
+++ b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs
@@ -18,11 +18,11 @@ namespace Ryujinx.Graphics.Shader.Translation
public bool OmapSampleMask { get; }
public bool OmapDepth { get; }
- public TranslationFlags Flags { get; }
+ public IGpuAccessor GpuAccessor { get; }
- private TranslatorCallbacks _callbacks;
+ public TranslationFlags Flags { get; }
- public ShaderConfig(TranslationFlags flags, TranslatorCallbacks callbacks)
+ public ShaderConfig(IGpuAccessor gpuAccessor, TranslationFlags flags)
{
Stage = ShaderStage.Compute;
OutputTopology = OutputTopology.PointList;
@@ -32,11 +32,11 @@ namespace Ryujinx.Graphics.Shader.Translation
OmapTargets = null;
OmapSampleMask = false;
OmapDepth = false;
+ GpuAccessor = gpuAccessor;
Flags = flags;
- _callbacks = callbacks;
}
- public ShaderConfig(ShaderHeader header, TranslationFlags flags, TranslatorCallbacks callbacks)
+ public ShaderConfig(ShaderHeader header, IGpuAccessor gpuAccessor, TranslationFlags flags)
{
Stage = header.Stage;
OutputTopology = header.OutputTopology;
@@ -46,8 +46,8 @@ namespace Ryujinx.Graphics.Shader.Translation
OmapTargets = header.OmapTargets;
OmapSampleMask = header.OmapSampleMask;
OmapDepth = header.OmapDepth;
+ GpuAccessor = gpuAccessor;
Flags = flags;
- _callbacks = callbacks;
}
public int GetDepthRegister()
@@ -68,51 +68,5 @@ namespace Ryujinx.Graphics.Shader.Translation
// The depth register is always two registers after the last color output.
return count + 1;
}
-
- public bool QueryInfoBool(QueryInfoName info, int index = 0)
- {
- return Convert.ToBoolean(QueryInfo(info, index));
- }
-
- public int QueryInfo(QueryInfoName info, int index = 0)
- {
- if (_callbacks.QueryInfo != null)
- {
- return _callbacks.QueryInfo(info, index);
- }
- else
- {
- switch (info)
- {
- case QueryInfoName.ComputeLocalSizeX:
- case QueryInfoName.ComputeLocalSizeY:
- case QueryInfoName.ComputeLocalSizeZ:
- return 1;
- case QueryInfoName.ComputeLocalMemorySize:
- return 0x1000;
- case QueryInfoName.ComputeSharedMemorySize:
- return 0xc000;
- case QueryInfoName.IsTextureBuffer:
- return Convert.ToInt32(false);
- case QueryInfoName.IsTextureRectangle:
- return Convert.ToInt32(false);
- case QueryInfoName.PrimitiveTopology:
- return (int)InputTopology.Points;
- case QueryInfoName.StorageBufferOffsetAlignment:
- return 16;
- case QueryInfoName.SupportsNonConstantTextureOffset:
- return Convert.ToInt32(true);
- case QueryInfoName.TextureFormat:
- return (int)TextureFormat.R8G8B8A8Unorm;
- }
- }
-
- return 0;
- }
-
- public void PrintLog(string message)
- {
- _callbacks.PrintLog?.Invoke(message);
- }
}
} \ No newline at end of file