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