support fragment coord as an input to a shader

This commit is contained in:
Samuliak 2024-05-14 17:01:11 +02:00 committed by Isaac Marovitz
parent 9835682c75
commit 1956a60616
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
2 changed files with 7 additions and 0 deletions

View File

@ -133,6 +133,12 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
context.EnterScope();
if (context.Definitions.Stage == ShaderStage.Fragment)
{
// TODO: check if it's needed
context.AppendLine("float4 position [[position]];");
}
foreach (var ioDefinition in inputs.OrderBy(x => x.Location))
{
string type = GetVarTypeName(context, context.Definitions.GetUserDefinedType(ioDefinition.Location, isOutput: false));

View File

@ -30,6 +30,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
IoVariable.UserDefined => GetUserDefinedVariableName(definitions, location, component, isOutput, isPerPatch),
IoVariable.VertexId => ("vertex_id", AggregateType.S32),
IoVariable.ViewportIndex => ("viewport_array_index", AggregateType.S32),
IoVariable.FragmentCoord => ("in.position", AggregateType.Vector4 | AggregateType.FP32),
_ => (null, AggregateType.Invalid),
};
}