2018-09-18 06:30:35 +02:00
|
|
|
|
namespace Ryujinx.Graphics.Gal.Shader
|
2018-07-19 07:33:27 +02:00
|
|
|
|
{
|
|
|
|
|
static partial class ShaderDecode
|
|
|
|
|
{
|
2019-03-04 02:45:25 +01:00
|
|
|
|
public static void Out_R(ShaderIrBlock block, long opCode, int position)
|
2018-07-19 07:33:27 +02:00
|
|
|
|
{
|
|
|
|
|
//TODO: Those registers have to be used for something
|
2019-03-04 02:45:25 +01:00
|
|
|
|
ShaderIrOperGpr gpr0 = opCode.Gpr0();
|
|
|
|
|
ShaderIrOperGpr gpr8 = opCode.Gpr8();
|
|
|
|
|
ShaderIrOperGpr gpr20 = opCode.Gpr20();
|
2018-07-19 07:33:27 +02:00
|
|
|
|
|
2019-03-04 02:45:25 +01:00
|
|
|
|
int type = opCode.Read(39, 3);
|
2018-07-19 07:33:27 +02:00
|
|
|
|
|
2019-03-04 02:45:25 +01:00
|
|
|
|
if ((type & 1) != 0)
|
2018-07-19 07:33:27 +02:00
|
|
|
|
{
|
2019-03-04 02:45:25 +01:00
|
|
|
|
block.AddNode(opCode.PredNode(new ShaderIrOp(ShaderIrInst.Emit)));
|
2018-07-19 07:33:27 +02:00
|
|
|
|
}
|
|
|
|
|
|
2019-03-04 02:45:25 +01:00
|
|
|
|
if ((type & 2) != 0)
|
2018-07-19 07:33:27 +02:00
|
|
|
|
{
|
2019-03-04 02:45:25 +01:00
|
|
|
|
block.AddNode(opCode.PredNode(new ShaderIrOp(ShaderIrInst.Cut)));
|
2018-07-19 07:33:27 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|