aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Shader/CodeGen')
-rw-r--r--Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs34
1 files changed, 22 insertions, 12 deletions
diff --git a/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs b/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
index 200569c4..2e7f9f1b 100644
--- a/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
+++ b/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
@@ -47,25 +47,35 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
context.AppendLine();
}
- context.AppendLine("layout (std140) uniform Extra");
-
- context.EnterScope();
+ if (context.Config.Stage == ShaderStage.Compute)
+ {
+ int localMemorySize = BitUtils.DivRoundUp(context.Config.QueryInfo(QueryInfoName.ComputeLocalMemorySize), 4);
- context.AppendLine("vec2 flip;");
- context.AppendLine("int instance;");
+ if (localMemorySize != 0)
+ {
+ string localMemorySizeStr = NumberFormatter.FormatInt(localMemorySize);
- context.LeaveScope(";");
+ context.AppendLine($"uint {DefaultNames.LocalMemoryName}[{localMemorySizeStr}];");
+ context.AppendLine();
+ }
- context.AppendLine();
+ int sharedMemorySize = BitUtils.DivRoundUp(context.Config.QueryInfo(QueryInfoName.ComputeSharedMemorySize), 4);
- context.AppendLine($"uint {DefaultNames.LocalMemoryName}[0x100];");
- context.AppendLine();
+ if (sharedMemorySize != 0)
+ {
+ string sharedMemorySizeStr = NumberFormatter.FormatInt(sharedMemorySize);
- if (context.Config.Stage == ShaderStage.Compute)
+ context.AppendLine($"shared uint {DefaultNames.SharedMemoryName}[{sharedMemorySizeStr}];");
+ context.AppendLine();
+ }
+ }
+ else if (context.Config.LocalMemorySize != 0)
{
- string size = NumberFormatter.FormatInt(BitUtils.DivRoundUp(context.Config.QueryInfo(QueryInfoName.ComputeSharedMemorySize), 4));
+ int localMemorySize = BitUtils.DivRoundUp(context.Config.LocalMemorySize, 4);
+
+ string localMemorySizeStr = NumberFormatter.FormatInt(localMemorySize);
- context.AppendLine($"shared uint {DefaultNames.SharedMemoryName}[{size}];");
+ context.AppendLine($"uint {DefaultNames.LocalMemoryName}[{localMemorySizeStr}];");
context.AppendLine();
}