aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs')
-rw-r--r--Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs9
1 files changed, 7 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs
index 6ce2e537..7edf5deb 100644
--- a/Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs
+++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitAttribute.cs
@@ -46,7 +46,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
context.FlagAttributeRead(offset);
- if (op.O)
+ if (op.O && CanLoadOutput(offset))
{
offset |= AttributeConsts.LoadOutputMask;
}
@@ -61,7 +61,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
context.FlagAttributeRead(offset);
- if (op.O)
+ if (op.O && CanLoadOutput(offset))
{
offset |= AttributeConsts.LoadOutputMask;
}
@@ -241,6 +241,11 @@ namespace Ryujinx.Graphics.Shader.Instructions
}
}
+ private static bool CanLoadOutput(int attr)
+ {
+ return attr != AttributeConsts.TessCoordX && attr != AttributeConsts.TessCoordY;
+ }
+
private static bool TryFixedFuncToUserAttributeIpa(EmitterContext context, int attr, out Operand selectedAttr)
{
if (attr >= AttributeConsts.FrontColorDiffuseR && attr < AttributeConsts.BackColorDiffuseR)