From a7109c767bdc014327b574012794156c92174495 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 12 Oct 2021 17:35:31 -0300 Subject: Rewrite shader decoding stage (#2698) * Rewrite shader decoding stage * Fix P2R constant buffer encoding * Fix PSET/PSETP * PR feedback * Log unimplemented shader instructions * Implement NOP * Remove using * PR feedback --- Ryujinx.Graphics.Shader/Decoders/DecoderHelper.cs | 74 ----------------------- 1 file changed, 74 deletions(-) delete mode 100644 Ryujinx.Graphics.Shader/Decoders/DecoderHelper.cs (limited to 'Ryujinx.Graphics.Shader/Decoders/DecoderHelper.cs') diff --git a/Ryujinx.Graphics.Shader/Decoders/DecoderHelper.cs b/Ryujinx.Graphics.Shader/Decoders/DecoderHelper.cs deleted file mode 100644 index 3585c35f..00000000 --- a/Ryujinx.Graphics.Shader/Decoders/DecoderHelper.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; - -namespace Ryujinx.Graphics.Shader.Decoders -{ - static class DecoderHelper - { - public static int DecodeS20Immediate(long opCode) - { - int imm = opCode.Extract(20, 19); - - bool sign = opCode.Extract(56); - - if (sign) - { - imm = (imm << 13) >> 13; - } - - return imm; - } - - public static int Decode2xF10Immediate(long opCode) - { - int immH0 = opCode.Extract(20, 9); - int immH1 = opCode.Extract(30, 9); - - bool negateH0 = opCode.Extract(29); - bool negateH1 = opCode.Extract(56); - - if (negateH0) - { - immH0 |= 1 << 9; - } - - if (negateH1) - { - immH1 |= 1 << 9; - } - - return immH1 << 22 | immH0 << 6; - } - - public static float DecodeF20Immediate(long opCode) - { - int imm = opCode.Extract(20, 19); - - bool negate = opCode.Extract(56); - - imm <<= 12; - - if (negate) - { - imm |= 1 << 31; - } - - return BitConverter.Int32BitsToSingle(imm); - } - - public static float DecodeD20Immediate(long opCode) - { - long imm = opCode.Extract(20, 19); - - bool negate = opCode.Extract(56); - - imm <<= 44; - - if (negate) - { - imm |= 1L << 63; - } - - return (float)BitConverter.Int64BitsToDouble(imm); - } - } -} \ No newline at end of file -- cgit v1.2.3