diff options
| author | Elise <elise@headpat.services> | 2020-03-26 23:30:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-26 19:30:16 -0300 |
| commit | 06bf25521ff3ab2ad82eb49cde2bb6f90324caa2 (patch) | |
| tree | d994933039fd11c04076862f77635de113be0998 /Ryujinx.Graphics.Shader | |
| parent | 0dd38028cbf54b672a41fcec0024740ff8ccea72 (diff) | |
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
Diffstat (limited to 'Ryujinx.Graphics.Shader')
| -rw-r--r-- | Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Shader/Instructions/InstEmitFlow.cs | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs index 4579d650..e71c3186 100644 --- a/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs +++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs @@ -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)); diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitFlow.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitFlow.cs index 4b058a84..e34f2988 100644 --- a/Ryujinx.Graphics.Shader/Instructions/InstEmitFlow.cs +++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitFlow.cs @@ -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); |
