Implement NOP and stub DEPBAR shader instructions (#1041)

* Implement NOP and stub DEPBAR shader instruction

* Fix a few issues and formatting stuff

* Remove OpCodeNop/Depbar and use OpCode instead

* Fix NOP shader instruction opcode

* Fix formatting
This commit is contained in:
Elise 2020-03-26 23:30:16 +01:00 committed by GitHub
parent 0dd38028cb
commit 06bf25521f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 0 deletions

View file

@ -48,6 +48,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
Set("0100110001110x", InstEmit.Dadd, typeof(OpCodeFArithCbuf));
Set("0011100x01110x", InstEmit.Dadd, typeof(OpCodeDArithImm));
Set("0101110001110x", InstEmit.Dadd, typeof(OpCodeFArithReg));
Set("1111000011110x", InstEmit.Depbar, typeof(OpCode));
Set("010010110111xx", InstEmit.Dfma, typeof(OpCodeFArithCbuf));
Set("0011011x0111xx", InstEmit.Dfma, typeof(OpCodeDArithImm));
Set("010100110111xx", InstEmit.Dfma, typeof(OpCodeFArithRegCbuf));
@ -161,6 +162,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
Set("000000010000xx", InstEmit.Mov, typeof(OpCodeAluImm32));
Set("0101110010011x", InstEmit.Mov, typeof(OpCodeAluReg));
Set("0101000010000x", InstEmit.Mufu, typeof(OpCodeFArith));
Set("0101000010110x", InstEmit.Nop, typeof(OpCode));
Set("1111101111100x", InstEmit.Out, typeof(OpCode));
Set("111000101010xx", InstEmit.Pbk, typeof(OpCodePush));
Set("0100110000001x", InstEmit.Popc, typeof(OpCodeAluCbuf));

View file

@ -51,6 +51,8 @@ namespace Ryujinx.Graphics.Shader.Instructions
}
}
public static void Depbar(EmitterContext context) { }
public static void Exit(EmitterContext context)
{
OpCodeExit op = (OpCodeExit)context.CurrOp;
@ -68,6 +70,8 @@ namespace Ryujinx.Graphics.Shader.Instructions
context.Discard();
}
public static void Nop(EmitterContext context) { }
public static void Pbk(EmitterContext context)
{
EmitPbkOrSsy(context);