aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-09-01 18:44:19 -0300
committergdkchan <gab.dark.100@gmail.com>2018-09-01 18:44:19 -0300
commite72fd3f7a7cf770283f4cbd4b082677a83daf515 (patch)
tree80310e91733fc2f95c749852dcf09d05123c70b1 /Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs
parentbf28d8f1aa4288fba9d2204b8fe1af573bc2a72e (diff)
Shaders: Handle Ipa PASS argument as needed in Fragment Shaders (#392)
Diffstat (limited to 'Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs')
-rw-r--r--Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs6
1 files changed, 5 insertions, 1 deletions
diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs
index 5eb761da..afff7e9b 100644
--- a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs
+++ b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs
@@ -208,7 +208,11 @@ namespace Ryujinx.Graphics.Gal.Shader
ShaderIrNode OperA = GetOperAbuf28(OpCode);
ShaderIrNode OperB = GetOperGpr20 (OpCode);
- ShaderIrOp Op = new ShaderIrOp(ShaderIrInst.Ipa, OperA, OperB);
+ ShaderIpaMode Mode = (ShaderIpaMode)((OpCode >> 54) & 3);
+
+ ShaderIrMetaIpa Meta = new ShaderIrMetaIpa(Mode);
+
+ ShaderIrOp Op = new ShaderIrOp(ShaderIrInst.Ipa, OperA, OperB, null, Meta);
Block.AddNode(GetPredNode(new ShaderIrAsg(GetOperGpr0(OpCode), Op), OpCode));
}