1
0
Fork 0
mirror of https://github.com/Ryujinx/Ryujinx.git synced 2024-12-20 11:22:02 +00:00

Fragment input interpolation qualifiers

Fixes Mario’s shadow in SMO
This commit is contained in:
Isaac Marovitz 2024-06-28 21:13:59 +01:00 committed by Isaac Marovitz
parent c8c4fd730d
commit 9d26aa8d06

View file

@ -299,6 +299,18 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
foreach (var ioDefinition in inputs.OrderBy(x => x.Location)) foreach (var ioDefinition in inputs.OrderBy(x => x.Location))
{ {
string iq = string.Empty;
if (context.Definitions.Stage == ShaderStage.Fragment)
{
iq = context.Definitions.ImapTypes[ioDefinition.Location].GetFirstUsedType() switch
{
PixelImap.Constant => "[[flat]] ",
PixelImap.ScreenLinear => "[[center_no_perspective]] ",
_ => string.Empty,
};
}
string type = ioDefinition.IoVariable switch string type = ioDefinition.IoVariable switch
{ {
// IoVariable.Position => "float4", // IoVariable.Position => "float4",
@ -329,7 +341,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
_ => "" _ => ""
}; };
context.AppendLine($"{type} {name} {suffix};"); context.AppendLine($"{type} {name} {iq}{suffix};");
} }
context.LeaveScope(";"); context.LeaveScope(";");