declare local memory

This commit is contained in:
Samuliak 2024-05-20 19:07:27 +02:00 committed by Isaac Marovitz
parent f08d3a7517
commit 979da4c1ab
2 changed files with 12 additions and 0 deletions

View file

@ -28,6 +28,8 @@ namespace Ryujinx.Graphics.Metal
{ {
Logger.Warning?.Print(LogClass.Gpu, $"Shader linking failed: \n{StringHelper.String(libraryError.LocalizedDescription)}"); Logger.Warning?.Print(LogClass.Gpu, $"Shader linking failed: \n{StringHelper.String(libraryError.LocalizedDescription)}");
_status = ProgramLinkStatus.Failure; _status = ProgramLinkStatus.Failure;
Console.WriteLine(shader.Code);
throw new NotImplementedException();
return; return;
} }

View file

@ -63,6 +63,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
public static void DeclareLocals(CodeGenContext context, StructuredFunction function, ShaderStage stage) public static void DeclareLocals(CodeGenContext context, StructuredFunction function, ShaderStage stage)
{ {
DeclareMemories(context, context.Properties.LocalMemories.Values, isShared: false);
switch (stage) switch (stage)
{ {
case ShaderStage.Vertex: case ShaderStage.Vertex:
@ -106,6 +107,15 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
}; };
} }
private static void DeclareMemories(CodeGenContext context, IEnumerable<MemoryDefinition> memories, bool isShared)
{
foreach (var memory in memories)
{
var typeName = GetVarTypeName(context, memory.Type & ~AggregateType.Array);
context.AppendLine($"{typeName} {memory.Name}[{memory.ArrayLength}];");
}
}
private static void DeclareInputAttributes(CodeGenContext context, IEnumerable<IoDefinition> inputs) private static void DeclareInputAttributes(CodeGenContext context, IEnumerable<IoDefinition> inputs)
{ {
if (context.Definitions.IaIndexing) if (context.Definitions.IaIndexing)