support multiple render targets & fix: incorrect texture name

This commit is contained in:
Samuliak 2024-05-20 18:38:08 +02:00 committed by Isaac Marovitz
parent 21029e895a
commit f08d3a7517
3 changed files with 6 additions and 4 deletions

View file

@ -197,7 +197,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
{
IoVariable.Position => "position",
IoVariable.PointSize => "point_size",
IoVariable.FragmentOutputColor => "color",
IoVariable.FragmentOutputColor => $"color{ioDefinition.Location}",
_ => $"{DefaultNames.OAttributePrefix}{ioDefinition.Location}"
};
string suffix = ioDefinition.IoVariable switch

View file

@ -267,7 +267,8 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
return NumberFormatter.FormatInt(0);
}
string textureName = "texture";
string samplerName = GetSamplerName(context.Properties, texOp);
string textureName = $"tex_{samplerName}";
string texCall = textureName + ".";
texCall += $"get_num_samples()";
@ -278,7 +279,8 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
{
AstTextureOperation texOp = (AstTextureOperation)operation;
string textureName = "texture";
string samplerName = GetSamplerName(context.Properties, texOp);
string textureName = $"tex_{samplerName}";
string texCall = textureName + ".";
if (texOp.Index == 3)

View file

@ -19,7 +19,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
IoVariable.BaseInstance => ("base_instance", AggregateType.S32),
IoVariable.BaseVertex => ("base_vertex", AggregateType.S32),
IoVariable.ClipDistance => ("clip_distance", AggregateType.Array | AggregateType.FP32),
IoVariable.FragmentOutputColor => ("out.color", AggregateType.Vector4 | AggregateType.FP32),
IoVariable.FragmentOutputColor => ($"out.color{location}", AggregateType.Vector4 | AggregateType.FP32),
IoVariable.FragmentOutputDepth => ("depth", AggregateType.FP32),
IoVariable.FrontFacing => ("front_facing", AggregateType.Bool),
IoVariable.InstanceId => ("instance_id", AggregateType.S32),