diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2020-02-02 00:25:52 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-02 14:25:52 +1100 |
| commit | 796e5d14b4fadc15439d273f8ff8f9e9afc4033a (patch) | |
| tree | e45cbac1f155d939941bdb0aebeb29222e92abe4 /Ryujinx.Graphics.Shader/Translation | |
| parent | ea14a955243705b5d5b22868c30c174e6524b4d3 (diff) | |
Use correct shader local memory size instead of a hardcoded size (#914)
* Use correct shader local size instead of a hardcoded size
* Remove unused uniform block
* Update XML doc
* Local memory size has 23 bits on maxwell
* Generate compute QMD struct from nv open doc header
* Remove dummy arrays when shared or local memory is not used, other improvements
Diffstat (limited to 'Ryujinx.Graphics.Shader/Translation')
| -rw-r--r-- | Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs index 8a0f25fe..e3708b41 100644 --- a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs +++ b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs @@ -10,6 +10,8 @@ namespace Ryujinx.Graphics.Shader.Translation public int MaxOutputVertices { get; } + public int LocalMemorySize { get; } + public OutputMapTarget[] OmapTargets { get; } public bool OmapSampleMask { get; } public bool OmapDepth { get; } @@ -23,6 +25,7 @@ namespace Ryujinx.Graphics.Shader.Translation Stage = ShaderStage.Compute; OutputTopology = OutputTopology.PointList; MaxOutputVertices = 0; + LocalMemorySize = 0; OmapTargets = null; OmapSampleMask = false; OmapDepth = false; @@ -35,6 +38,7 @@ namespace Ryujinx.Graphics.Shader.Translation Stage = header.Stage; OutputTopology = header.OutputTopology; MaxOutputVertices = header.MaxOutputVertexCount; + LocalMemorySize = header.ShaderLocalMemoryLowSize + header.ShaderLocalMemoryHighSize; OmapTargets = header.OmapTargets; OmapSampleMask = header.OmapSampleMask; OmapDepth = header.OmapDepth; @@ -80,6 +84,8 @@ namespace Ryujinx.Graphics.Shader.Translation case QueryInfoName.ComputeLocalSizeY: case QueryInfoName.ComputeLocalSizeZ: return 1; + case QueryInfoName.ComputeLocalMemorySize: + return 0x1000; case QueryInfoName.ComputeSharedMemorySize: return 0xc000; case QueryInfoName.IsTextureBuffer: |
