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)}");
_status = ProgramLinkStatus.Failure;
Console.WriteLine(shader.Code);
throw new NotImplementedException();
return;
}

View file

@ -63,6 +63,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
public static void DeclareLocals(CodeGenContext context, StructuredFunction function, ShaderStage stage)
{
DeclareMemories(context, context.Properties.LocalMemories.Values, isShared: false);
switch (stage)
{
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)
{
if (context.Definitions.IaIndexing)