Cleanup Shader I/O

This commit is contained in:
Isaac Marovitz 2024-03-19 21:11:48 -04:00
parent cc8bc3f921
commit 3f8c111eef
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
2 changed files with 14 additions and 11 deletions

View File

@ -63,13 +63,14 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
public static void DeclareLocals(CodeGenContext context, StructuredFunction function, ShaderStage stage)
{
if (stage == ShaderStage.Vertex)
switch (stage)
{
context.AppendLine("VertexOut out;");
}
else if (stage == ShaderStage.Fragment)
{
context.AppendLine("FragmentOut out;");
case ShaderStage.Vertex:
context.AppendLine("VertexOut out;");
break;
case ShaderStage.Fragment:
context.AppendLine("FragmentOut out;");
break;
}
foreach (AstOperand decl in function.Locals)
@ -126,7 +127,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
context.AppendLine($"struct FragmentIn");
break;
case ShaderStage.Compute:
context.AppendLine($"struct ComputeIn");
context.AppendLine($"struct KernelIn");
break;
}
@ -172,7 +173,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
context.AppendLine($"struct FragmentOut");
break;
case ShaderStage.Compute:
context.AppendLine($"struct ComputeOut");
context.AppendLine($"struct KernelOut");
break;
}

View File

@ -95,7 +95,9 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
}
else if (stage == ShaderStage.Compute)
{
// TODO: Compute main
funcKeyword = "kernel";
funcName = "kernelMain";
returnType = "void";
}
if (context.AttributeUsage.UsedInputAttributes != 0)
@ -106,11 +108,11 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
}
else if (stage == ShaderStage.Fragment)
{
args = args.Prepend("VertexOut in [[stage_in]]").ToArray();
args = args.Prepend("FragmentIn in [[stage_in]]").ToArray();
}
else if (stage == ShaderStage.Compute)
{
// TODO: Compute input
args = args.Prepend("KernelIn in [[stage_in]]").ToArray();
}
}
}