Implement NOP and stub DEPBAR shader instruction
This commit is contained in:
parent
1586450a38
commit
e3128158bc
4 changed files with 40 additions and 0 deletions
14
Ryujinx.Graphics.Shader/Decoders/OpCodeDepbar.cs
Normal file
14
Ryujinx.Graphics.Shader/Decoders/OpCodeDepbar.cs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Ryujinx.Graphics.Shader.Decoders
|
||||||
|
{
|
||||||
|
class OpCodeDepbar
|
||||||
|
{
|
||||||
|
public OpCodeDepbar(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
14
Ryujinx.Graphics.Shader/Decoders/OpCodeNop.cs
Normal file
14
Ryujinx.Graphics.Shader/Decoders/OpCodeNop.cs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Ryujinx.Graphics.Shader.Decoders
|
||||||
|
{
|
||||||
|
class OpCodeNop
|
||||||
|
{
|
||||||
|
public OpCodeNop(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -48,6 +48,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
|
||||||
Set("0100110001110x", InstEmit.Dadd, typeof(OpCodeFArithCbuf));
|
Set("0100110001110x", InstEmit.Dadd, typeof(OpCodeFArithCbuf));
|
||||||
Set("0011100x01110x", InstEmit.Dadd, typeof(OpCodeDArithImm));
|
Set("0011100x01110x", InstEmit.Dadd, typeof(OpCodeDArithImm));
|
||||||
Set("0101110001110x", InstEmit.Dadd, typeof(OpCodeFArithReg));
|
Set("0101110001110x", InstEmit.Dadd, typeof(OpCodeFArithReg));
|
||||||
|
Set("1111000011110x", InstEmit.Depbar, typeof(OpCodeDepbar));
|
||||||
Set("010010110111xx", InstEmit.Dfma, typeof(OpCodeFArithCbuf));
|
Set("010010110111xx", InstEmit.Dfma, typeof(OpCodeFArithCbuf));
|
||||||
Set("0011011x0111xx", InstEmit.Dfma, typeof(OpCodeDArithImm));
|
Set("0011011x0111xx", InstEmit.Dfma, typeof(OpCodeDArithImm));
|
||||||
Set("010100110111xx", InstEmit.Dfma, typeof(OpCodeFArithRegCbuf));
|
Set("010100110111xx", InstEmit.Dfma, typeof(OpCodeFArithRegCbuf));
|
||||||
|
@ -161,6 +162,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
|
||||||
Set("000000010000xx", InstEmit.Mov, typeof(OpCodeAluImm32));
|
Set("000000010000xx", InstEmit.Mov, typeof(OpCodeAluImm32));
|
||||||
Set("0101110010011x", InstEmit.Mov, typeof(OpCodeAluReg));
|
Set("0101110010011x", InstEmit.Mov, typeof(OpCodeAluReg));
|
||||||
Set("0101000010000x", InstEmit.Mufu, typeof(OpCodeFArith));
|
Set("0101000010000x", InstEmit.Mufu, typeof(OpCodeFArith));
|
||||||
|
Set("1010000101100x", InstEmit.Nop, typeof(OpCodeNop));
|
||||||
Set("1111101111100x", InstEmit.Out, typeof(OpCode));
|
Set("1111101111100x", InstEmit.Out, typeof(OpCode));
|
||||||
Set("111000101010xx", InstEmit.Pbk, typeof(OpCodePush));
|
Set("111000101010xx", InstEmit.Pbk, typeof(OpCodePush));
|
||||||
Set("0100110000001x", InstEmit.Popc, typeof(OpCodeAluCbuf));
|
Set("0100110000001x", InstEmit.Popc, typeof(OpCodeAluCbuf));
|
||||||
|
|
|
@ -51,6 +51,11 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void Depbar(EmitterContext context)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
public static void Exit(EmitterContext context)
|
public static void Exit(EmitterContext context)
|
||||||
{
|
{
|
||||||
OpCodeExit op = (OpCodeExit)context.CurrOp;
|
OpCodeExit op = (OpCodeExit)context.CurrOp;
|
||||||
|
@ -68,6 +73,11 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||||
context.Discard();
|
context.Discard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void Nop(EmitterContext context)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
public static void Pbk(EmitterContext context)
|
public static void Pbk(EmitterContext context)
|
||||||
{
|
{
|
||||||
EmitPbkOrSsy(context);
|
EmitPbkOrSsy(context);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue