aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-08-31 13:14:04 -0300
committergdkchan <gab.dark.100@gmail.com>2018-08-31 13:14:04 -0300
commit42dc925c3da59bf8801b14779482ee5bd9c25dc0 (patch)
tree6134135c08fe81414297b75fbf6e1a7479742d07 /Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
parent7cb6fd8090513b703da9b83dec04866647694f09 (diff)
Implement SSY/SYNC shader instructions (#382)
* Use a program counter to control shaders' flow * Cleanup * Implement SSY/SYNC * Address feedback * Fixup commentary * Fixup Ssy instruction
Diffstat (limited to 'Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs')
-rw-r--r--Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs16
1 files changed, 8 insertions, 8 deletions
diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
index a183b0c6..2ae58bf8 100644
--- a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
+++ b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
@@ -31,7 +31,7 @@ namespace Ryujinx.Graphics.Gal.Shader
{ RGB_, RG_A, R_BA, _GBA, RGBA, ____, ____, ____ }
};
- public static void Ld_A(ShaderIrBlock Block, long OpCode)
+ public static void Ld_A(ShaderIrBlock Block, long OpCode, long Position)
{
ShaderIrNode[] Opers = GetOperAbuf20(OpCode);
@@ -50,7 +50,7 @@ namespace Ryujinx.Graphics.Gal.Shader
}
}
- public static void Ld_C(ShaderIrBlock Block, long OpCode)
+ public static void Ld_C(ShaderIrBlock Block, long OpCode, long Position)
{
int CbufPos = (int)(OpCode >> 22) & 0x3fff;
int CbufIndex = (int)(OpCode >> 36) & 0x1f;
@@ -97,7 +97,7 @@ namespace Ryujinx.Graphics.Gal.Shader
}
}
- public static void St_A(ShaderIrBlock Block, long OpCode)
+ public static void St_A(ShaderIrBlock Block, long OpCode, long Position)
{
ShaderIrNode[] Opers = GetOperAbuf20(OpCode);
@@ -113,7 +113,7 @@ namespace Ryujinx.Graphics.Gal.Shader
}
}
- public static void Texq(ShaderIrBlock Block, long OpCode)
+ public static void Texq(ShaderIrBlock Block, long OpCode, long Position)
{
ShaderIrNode OperD = GetOperGpr0(OpCode);
ShaderIrNode OperA = GetOperGpr8(OpCode);
@@ -132,12 +132,12 @@ namespace Ryujinx.Graphics.Gal.Shader
Block.AddNode(GetPredNode(new ShaderIrAsg(OperA, Op1), OpCode)); //Is this right?
}
- public static void Tex(ShaderIrBlock Block, long OpCode)
+ public static void Tex(ShaderIrBlock Block, long OpCode, long Position)
{
EmitTex(Block, OpCode, GprHandle: false);
}
- public static void Tex_B(ShaderIrBlock Block, long OpCode)
+ public static void Tex_B(ShaderIrBlock Block, long OpCode, long Position)
{
EmitTex(Block, OpCode, GprHandle: true);
}
@@ -202,12 +202,12 @@ namespace Ryujinx.Graphics.Gal.Shader
}
}
- public static void Texs(ShaderIrBlock Block, long OpCode)
+ public static void Texs(ShaderIrBlock Block, long OpCode, long Position)
{
EmitTexs(Block, OpCode, ShaderIrInst.Texs);
}
- public static void Tlds(ShaderIrBlock Block, long OpCode)
+ public static void Tlds(ShaderIrBlock Block, long OpCode, long Position)
{
EmitTexs(Block, OpCode, ShaderIrInst.Txlf);
}