Shaders: Handle Ipa PASS argument as needed in Fragment Shaders (#392)

This commit is contained in:
ReinUsesLisp 2018-09-01 18:44:19 -03:00 committed by gdkchan
parent bf28d8f1aa
commit e72fd3f7a7
4 changed files with 52 additions and 2 deletions

View file

@ -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));
}