Bladeren bron

misc: chore: VP9 project cleanup

Target-typed new, remove var usage, use collection expressions, rename many fields & properties to match C# standard
Evan Husted 1 jaar geleden
bovenliggende
commit
b1de7696ee
33 gewijzigde bestanden met toevoegingen van 1865 en 1906 verwijderingen
  1. 1 1
      src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs
  2. 1 1
      src/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryAllocator.cs
  3. 5 5
      src/Ryujinx.Graphics.Nvdec.Vp9/DSubExp.cs
  4. 88 88
      src/Ryujinx.Graphics.Nvdec.Vp9/DecodeFrame.cs
  5. 42 42
      src/Ryujinx.Graphics.Nvdec.Vp9/DecodeMv.cs
  6. 3 3
      src/Ryujinx.Graphics.Nvdec.Vp9/Decoder.cs
  7. 11 11
      src/Ryujinx.Graphics.Nvdec.Vp9/Detokenize.cs
  8. 155 155
      src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/IntraPred.cs
  9. 30 30
      src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/InvTxfm.cs
  10. 12 12
      src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/LoopFilterSse2.cs
  11. 4 4
      src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/Prob.cs
  12. 11 11
      src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/Reader.cs
  13. 272 272
      src/Ryujinx.Graphics.Nvdec.Vp9/Entropy.cs
  14. 213 223
      src/Ryujinx.Graphics.Nvdec.Vp9/EntropyMode.cs
  15. 18 18
      src/Ryujinx.Graphics.Nvdec.Vp9/EntropyMv.cs
  16. 13 14
      src/Ryujinx.Graphics.Nvdec.Vp9/FrameBuffers.cs
  17. 90 90
      src/Ryujinx.Graphics.Nvdec.Vp9/Idct.cs
  18. 208 208
      src/Ryujinx.Graphics.Nvdec.Vp9/LoopFilter.cs
  19. 383 382
      src/Ryujinx.Graphics.Nvdec.Vp9/Luts.cs
  20. 4 4
      src/Ryujinx.Graphics.Nvdec.Vp9/Prob.cs
  21. 24 24
      src/Ryujinx.Graphics.Nvdec.Vp9/QuantCommon.cs
  22. 99 119
      src/Ryujinx.Graphics.Nvdec.Vp9/ReconIntra.cs
  23. 13 13
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/BlockSize.cs
  24. 2 2
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/LoopFilterMask.cs
  25. 8 8
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/ModeInfo.cs
  26. 5 5
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/Mv.cs
  27. 80 91
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/ScaleFactors.cs
  28. 7 7
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/Segmentation.cs
  29. 17 17
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/Surface.cs
  30. 4 4
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/TxMode.cs
  31. 4 4
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/TxSize.cs
  32. 14 14
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/Vp9Common.cs
  33. 24 24
      src/Ryujinx.Graphics.Nvdec.Vp9/Types/Vp9Decoder.cs

+ 1 - 1
src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs

@@ -729,7 +729,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
 
             ShaderProgram program = translatorContext.Translate();
 
-            CachedShaderStage[] shaders = [new CachedShaderStage(program.Info, shader.Code, shader.Cb1Data)];
+            CachedShaderStage[] shaders = [new(program.Info, shader.Code, shader.Cb1Data)];
 
             _compilationQueue.Enqueue(new ProgramCompilation([program], shaders, newSpecState, programIndex, isCompute: true));
         }

+ 1 - 1
src/Ryujinx.Graphics.Nvdec.Vp9/Common/MemoryAllocator.cs

@@ -59,7 +59,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Common
                 }
             }
 
-            ArrayPtr<T> allocation = new ArrayPtr<T>(ptr, length);
+            ArrayPtr<T> allocation = new(ptr, length);
 
             allocation.AsSpan().Fill(default);
 

+ 5 - 5
src/Ryujinx.Graphics.Nvdec.Vp9/DSubExp.cs

@@ -14,8 +14,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             return (v & 1) != 0 ? m - ((v + 1) >> 1) : m + (v >> 1);
         }
 
-        private static readonly byte[] InvMapTable =
-        {
+        private static readonly byte[] _invMapTable =
+        [
             7, 20, 33, 46, 59, 72, 85, 98, 111, 124, 137, 150, 163, 176, 189, 202, 215, 228, 241, 254, 1, 2, 3, 4,
             5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34,
             35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62,
@@ -28,13 +28,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             206, 207, 208, 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
             229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 243, 244, 245, 246, 247, 248, 249, 250,
             251, 252, 253, 253
-        };
+        ];
 
         public static int InvRemapProb(int v, int m)
         {
-            Debug.Assert(v < InvMapTable.Length / sizeof(byte));
+            Debug.Assert(v < _invMapTable.Length / sizeof(byte));
 
-            v = InvMapTable[v];
+            v = _invMapTable[v];
             m--;
             if (m << 1 <= Prob.MaxProb)
             {

+ 88 - 88
src/Ryujinx.Graphics.Nvdec.Vp9/DecodeFrame.cs

@@ -111,23 +111,23 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 Span<ushort> dst16 = MemoryMarshal.Cast<byte, ushort>(dst);
                 if (xd.Lossless)
                 {
-                    Idct.HighbdIwht4x4Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                    Idct.HighbdIwht4X4Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                 }
                 else
                 {
                     switch (txSize)
                     {
-                        case TxSize.Tx4x4:
-                            Idct.HighbdIdct4x4Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx4X4:
+                            Idct.HighbdIdct4X4Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
-                        case TxSize.Tx8x8:
-                            Idct.HighbdIdct8x8Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx8X8:
+                            Idct.HighbdIdct8X8Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
-                        case TxSize.Tx16x16:
-                            Idct.HighbdIdct16x16Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx16X16:
+                            Idct.HighbdIdct16X16Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
-                        case TxSize.Tx32x32:
-                            Idct.HighbdIdct32x32Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx32X32:
+                            Idct.HighbdIdct32X32Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
                         default:
                             Debug.Assert(false, "Invalid transform size");
@@ -139,23 +139,23 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             {
                 if (xd.Lossless)
                 {
-                    Idct.Iwht4x4Add(dqcoeff.AsSpan(), dst, stride, eob);
+                    Idct.Iwht4X4Add(dqcoeff.AsSpan(), dst, stride, eob);
                 }
                 else
                 {
                     switch (txSize)
                     {
-                        case TxSize.Tx4x4:
-                            Idct.Idct4x4Add(dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx4X4:
+                            Idct.Idct4X4Add(dqcoeff.AsSpan(), dst, stride, eob);
                             break;
-                        case TxSize.Tx8x8:
-                            Idct.Idct8x8Add(dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx8X8:
+                            Idct.Idct8X8Add(dqcoeff.AsSpan(), dst, stride, eob);
                             break;
-                        case TxSize.Tx16x16:
-                            Idct.Idct16x16Add(dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx16X16:
+                            Idct.Idct16X16Add(dqcoeff.AsSpan(), dst, stride, eob);
                             break;
-                        case TxSize.Tx32x32:
-                            Idct.Idct32x32Add(dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx32X32:
+                            Idct.Idct32X32Add(dqcoeff.AsSpan(), dst, stride, eob);
                             break;
                         default:
                             Debug.Assert(false, "Invalid transform size");
@@ -170,11 +170,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
             else
             {
-                if (txSize <= TxSize.Tx16x16 && eob <= 10)
+                if (txSize <= TxSize.Tx16X16 && eob <= 10)
                 {
                     dqcoeff.AsSpan().Slice(0, 4 * (4 << (int)txSize)).Clear();
                 }
-                else if (txSize == TxSize.Tx32x32 && eob <= 34)
+                else if (txSize == TxSize.Tx32X32 && eob <= 34)
                 {
                     dqcoeff.AsSpan().Slice(0, 256).Clear();
                 }
@@ -202,23 +202,23 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 Span<ushort> dst16 = MemoryMarshal.Cast<byte, ushort>(dst);
                 if (xd.Lossless)
                 {
-                    Idct.HighbdIwht4x4Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                    Idct.HighbdIwht4X4Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                 }
                 else
                 {
                     switch (txSize)
                     {
-                        case TxSize.Tx4x4:
-                            Idct.HighbdIht4x4Add(txType, dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx4X4:
+                            Idct.HighbdIht4X4Add(txType, dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
-                        case TxSize.Tx8x8:
-                            Idct.HighbdIht8x8Add(txType, dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx8X8:
+                            Idct.HighbdIht8X8Add(txType, dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
-                        case TxSize.Tx16x16:
-                            Idct.HighbdIht16x16Add(txType, dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx16X16:
+                            Idct.HighbdIht16X16Add(txType, dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
-                        case TxSize.Tx32x32:
-                            Idct.HighbdIdct32x32Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
+                        case TxSize.Tx32X32:
+                            Idct.HighbdIdct32X32Add(dqcoeff.AsSpan(), dst16, stride, eob, xd.Bd);
                             break;
                         default:
                             Debug.Assert(false, "Invalid transform size");
@@ -230,23 +230,23 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             {
                 if (xd.Lossless)
                 {
-                    Idct.Iwht4x4Add(dqcoeff.AsSpan(), dst, stride, eob);
+                    Idct.Iwht4X4Add(dqcoeff.AsSpan(), dst, stride, eob);
                 }
                 else
                 {
                     switch (txSize)
                     {
-                        case TxSize.Tx4x4:
-                            Idct.Iht4x4Add(txType, dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx4X4:
+                            Idct.Iht4X4Add(txType, dqcoeff.AsSpan(), dst, stride, eob);
                             break;
-                        case TxSize.Tx8x8:
-                            Idct.Iht8x8Add(txType, dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx8X8:
+                            Idct.Iht8X8Add(txType, dqcoeff.AsSpan(), dst, stride, eob);
                             break;
-                        case TxSize.Tx16x16:
-                            Idct.Iht16x16Add(txType, dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx16X16:
+                            Idct.Iht16X16Add(txType, dqcoeff.AsSpan(), dst, stride, eob);
                             break;
-                        case TxSize.Tx32x32:
-                            Idct.Idct32x32Add(dqcoeff.AsSpan(), dst, stride, eob);
+                        case TxSize.Tx32X32:
+                            Idct.Idct32X32Add(dqcoeff.AsSpan(), dst, stride, eob);
                             break;
                         default:
                             Debug.Assert(false, "Invalid transform size");
@@ -261,11 +261,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
             else
             {
-                if (txType == TxType.DctDct && txSize <= TxSize.Tx16x16 && eob <= 10)
+                if (txType == TxType.DctDct && txSize <= TxSize.Tx16X16 && eob <= 10)
                 {
                     dqcoeff.AsSpan().Slice(0, 4 * (4 << (int)txSize)).Clear();
                 }
-                else if (txSize == TxSize.Tx32x32 && eob <= 34)
+                else if (txSize == TxSize.Tx32X32 && eob <= 34)
                 {
                     dqcoeff.AsSpan().Slice(0, 256).Clear();
                 }
@@ -291,7 +291,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             byte* dst = &pd.Dst.Buf.ToPointer()[dstOffset];
             Span<byte> dstSpan = pd.Dst.Buf.AsSpan().Slice(dstOffset);
 
-            if (mi.SbType < BlockSize.Block8x8)
+            if (mi.SbType < BlockSize.Block8X8)
             {
                 if (plane == 0)
                 {
@@ -769,21 +769,21 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     isScaled ? new Ptr<ScaleFactors>(ref sf) : Ptr<ScaleFactors>.Null);
                 xd.BlockRefs[refr] = new Ptr<RefBuffer>(ref refBuf);
 
-                if (sbType < BlockSize.Block8x8)
+                if (sbType < BlockSize.Block8X8)
                 {
                     for (plane = 0; plane < Constants.MaxMbPlane; ++plane)
                     {
                         ref MacroBlockDPlane pd = ref xd.Plane[plane];
                         ref Buf2D dstBuf = ref pd.Dst;
-                        int num4x4W = pd.N4W;
-                        int num4x4H = pd.N4H;
-                        int n4Wx4 = 4 * num4x4W;
-                        int n4Hx4 = 4 * num4x4H;
+                        int num4X4W = pd.N4W;
+                        int num4X4H = pd.N4H;
+                        int n4Wx4 = 4 * num4X4W;
+                        int n4Hx4 = 4 * num4X4H;
                         ref Buf2D preBuf = ref pd.Pre[refr];
                         int i = 0;
-                        for (int y = 0; y < num4x4H; ++y)
+                        for (int y = 0; y < num4X4H; ++y)
                         {
-                            for (int x = 0; x < num4x4W; ++x)
+                            for (int x = 0; x < num4X4W; ++x)
                             {
                                 Mv mv = ReconInter.AverageSplitMvs(ref pd, ref mi, refr, i++);
                                 DecBuildInterPredictors(
@@ -816,10 +816,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     {
                         ref MacroBlockDPlane pd = ref xd.Plane[plane];
                         ref Buf2D dstBuf = ref pd.Dst;
-                        int num4x4W = pd.N4W;
-                        int num4x4H = pd.N4H;
-                        int n4Wx4 = 4 * num4x4W;
-                        int n4Hx4 = 4 * num4x4H;
+                        int num4X4W = pd.N4W;
+                        int num4X4H = pd.N4H;
+                        int n4Wx4 = 4 * num4X4W;
+                        int n4Hx4 = 4 * num4X4H;
                         ref Buf2D preBuf = ref pd.Pre[refr];
                         DecBuildInterPredictors(
                             ref xd,
@@ -905,7 +905,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             int bwl,
             int bhl)
         {
-            bool less8x8 = bsize < BlockSize.Block8x8;
+            bool less8X8 = bsize < BlockSize.Block8X8;
             int bw = 1 << (bwl - 1);
             int bh = 1 << (bhl - 1);
             int xMis = Math.Min(bw, cm.MiCols - miCol);
@@ -915,7 +915,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
             ref ModeInfo mi = ref SetOffsets(ref cm, ref xd, bsize, miRow, miCol, bw, bh, xMis, yMis, bwl, bhl);
 
-            if (bsize >= BlockSize.Block8x8 && (cm.SubsamplingX != 0 || cm.SubsamplingY != 0))
+            if (bsize >= BlockSize.Block8X8 && (cm.SubsamplingX != 0 || cm.SubsamplingY != 0))
             {
                 BlockSize uvSubsize = Luts.SsSizeLookup[(int)bsize][cm.SubsamplingX][cm.SubsamplingY];
                 if (uvSubsize == BlockSize.BlockInvalid)
@@ -938,14 +938,14 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 {
                     ref MacroBlockDPlane pd = ref xd.Plane[plane];
                     TxSize txSize = plane != 0 ? mi.GetUvTxSize(ref pd) : mi.TxSize;
-                    int num4x4W = pd.N4W;
-                    int num4x4H = pd.N4H;
+                    int num4X4W = pd.N4W;
+                    int num4X4H = pd.N4H;
                     int step = 1 << (int)txSize;
                     int row, col;
                     int maxBlocksWide =
-                        num4x4W + (xd.MbToRightEdge >= 0 ? 0 : xd.MbToRightEdge >> (5 + pd.SubsamplingX));
+                        num4X4W + (xd.MbToRightEdge >= 0 ? 0 : xd.MbToRightEdge >> (5 + pd.SubsamplingX));
                     int maxBlocksHigh =
-                        num4x4H + (xd.MbToBottomEdge >= 0 ? 0 : xd.MbToBottomEdge >> (5 + pd.SubsamplingY));
+                        num4X4H + (xd.MbToBottomEdge >= 0 ? 0 : xd.MbToBottomEdge >> (5 + pd.SubsamplingY));
 
                     xd.MaxBlocksWide = (uint)(xd.MbToRightEdge >= 0 ? 0 : maxBlocksWide);
                     xd.MaxBlocksHigh = (uint)(xd.MbToBottomEdge >= 0 ? 0 : maxBlocksHigh);
@@ -974,13 +974,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     {
                         ref MacroBlockDPlane pd = ref xd.Plane[plane];
                         TxSize txSize = plane != 0 ? mi.GetUvTxSize(ref pd) : mi.TxSize;
-                        int num4x4W = pd.N4W;
-                        int num4x4H = pd.N4H;
+                        int num4X4W = pd.N4W;
+                        int num4X4H = pd.N4H;
                         int step = 1 << (int)txSize;
                         int row, col;
                         int maxBlocksWide =
-                            num4x4W + (xd.MbToRightEdge >= 0 ? 0 : xd.MbToRightEdge >> (5 + pd.SubsamplingX));
-                        int maxBlocksHigh = num4x4H +
+                            num4X4W + (xd.MbToRightEdge >= 0 ? 0 : xd.MbToRightEdge >> (5 + pd.SubsamplingX));
+                        int maxBlocksHigh = num4X4H +
                                             (xd.MbToBottomEdge >= 0 ? 0 : xd.MbToBottomEdge >> (5 + pd.SubsamplingY));
 
                         xd.MaxBlocksWide = (uint)(xd.MbToRightEdge >= 0 ? 0 : maxBlocksWide);
@@ -995,7 +995,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                         }
                     }
 
-                    if (!less8x8 && eobtotal == 0)
+                    if (!less8X8 && eobtotal == 0)
                     {
                         mi.Skip = 1; // Skip loopfilter
                     }
@@ -1072,11 +1072,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             int miRow,
             int miCol,
             BlockSize bsize,
-            int n4x4L2)
+            int n4X4L2)
         {
-            int n8x8L2 = n4x4L2 - 1;
-            int num8x8Wh = 1 << n8x8L2;
-            int hbs = num8x8Wh >> 1;
+            int n8X8L2 = n4X4L2 - 1;
+            int num8X8Wh = 1 << n8X8L2;
+            int hbs = num8X8Wh >> 1;
             PartitionType partition;
             BlockSize subsize;
             bool hasRows = miRow + hbs < cm.MiRows;
@@ -1088,7 +1088,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 return;
             }
 
-            partition = ReadPartition(ref twd, miRow, miCol, hasRows ? 1 : 0, hasCols ? 1 : 0, n8x8L2);
+            partition = ReadPartition(ref twd, miRow, miCol, hasRows ? 1 : 0, hasCols ? 1 : 0, n8X8L2);
             subsize = Luts.SubsizeLookup[(int)partition][(int)bsize];
             if (hbs == 0)
             {
@@ -1102,29 +1102,29 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 switch (partition)
                 {
                     case PartitionType.PartitionNone:
-                        DecodeBlock(ref twd, ref cm, miRow, miCol, subsize, n4x4L2, n4x4L2);
+                        DecodeBlock(ref twd, ref cm, miRow, miCol, subsize, n4X4L2, n4X4L2);
                         break;
                     case PartitionType.PartitionHorz:
-                        DecodeBlock(ref twd, ref cm, miRow, miCol, subsize, n4x4L2, n8x8L2);
+                        DecodeBlock(ref twd, ref cm, miRow, miCol, subsize, n4X4L2, n8X8L2);
                         if (hasRows)
                         {
-                            DecodeBlock(ref twd, ref cm, miRow + hbs, miCol, subsize, n4x4L2, n8x8L2);
+                            DecodeBlock(ref twd, ref cm, miRow + hbs, miCol, subsize, n4X4L2, n8X8L2);
                         }
 
                         break;
                     case PartitionType.PartitionVert:
-                        DecodeBlock(ref twd, ref cm, miRow, miCol, subsize, n8x8L2, n4x4L2);
+                        DecodeBlock(ref twd, ref cm, miRow, miCol, subsize, n8X8L2, n4X4L2);
                         if (hasCols)
                         {
-                            DecodeBlock(ref twd, ref cm, miRow, miCol + hbs, subsize, n8x8L2, n4x4L2);
+                            DecodeBlock(ref twd, ref cm, miRow, miCol + hbs, subsize, n8X8L2, n4X4L2);
                         }
 
                         break;
                     case PartitionType.PartitionSplit:
-                        DecodePartition(ref twd, ref cm, miRow, miCol, subsize, n8x8L2);
-                        DecodePartition(ref twd, ref cm, miRow, miCol + hbs, subsize, n8x8L2);
-                        DecodePartition(ref twd, ref cm, miRow + hbs, miCol, subsize, n8x8L2);
-                        DecodePartition(ref twd, ref cm, miRow + hbs, miCol + hbs, subsize, n8x8L2);
+                        DecodePartition(ref twd, ref cm, miRow, miCol, subsize, n8X8L2);
+                        DecodePartition(ref twd, ref cm, miRow, miCol + hbs, subsize, n8X8L2);
+                        DecodePartition(ref twd, ref cm, miRow + hbs, miCol, subsize, n8X8L2);
+                        DecodePartition(ref twd, ref cm, miRow + hbs, miCol + hbs, subsize, n8X8L2);
                         break;
                     default:
                         Debug.Assert(false, "Invalid partition type");
@@ -1133,10 +1133,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
 
             // Update partition context
-            if (bsize >= BlockSize.Block8x8 &&
-                (bsize == BlockSize.Block8x8 || partition != PartitionType.PartitionSplit))
+            if (bsize >= BlockSize.Block8X8 &&
+                (bsize == BlockSize.Block8X8 || partition != PartitionType.PartitionSplit))
             {
-                DecUpdatePartitionContext(ref twd, miRow, miCol, subsize, num8x8Wh);
+                DecUpdatePartitionContext(ref twd, miRow, miCol, subsize, num8X8Wh);
             }
         }
 
@@ -1186,7 +1186,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         private static void ReadCoefProbs(ref Vp9EntropyProbs fc, TxMode txMode, ref Reader r)
         {
             int maxTxSize = (int)Luts.TxModeToBiggestTxSize[(int)txMode];
-            for (int txSize = (int)TxSize.Tx4x4; txSize <= maxTxSize; ++txSize)
+            for (int txSize = (int)TxSize.Tx4X4; txSize <= maxTxSize; ++txSize)
             {
                 ReadCoefProbsCommon(ref fc.CoefProbs[txSize], ref r, txSize);
             }
@@ -1238,16 +1238,16 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             xd.Bd = (int)cm.BitDepth;
         }
 
-        private static readonly byte[] LiteralToFilter =
-        {
+        private static readonly byte[] _literalToFilter =
+        [
             Constants.EightTapSmooth, Constants.EightTap, Constants.EightTapSharp, Constants.Bilinear
-        };
+        ];
 
         private static byte ReadInterpFilter(ref ReadBitBuffer rb)
         {
             return rb.ReadBit() != 0
                 ? (byte)Constants.Switchable
-                : LiteralToFilter[rb.ReadLiteral(2)];
+                : _literalToFilter[rb.ReadLiteral(2)];
         }
 
         private static void SetupRenderSize(ref Vp9Common cm, ref ReadBitBuffer rb)
@@ -1519,7 +1519,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                         tileData.Xd.LeftSegContext = new Array8<sbyte>();
                         for (miCol = tile.MiColStart; miCol < tile.MiColEnd; miCol += Constants.MiBlockSize)
                         {
-                            DecodePartition(ref tileData, ref cm, miRow, miCol, BlockSize.Block64x64, 4);
+                            DecodePartition(ref tileData, ref cm, miRow, miCol, BlockSize.Block64X64, 4);
                         }
 
                         cm.Mb.Corrupted |= tileData.Xd.Corrupted;
@@ -1563,7 +1563,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     tileData.Xd.LeftSegContext = new Array8<sbyte>();
                     for (int miCol = tile.MiColStart; miCol < tile.MiColEnd; miCol += Constants.MiBlockSize)
                     {
-                        DecodePartition(ref tileData, ref cm, miRow, miCol, BlockSize.Block64x64, 4);
+                        DecodePartition(ref tileData, ref cm, miRow, miCol, BlockSize.Block64X64, 4);
                     }
                 }
 
@@ -1990,7 +1990,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 cm.Error.InternalError(CodecErr.MemError, "Failed to allocate bool decoder 0");
             }
 
-            cm.TxMode = xd.Lossless ? TxMode.Only4x4 : r.ReadTxMode();
+            cm.TxMode = xd.Lossless ? TxMode.Only4X4 : r.ReadTxMode();
             if (cm.TxMode == TxMode.TxModeSelect)
             {
                 ReadTxModeProbs(ref fc, ref r);

+ 42 - 42
src/Ryujinx.Graphics.Nvdec.Vp9/DecodeMv.cs

@@ -59,9 +59,9 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         {
             switch (maxTxSize)
             {
-                case TxSize.Tx8x8: return fc.Tx8x8Prob[ctx].AsSpan();
-                case TxSize.Tx16x16: return fc.Tx16x16Prob[ctx].AsSpan();
-                case TxSize.Tx32x32: return fc.Tx32x32Prob[ctx].AsSpan();
+                case TxSize.Tx8X8: return fc.Tx8x8Prob[ctx].AsSpan();
+                case TxSize.Tx16X16: return fc.Tx16x16Prob[ctx].AsSpan();
+                case TxSize.Tx32X32: return fc.Tx32x32Prob[ctx].AsSpan();
                 default:
                     Debug.Assert(false, "Invalid maxTxSize.");
                     return ReadOnlySpan<byte>.Empty;
@@ -72,9 +72,9 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         {
             switch (maxTxSize)
             {
-                case TxSize.Tx8x8: return counts.Tx8x8[ctx].AsSpan();
-                case TxSize.Tx16x16: return counts.Tx16x16[ctx].AsSpan();
-                case TxSize.Tx32x32: return counts.Tx32x32[ctx].AsSpan();
+                case TxSize.Tx8X8: return counts.Tx8x8[ctx].AsSpan();
+                case TxSize.Tx16X16: return counts.Tx16x16[ctx].AsSpan();
+                case TxSize.Tx32X32: return counts.Tx32x32[ctx].AsSpan();
                 default:
                     Debug.Assert(false, "Invalid maxTxSize.");
                     return Span<uint>.Empty;
@@ -86,10 +86,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             int ctx = xd.GetTxSizeContext();
             ReadOnlySpan<byte> txProbs = GetTxProbs(ref cm.Fc.Value, maxTxSize, ctx);
             TxSize txSize = (TxSize)r.Read(txProbs[0]);
-            if (txSize != TxSize.Tx4x4 && maxTxSize >= TxSize.Tx16x16)
+            if (txSize != TxSize.Tx4X4 && maxTxSize >= TxSize.Tx16X16)
             {
                 txSize += r.Read(txProbs[1]);
-                if (txSize != TxSize.Tx8x8 && maxTxSize >= TxSize.Tx32x32)
+                if (txSize != TxSize.Tx8X8 && maxTxSize >= TxSize.Tx32X32)
                 {
                     txSize += r.Read(txProbs[2]);
                 }
@@ -108,7 +108,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             TxMode txMode = cm.TxMode;
             BlockSize bsize = xd.Mi[0].Value.SbType;
             TxSize maxTxSize = Luts.MaxTxSizeLookup[(int)bsize];
-            if (allowSelect && txMode == TxMode.TxModeSelect && bsize >= BlockSize.Block8x8)
+            if (allowSelect && txMode == TxMode.TxModeSelect && bsize >= BlockSize.Block8X8)
             {
                 return ReadSelectedTxSize(ref cm, ref xd, maxTxSize, ref r);
             }
@@ -276,7 +276,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
 
             // Fractional part
-            fr = r.ReadTree(Luts.MvFPTree, class0 ? fc.Class0Fp[mvcomp][d].AsSpan() : fc.Fp[mvcomp].AsSpan());
+            fr = r.ReadTree(Luts.MvFpTree, class0 ? fc.Class0Fp[mvcomp][d].AsSpan() : fc.Fp[mvcomp].AsSpan());
 
             // High precision part (if hp is not used, the default value of the hp is 1)
             hp = usehp ? r.Read(class0 ? fc.Class0Hp[mvcomp] : fc.Hp[mvcomp]) : 1;
@@ -415,7 +415,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
             switch (bsize)
             {
-                case BlockSize.Block4x4:
+                case BlockSize.Block4X4:
                     for (int i = 0; i < 4; ++i)
                     {
                         mi.Bmi[i].Mode = ReadIntraModeY(ref cm, ref xd, ref r, 0);
@@ -423,11 +423,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
                     mi.Mode = mi.Bmi[3].Mode;
                     break;
-                case BlockSize.Block4x8:
+                case BlockSize.Block4X8:
                     mi.Bmi[0].Mode = mi.Bmi[2].Mode = ReadIntraModeY(ref cm, ref xd, ref r, 0);
                     mi.Bmi[1].Mode = mi.Bmi[3].Mode = mi.Mode = ReadIntraModeY(ref cm, ref xd, ref r, 0);
                     break;
-                case BlockSize.Block8x4:
+                case BlockSize.Block8X4:
                     mi.Bmi[0].Mode = mi.Bmi[1].Mode = ReadIntraModeY(ref cm, ref xd, ref r, 0);
                     mi.Bmi[2].Mode = mi.Bmi[3].Mode = mi.Mode = ReadIntraModeY(ref cm, ref xd, ref r, 0);
                     break;
@@ -595,7 +595,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             int miRow,
             int miCol,
             int block,
-            int isSub8x8)
+            int isSub8X8)
         {
             ref Array4<sbyte> refSignBias = ref cm.RefFrameSignBias;
             int i, refmvCount = 0;
@@ -612,7 +612,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             mvRefList.Slice(0, Constants.MaxMvRefCandidates).Fill(new Mv());
 
             i = 0;
-            if (isSub8x8 != 0)
+            if (isSub8X8 != 0)
             {
                 // If the size < 8x8 we get the mv from the bmi substructure for the
                 // nearest two blocks.
@@ -770,7 +770,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             return refmvCount;
         }
 
-        private static void AppendSub8x8ForIdx(
+        private static void AppendSub8X8ForIdx(
             ref Vp9Common cm,
             ref MacroBlockD xd,
             Span<Position> mvRefSearch,
@@ -779,7 +779,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             int refr,
             int miRow,
             int miCol,
-            ref Mv bestSub8x8)
+            ref Mv bestSub8X8)
         {
             Span<Mv> mvList = stackalloc Mv[Constants.MaxMvRefCandidates];
             ref ModeInfo mi = ref xd.Mi[0].Value;
@@ -794,22 +794,22 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             switch (block)
             {
                 case 0:
-                    bestSub8x8 = mvList[refmvCount - 1];
+                    bestSub8X8 = mvList[refmvCount - 1];
                     break;
                 case 1:
                 case 2:
                     if (bMode == PredictionMode.NearestMv)
                     {
-                        bestSub8x8 = bmi[0].Mv[refr];
+                        bestSub8X8 = bmi[0].Mv[refr];
                     }
                     else
                     {
-                        bestSub8x8 = new Mv();
+                        bestSub8X8 = new Mv();
                         for (int n = 0; n < refmvCount; ++n)
                         {
                             if (Unsafe.As<Mv, int>(ref bmi[0].Mv[refr]) != Unsafe.As<Mv, int>(ref mvList[n]))
                             {
-                                bestSub8x8 = mvList[n];
+                                bestSub8X8 = mvList[n];
                                 break;
                             }
                         }
@@ -819,7 +819,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 case 3:
                     if (bMode == PredictionMode.NearestMv)
                     {
-                        bestSub8x8 = bmi[2].Mv[refr];
+                        bestSub8X8 = bmi[2].Mv[refr];
                     }
                     else
                     {
@@ -828,12 +828,12 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                         candidates[1] = bmi[0].Mv[refr];
                         candidates[2] = mvList[0];
                         candidates[3] = mvList[1];
-                        bestSub8x8 = new Mv();
+                        bestSub8X8 = new Mv();
                         for (int n = 0; n < 2 + Constants.MaxMvRefCandidates; ++n)
                         {
                             if (Unsafe.As<Mv, int>(ref bmi[2].Mv[refr]) != Unsafe.As<Mv, int>(ref candidates[n]))
                             {
-                                bestSub8x8 = candidates[n];
+                                bestSub8X8 = candidates[n];
                                 break;
                             }
                         }
@@ -889,7 +889,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             if (cm.Seg.IsSegFeatureActive(mi.SegmentId, SegLvlFeatures.Skip) != 0)
             {
                 mi.Mode = PredictionMode.ZeroMv;
-                if (bsize < BlockSize.Block8x8)
+                if (bsize < BlockSize.Block8X8)
                 {
                     xd.ErrorInfo.Value.InternalError(CodecErr.UnsupBitstream,
                         "Invalid usage of segement feature on small blocks");
@@ -898,7 +898,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
             else
             {
-                if (bsize >= BlockSize.Block8x8)
+                if (bsize >= BlockSize.Block8X8)
                 {
                     mi.Mode = ReadInterMode(ref cm, ref xd, ref r, interModeCtx);
                 }
@@ -932,20 +932,20 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                 ? ReadSwitchableInterpFilter(ref cm, ref xd, ref r)
                 : cm.InterpFilter;
 
-            if (bsize < BlockSize.Block8x8)
+            if (bsize < BlockSize.Block8X8)
             {
-                int num4x4W = 1 << xd.BmodeBlocksWl;
-                int num4x4H = 1 << xd.BmodeBlocksHl;
+                int num4X4W = 1 << xd.BmodeBlocksWl;
+                int num4X4H = 1 << xd.BmodeBlocksHl;
                 int idx, idy;
                 PredictionMode bMode = 0;
-                Array2<Mv> bestSub8x8 = new();
-                const uint invalidMv = 0x80008000;
+                Array2<Mv> bestSub8X8 = new();
+                const uint InvalidMv = 0x80008000;
                 // Initialize the 2nd element as even though it won't be used meaningfully
                 // if isCompound is false.
-                Unsafe.As<Mv, uint>(ref bestSub8x8[1]) = invalidMv;
-                for (idy = 0; idy < 2; idy += num4x4H)
+                Unsafe.As<Mv, uint>(ref bestSub8X8[1]) = InvalidMv;
+                for (idy = 0; idy < 2; idy += num4X4H)
                 {
-                    for (idx = 0; idx < 2; idx += num4x4W)
+                    for (idx = 0; idx < 2; idx += num4X4W)
                     {
                         int j = (idy * 2) + idx;
                         bMode = ReadInterMode(ref cm, ref xd, ref r, interModeCtx);
@@ -954,24 +954,24 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                         {
                             for (refr = 0; refr < 1 + isCompound; ++refr)
                             {
-                                AppendSub8x8ForIdx(ref cm, ref xd, mvRefSearch, bMode, j, refr, miRow, miCol,
-                                    ref bestSub8x8[refr]);
+                                AppendSub8X8ForIdx(ref cm, ref xd, mvRefSearch, bMode, j, refr, miRow, miCol,
+                                    ref bestSub8X8[refr]);
                             }
                         }
 
-                        if (!Assign(ref cm, ref xd, bMode, ref mi.Bmi[j].Mv, ref bestRefMvs, ref bestSub8x8,
+                        if (!Assign(ref cm, ref xd, bMode, ref mi.Bmi[j].Mv, ref bestRefMvs, ref bestSub8X8,
                                 isCompound, allowHp, ref r))
                         {
                             xd.Corrupted |= true;
                             break;
                         }
 
-                        if (num4x4H == 2)
+                        if (num4X4H == 2)
                         {
                             mi.Bmi[j + 2] = mi.Bmi[j];
                         }
 
-                        if (num4x4W == 2)
+                        if (num4X4W == 2)
                         {
                             mi.Bmi[j + 1] = mi.Bmi[j];
                         }
@@ -1084,7 +1084,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
             switch (bsize)
             {
-                case BlockSize.Block4x4:
+                case BlockSize.Block4X4:
                     for (int i = 0; i < 4; ++i)
                     {
                         mi.Value.Bmi[i].Mode =
@@ -1093,13 +1093,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
                     mi.Value.Mode = mi.Value.Bmi[3].Mode;
                     break;
-                case BlockSize.Block4x8:
+                case BlockSize.Block4X8:
                     mi.Value.Bmi[0].Mode = mi.Value.Bmi[2].Mode =
                         ReadIntraMode(ref r, GetYModeProbs(ref cm.Fc.Value, mi, aboveMi, leftMi, 0));
                     mi.Value.Bmi[1].Mode = mi.Value.Bmi[3].Mode = mi.Value.Mode =
                         ReadIntraMode(ref r, GetYModeProbs(ref cm.Fc.Value, mi, aboveMi, leftMi, 1));
                     break;
-                case BlockSize.Block8x4:
+                case BlockSize.Block8X4:
                     mi.Value.Bmi[0].Mode = mi.Value.Bmi[1].Mode =
                         ReadIntraMode(ref r, GetYModeProbs(ref cm.Fc.Value, mi, aboveMi, leftMi, 0));
                     mi.Value.Bmi[2].Mode = mi.Value.Bmi[3].Mode = mi.Value.Mode =

+ 3 - 3
src/Ryujinx.Graphics.Nvdec.Vp9/Decoder.cs

@@ -17,10 +17,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             return new Surface(width, height);
         }
 
-        private static ReadOnlySpan<byte> LiteralToFilter => new byte[]
-        {
+        private static ReadOnlySpan<byte> LiteralToFilter =>
+        [
             Constants.EightTapSmooth, Constants.EightTap, Constants.EightTapSharp, Constants.Bilinear
-        };
+        ];
 
         public unsafe bool Decode(
             ref Vp9PictureInfo pictureInfo,

+ 11 - 11
src/Ryujinx.Graphics.Nvdec.Vp9/Detokenize.cs

@@ -17,10 +17,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
         private static int GetCoefContext(ReadOnlySpan<short> neighbors, ReadOnlySpan<byte> tokenCache, int c)
         {
-            const int maxNeighbors = 2;
+            const int MaxNeighbors = 2;
 
-            return (1 + tokenCache[neighbors[(maxNeighbors * c) + 0]] +
-                    tokenCache[neighbors[(maxNeighbors * c) + 1]]) >> 1;
+            return (1 + tokenCache[neighbors[(MaxNeighbors * c) + 0]] +
+                    tokenCache[neighbors[(MaxNeighbors * c) + 1]]) >> 1;
         }
 
         private static int DecodeCoefs(
@@ -42,7 +42,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             ref Array6<Array6<Array3<byte>>> coefProbs = ref fc.CoefProbs[(int)txSize][(int)type][refr];
             Span<byte> tokenCache = stackalloc byte[32 * 32];
             ReadOnlySpan<byte> bandTranslate = Luts.GetBandTranslate(txSize);
-            int dqShift = txSize == TxSize.Tx32x32 ? 1 : 0;
+            int dqShift = txSize == TxSize.Tx32X32 ? 1 : 0;
             int v;
             short dqv = dq[0];
             ReadOnlySpan<byte> cat6Prob = xd.Bd == 12
@@ -242,7 +242,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
             switch (txSize)
             {
-                case TxSize.Tx4x4:
+                case TxSize.Tx4X4:
                     ctx = a[0] != 0 ? 1 : 0;
                     ctx += l[0] != 0 ? 1 : 0;
                     eob = DecodeCoefs(
@@ -257,8 +257,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                         ref r);
                     a[0] = l[0] = (sbyte)(eob > 0 ? 1 : 0);
                     break;
-                case TxSize.Tx8x8:
-                    GetCtxShift(ref xd, ref ctxShiftA, ref ctxShiftL, x, y, 1 << (int)TxSize.Tx8x8);
+                case TxSize.Tx8X8:
+                    GetCtxShift(ref xd, ref ctxShiftA, ref ctxShiftL, x, y, 1 << (int)TxSize.Tx8X8);
                     ctx = MemoryMarshal.Cast<sbyte, ushort>(a)[0] != 0 ? 1 : 0;
                     ctx += MemoryMarshal.Cast<sbyte, ushort>(l)[0] != 0 ? 1 : 0;
                     eob = DecodeCoefs(
@@ -274,8 +274,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     MemoryMarshal.Cast<sbyte, ushort>(a)[0] = (ushort)((eob > 0 ? 0x0101 : 0) >> ctxShiftA);
                     MemoryMarshal.Cast<sbyte, ushort>(l)[0] = (ushort)((eob > 0 ? 0x0101 : 0) >> ctxShiftL);
                     break;
-                case TxSize.Tx16x16:
-                    GetCtxShift(ref xd, ref ctxShiftA, ref ctxShiftL, x, y, 1 << (int)TxSize.Tx16x16);
+                case TxSize.Tx16X16:
+                    GetCtxShift(ref xd, ref ctxShiftA, ref ctxShiftL, x, y, 1 << (int)TxSize.Tx16X16);
                     ctx = MemoryMarshal.Cast<sbyte, uint>(a)[0] != 0 ? 1 : 0;
                     ctx += MemoryMarshal.Cast<sbyte, uint>(l)[0] != 0 ? 1 : 0;
                     eob = DecodeCoefs(
@@ -291,8 +291,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     MemoryMarshal.Cast<sbyte, uint>(a)[0] = (uint)((eob > 0 ? 0x01010101 : 0) >> ctxShiftA);
                     MemoryMarshal.Cast<sbyte, uint>(l)[0] = (uint)((eob > 0 ? 0x01010101 : 0) >> ctxShiftL);
                     break;
-                case TxSize.Tx32x32:
-                    GetCtxShift(ref xd, ref ctxShiftA, ref ctxShiftL, x, y, 1 << (int)TxSize.Tx32x32);
+                case TxSize.Tx32X32:
+                    GetCtxShift(ref xd, ref ctxShiftA, ref ctxShiftL, x, y, 1 << (int)TxSize.Tx32X32);
                     // NOTE: Casting to ulong here is safe because the default memory
                     // alignment is at least 8 bytes and the Tx32x32 is aligned on 8 byte
                     // boundaries.

File diff suppressed because it is too large
+ 155 - 155
src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/IntraPred.cs


+ 30 - 30
src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/InvTxfm.cs

@@ -87,7 +87,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Iwht4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Iwht4X416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             /* 4-point reversible, orthonormal inverse Walsh-Hadamard in 3.5 adds,
                0.5 shifts per pixel. */
@@ -143,7 +143,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Iwht4x41Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Iwht4X41Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             long a1, e1;
             Span<int> tmp = stackalloc int[4];
@@ -233,7 +233,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct4X416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[4 * 4];
             Span<int> outptr = output;
@@ -265,7 +265,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void Idct4x41Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct4X41Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             long a1;
             int output = WrapLow(DctConstRoundShift((short)input[0] * CosPi1664));
@@ -419,7 +419,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct8x864Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct8X864Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[8 * 8];
             Span<int> outptr = output;
@@ -452,7 +452,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct8x812Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct8X812Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[8 * 8];
             Span<int> outptr = output;
@@ -487,7 +487,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void Idct8x81Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct8X81Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             long a1;
             int output = WrapLow(DctConstRoundShift((short)input[0] * CosPi1664));
@@ -843,7 +843,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct16x16256Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct16X16256Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
@@ -876,7 +876,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct16x1638Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct16X1638Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
@@ -912,7 +912,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct16x1610Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct16X1610Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
@@ -947,7 +947,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void Idct16x161Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct16X161Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             long a1;
             int output = WrapLow(DctConstRoundShift((short)input[0] * CosPi1664));
@@ -1336,7 +1336,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct32x321024Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct32X321024Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[32 * 32];
             Span<int> outptr = output;
@@ -1383,7 +1383,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct32x32135Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct32X32135Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[32 * 32];
             Span<int> outptr = output;
@@ -1419,7 +1419,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void Idct32x3234Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct32X3234Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             Span<int> output = stackalloc int[32 * 32];
             Span<int> outptr = output;
@@ -1454,7 +1454,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void Idct32x321Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
+        public static void Idct32X321Add(ReadOnlySpan<int> input, Span<byte> dest, int stride)
         {
             long a1;
             int output = WrapLow(DctConstRoundShift((short)input[0] * CosPi1664));
@@ -1474,7 +1474,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIwht4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIwht4X416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             /* 4-point reversible, orthonormal inverse Walsh-Hadamard in 3.5 adds,
                0.5 shifts per pixel. */
@@ -1530,7 +1530,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIwht4x41Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIwht4X41Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             long a1, e1;
             Span<int> tmp = stackalloc int[4];
@@ -1633,7 +1633,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct4X416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[4 * 4];
             Span<int> outptr = output;
@@ -1665,7 +1665,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void HighbdIdct4x41Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct4X41Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             long a1;
             int output = HighbdWrapLow(DctConstRoundShift(input[0] * (long)CosPi1664), bd);
@@ -1824,7 +1824,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct8x864Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct8X864Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[8 * 8];
             Span<int> outptr = output;
@@ -1857,7 +1857,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct8x812Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct8X812Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[8 * 8];
             Span<int> outptr = output;
@@ -1892,7 +1892,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void VpxHighbdidct8x81AddC(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void VpxHighbdidct8X81AddC(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             long a1;
             int output = HighbdWrapLow(DctConstRoundShift(input[0] * (long)CosPi1664), bd);
@@ -2261,7 +2261,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct16x16256Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct16X16256Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
@@ -2294,7 +2294,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct16x1638Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct16X1638Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
@@ -2331,7 +2331,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct16x1610Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct16X1610Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
@@ -2366,7 +2366,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void HighbdIdct16x161Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct16X161Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             long a1;
             int output = HighbdWrapLow(DctConstRoundShift(input[0] * (long)CosPi1664), bd);
@@ -2762,7 +2762,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct32x321024Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct32X321024Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[32 * 32];
             Span<int> outptr = output;
@@ -2809,7 +2809,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct32x32135Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct32X32135Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[32 * 32];
             Span<int> outptr = output;
@@ -2846,7 +2846,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         [SkipLocalsInit]
-        public static void HighbdIdct32x3234Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct32X3234Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             Span<int> output = stackalloc int[32 * 32];
             Span<int> outptr = output;
@@ -2881,7 +2881,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        public static void HighbdIdct32x321Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
+        public static void HighbdIdct32X321Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int bd)
         {
             int a1;
             int output = HighbdWrapLow(DctConstRoundShift(input[0] * (long)CosPi1664), bd);

+ 12 - 12
src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/LoopFilterSse2.cs

@@ -1553,7 +1553,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
         }
 
-        private static unsafe void Transpose8x16(
+        private static unsafe void Transpose8X16(
             ArrayPtr<byte> in0,
             ArrayPtr<byte> in1,
             int inP,
@@ -1633,15 +1633,15 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             int inP,
             ReadOnlySpan<ArrayPtr<byte>> dst,
             int outP,
-            int num8x8ToTranspose)
+            int num8X8ToTranspose)
         {
-            int idx8x8 = 0;
+            int idx8X8 = 0;
             Vector128<byte> x0, x1, x2, x3, x4, x5, x6, x7;
 
             do
             {
-                ArrayPtr<byte> input = src[idx8x8];
-                ArrayPtr<byte> output = dst[idx8x8];
+                ArrayPtr<byte> input = src[idx8X8];
+                ArrayPtr<byte> output = dst[idx8X8];
 
                 x0 = Sse2.LoadScalarVector128((long*)(input.ToPointer() + (0 * inP)))
                     .AsByte(); // 00 01 02 03 04 05 06 07
@@ -1697,7 +1697,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
 
                 Sse2.StoreScalar((long*)(output.ToPointer() + (6 * outP)), x7.AsInt64()); // 06 16 26 36 46 56 66 76
                 Sse2.StoreHigh((double*)(output.ToPointer() + (7 * outP)), x7.AsDouble()); // 07 17 27 37 47 57 67 77
-            } while (++idx8x8 < num8x8ToTranspose);
+            } while (++idx8X8 < num8X8ToTranspose);
         }
 
         public static unsafe void LpfVertical4Dual(
@@ -1716,7 +1716,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             Span<ArrayPtr<byte>> dst = stackalloc ArrayPtr<byte>[2];
 
             // Transpose 8x16
-            Transpose8x16(s.Slice(-4), s.Slice(-4 + (pitch * 8)), pitch, tDst, 16);
+            Transpose8X16(s.Slice(-4), s.Slice(-4 + (pitch * 8)), pitch, tDst, 16);
 
             // Loop filtering
             LpfHorizontal4Dual(tDst.Slice(4 * 16), 16, blimit0, limit0, thresh0, blimit1, limit1, thresh1);
@@ -1770,7 +1770,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             Span<ArrayPtr<byte>> dst = stackalloc ArrayPtr<byte>[2];
 
             // Transpose 8x16
-            Transpose8x16(s.Slice(-4), s.Slice(-4 + (pitch * 8)), pitch, tDst, 16);
+            Transpose8X16(s.Slice(-4), s.Slice(-4 + (pitch * 8)), pitch, tDst, 16);
 
             // Loop filtering
             LpfHorizontal8Dual(tDst.Slice(4 * 16), 16, blimit0, limit0, thresh0, blimit1, limit1, thresh1);
@@ -1823,15 +1823,15 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             ArrayPtr<byte> tDst = new((byte*)tDstStorage, 256);
 
             // Transpose 16x16
-            Transpose8x16(s.Slice(-8), s.Slice(-8 + (8 * pitch)), pitch, tDst, 16);
-            Transpose8x16(s, s.Slice(8 * pitch), pitch, tDst.Slice(8 * 16), 16);
+            Transpose8X16(s.Slice(-8), s.Slice(-8 + (8 * pitch)), pitch, tDst, 16);
+            Transpose8X16(s, s.Slice(8 * pitch), pitch, tDst.Slice(8 * 16), 16);
 
             // Loop filtering
             LpfHorizontal16Dual(tDst.Slice(8 * 16), 16, blimit, limit, thresh);
 
             // Transpose back
-            Transpose8x16(tDst, tDst.Slice(8 * 16), 16, s.Slice(-8), pitch);
-            Transpose8x16(tDst.Slice(8), tDst.Slice(8 + (8 * 16)), 16, s.Slice(-8 + (8 * pitch)), pitch);
+            Transpose8X16(tDst, tDst.Slice(8 * 16), 16, s.Slice(-8), pitch);
+            Transpose8X16(tDst.Slice(8), tDst.Slice(8 + (8 * 16)), 16, s.Slice(-8 + (8 * pitch)), pitch);
         }
     }
 }

+ 4 - 4
src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/Prob.cs

@@ -26,10 +26,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         }
 
         // MODE_MV_MAX_UPDATE_FACTOR (128) * count / MODE_MV_COUNT_SAT;
-        private static readonly uint[] CountToUpdateFactor =
-        {
+        private static readonly uint[] _countToUpdateFactor =
+        [
             0, 6, 12, 19, 25, 32, 38, 44, 51, 57, 64, 70, 76, 83, 89, 96, 102, 108, 115, 121, 128
-        };
+        ];
 
         private const int ModeMvCountSat = 20;
 
@@ -42,7 +42,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
 
             uint count = Math.Min(den, ModeMvCountSat);
-            uint factor = CountToUpdateFactor[(int)count];
+            uint factor = _countToUpdateFactor[(int)count];
             byte prob = GetProb(ct0, den);
             return WeightedProb(preProb, prob, (int)factor);
         }

+ 11 - 11
src/Ryujinx.Graphics.Nvdec.Vp9/Dsp/Reader.cs

@@ -7,8 +7,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
 {
     internal struct Reader
     {
-        private static readonly byte[] Norm =
-        {
+        private static readonly byte[] _norm =
+        [
             0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
             2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
             1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -17,7 +17,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-        };
+        ];
 
         private const int BdValueSize = sizeof(ulong) * 8;
 
@@ -144,7 +144,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
             }
 
             {
-                int shift = Norm[range];
+                int shift = _norm[range];
                 range <<= shift;
                 value <<= shift;
                 count -= shift;
@@ -203,7 +203,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
                 range = range - split;
                 value = value - bigsplit;
                 {
-                    int shift = Norm[range];
+                    int shift = _norm[range];
                     range <<= shift;
                     value <<= shift;
                     count -= shift;
@@ -213,7 +213,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
 
             range = split;
             {
-                int shift = Norm[range];
+                int shift = _norm[range];
                 range <<= shift;
                 value <<= shift;
                 count -= shift;
@@ -235,10 +235,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
 
         private int DecodeUniform()
         {
-            const int l = 8;
-            const int m = (1 << l) - 191;
-            int v = ReadLiteral(l - 1);
-            return v < m ? v : (v << 1) - m + ReadBit();
+            const int L = 8;
+            const int M = (1 << L) - 191;
+            int v = ReadLiteral(L - 1);
+            return v < M ? v : (v << 1) - M + ReadBit();
         }
 
         public int DecodeTermSubexp()
@@ -264,7 +264,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
         public TxMode ReadTxMode()
         {
             TxMode txMode = (TxMode)ReadLiteral(2);
-            if (txMode == TxMode.Allow32x32)
+            if (txMode == TxMode.Allow32X32)
             {
                 txMode += ReadBit();
             }

+ 272 - 272
src/Ryujinx.Graphics.Nvdec.Vp9/Entropy.cs

@@ -64,26 +64,26 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         public const int Cat5MinVal = 35;
         public const int Cat6MinVal = 67;
 
-        public static readonly byte[] Cat1Prob = { 159 };
-        public static readonly byte[] Cat2Prob = { 165, 145 };
-        public static readonly byte[] Cat3Prob = { 173, 148, 140 };
-        public static readonly byte[] Cat4Prob = { 176, 155, 140, 135 };
-        public static readonly byte[] Cat5Prob = { 180, 157, 141, 134, 130 };
+        public static readonly byte[] Cat1Prob = [159];
+        public static readonly byte[] Cat2Prob = [165, 145];
+        public static readonly byte[] Cat3Prob = [173, 148, 140];
+        public static readonly byte[] Cat4Prob = [176, 155, 140, 135];
+        public static readonly byte[] Cat5Prob = [180, 157, 141, 134, 130];
 
         public static readonly byte[] Cat6Prob =
-        {
+        [
             254, 254, 254, 252, 249, 243, 230, 196, 177, 153, 140, 133, 130, 129
-        };
+        ];
 
         public static readonly byte[] Cat6ProbHigh12 =
-        {
+        [
             255, 255, 255, 255, 254, 254, 54, 252, 249, 243, 230, 196, 177, 153, 140, 133, 130, 129
-        };
+        ];
 
         public const int EobModelToken = 3;
 
-        private static readonly byte[] CoefbandTrans8x8Plus =
-        {
+        private static readonly byte[] _coefbandTrans8X8Plus =
+        [
             0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
             // beyond MAXBAND_INDEX+1 all values are filled as 5
             5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
@@ -114,260 +114,260 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
             5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
             5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
-        };
+        ];
 
-        private static readonly byte[] CoefbandTrans4x4 = { 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5 };
+        private static readonly byte[] _coefbandTrans4X4 = [0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5];
 
         public static readonly byte[][] Pareto8Full =
-        {
-            new byte[] { 3, 86, 128, 6, 86, 23, 88, 29 }, new byte[] { 6, 86, 128, 11, 87, 42, 91, 52 },
-            new byte[] { 9, 86, 129, 17, 88, 61, 94, 76 }, new byte[] { 12, 86, 129, 22, 88, 77, 97, 93 },
-            new byte[] { 15, 87, 129, 28, 89, 93, 100, 110 }, new byte[] { 17, 87, 129, 33, 90, 105, 103, 123 },
-            new byte[] { 20, 88, 130, 38, 91, 118, 106, 136 }, new byte[] { 23, 88, 130, 43, 91, 128, 108, 146 },
-            new byte[] { 26, 89, 131, 48, 92, 139, 111, 156 }, new byte[] { 28, 89, 131, 53, 93, 147, 114, 163 },
-            new byte[] { 31, 90, 131, 58, 94, 156, 117, 171 }, new byte[] { 34, 90, 131, 62, 94, 163, 119, 177 },
-            new byte[] { 37, 90, 132, 66, 95, 171, 122, 184 }, new byte[] { 39, 90, 132, 70, 96, 177, 124, 189 },
-            new byte[] { 42, 91, 132, 75, 97, 183, 127, 194 }, new byte[] { 44, 91, 132, 79, 97, 188, 129, 198 },
-            new byte[] { 47, 92, 133, 83, 98, 193, 132, 202 }, new byte[] { 49, 92, 133, 86, 99, 197, 134, 205 },
-            new byte[] { 52, 93, 133, 90, 100, 201, 137, 208 }, new byte[] { 54, 93, 133, 94, 100, 204, 139, 211 },
-            new byte[] { 57, 94, 134, 98, 101, 208, 142, 214 }, new byte[] { 59, 94, 134, 101, 102, 211, 144, 216 },
-            new byte[] { 62, 94, 135, 105, 103, 214, 146, 218 },
-            new byte[] { 64, 94, 135, 108, 103, 216, 148, 220 },
-            new byte[] { 66, 95, 135, 111, 104, 219, 151, 222 },
-            new byte[] { 68, 95, 135, 114, 105, 221, 153, 223 },
-            new byte[] { 71, 96, 136, 117, 106, 224, 155, 225 },
-            new byte[] { 73, 96, 136, 120, 106, 225, 157, 226 },
-            new byte[] { 76, 97, 136, 123, 107, 227, 159, 228 },
-            new byte[] { 78, 97, 136, 126, 108, 229, 160, 229 },
-            new byte[] { 80, 98, 137, 129, 109, 231, 162, 231 },
-            new byte[] { 82, 98, 137, 131, 109, 232, 164, 232 },
-            new byte[] { 84, 98, 138, 134, 110, 234, 166, 233 },
-            new byte[] { 86, 98, 138, 137, 111, 235, 168, 234 },
-            new byte[] { 89, 99, 138, 140, 112, 236, 170, 235 },
-            new byte[] { 91, 99, 138, 142, 112, 237, 171, 235 },
-            new byte[] { 93, 100, 139, 145, 113, 238, 173, 236 },
-            new byte[] { 95, 100, 139, 147, 114, 239, 174, 237 },
-            new byte[] { 97, 101, 140, 149, 115, 240, 176, 238 },
-            new byte[] { 99, 101, 140, 151, 115, 241, 177, 238 },
-            new byte[] { 101, 102, 140, 154, 116, 242, 179, 239 },
-            new byte[] { 103, 102, 140, 156, 117, 242, 180, 239 },
-            new byte[] { 105, 103, 141, 158, 118, 243, 182, 240 },
-            new byte[] { 107, 103, 141, 160, 118, 243, 183, 240 },
-            new byte[] { 109, 104, 141, 162, 119, 244, 185, 241 },
-            new byte[] { 111, 104, 141, 164, 119, 244, 186, 241 },
-            new byte[] { 113, 104, 142, 166, 120, 245, 187, 242 },
-            new byte[] { 114, 104, 142, 168, 121, 245, 188, 242 },
-            new byte[] { 116, 105, 143, 170, 122, 246, 190, 243 },
-            new byte[] { 118, 105, 143, 171, 122, 246, 191, 243 },
-            new byte[] { 120, 106, 143, 173, 123, 247, 192, 244 },
-            new byte[] { 121, 106, 143, 175, 124, 247, 193, 244 },
-            new byte[] { 123, 107, 144, 177, 125, 248, 195, 244 },
-            new byte[] { 125, 107, 144, 178, 125, 248, 196, 244 },
-            new byte[] { 127, 108, 145, 180, 126, 249, 197, 245 },
-            new byte[] { 128, 108, 145, 181, 127, 249, 198, 245 },
-            new byte[] { 130, 109, 145, 183, 128, 249, 199, 245 },
-            new byte[] { 132, 109, 145, 184, 128, 249, 200, 245 },
-            new byte[] { 134, 110, 146, 186, 129, 250, 201, 246 },
-            new byte[] { 135, 110, 146, 187, 130, 250, 202, 246 },
-            new byte[] { 137, 111, 147, 189, 131, 251, 203, 246 },
-            new byte[] { 138, 111, 147, 190, 131, 251, 204, 246 },
-            new byte[] { 140, 112, 147, 192, 132, 251, 205, 247 },
-            new byte[] { 141, 112, 147, 193, 132, 251, 206, 247 },
-            new byte[] { 143, 113, 148, 194, 133, 251, 207, 247 },
-            new byte[] { 144, 113, 148, 195, 134, 251, 207, 247 },
-            new byte[] { 146, 114, 149, 197, 135, 252, 208, 248 },
-            new byte[] { 147, 114, 149, 198, 135, 252, 209, 248 },
-            new byte[] { 149, 115, 149, 199, 136, 252, 210, 248 },
-            new byte[] { 150, 115, 149, 200, 137, 252, 210, 248 },
-            new byte[] { 152, 115, 150, 201, 138, 252, 211, 248 },
-            new byte[] { 153, 115, 150, 202, 138, 252, 212, 248 },
-            new byte[] { 155, 116, 151, 204, 139, 253, 213, 249 },
-            new byte[] { 156, 116, 151, 205, 139, 253, 213, 249 },
-            new byte[] { 158, 117, 151, 206, 140, 253, 214, 249 },
-            new byte[] { 159, 117, 151, 207, 141, 253, 215, 249 },
-            new byte[] { 161, 118, 152, 208, 142, 253, 216, 249 },
-            new byte[] { 162, 118, 152, 209, 142, 253, 216, 249 },
-            new byte[] { 163, 119, 153, 210, 143, 253, 217, 249 },
-            new byte[] { 164, 119, 153, 211, 143, 253, 217, 249 },
-            new byte[] { 166, 120, 153, 212, 144, 254, 218, 250 },
-            new byte[] { 167, 120, 153, 212, 145, 254, 219, 250 },
-            new byte[] { 168, 121, 154, 213, 146, 254, 220, 250 },
-            new byte[] { 169, 121, 154, 214, 146, 254, 220, 250 },
-            new byte[] { 171, 122, 155, 215, 147, 254, 221, 250 },
-            new byte[] { 172, 122, 155, 216, 147, 254, 221, 250 },
-            new byte[] { 173, 123, 155, 217, 148, 254, 222, 250 },
-            new byte[] { 174, 123, 155, 217, 149, 254, 222, 250 },
-            new byte[] { 176, 124, 156, 218, 150, 254, 223, 250 },
-            new byte[] { 177, 124, 156, 219, 150, 254, 223, 250 },
-            new byte[] { 178, 125, 157, 220, 151, 254, 224, 251 },
-            new byte[] { 179, 125, 157, 220, 151, 254, 224, 251 },
-            new byte[] { 180, 126, 157, 221, 152, 254, 225, 251 },
-            new byte[] { 181, 126, 157, 221, 152, 254, 225, 251 },
-            new byte[] { 183, 127, 158, 222, 153, 254, 226, 251 },
-            new byte[] { 184, 127, 158, 223, 154, 254, 226, 251 },
-            new byte[] { 185, 128, 159, 224, 155, 255, 227, 251 },
-            new byte[] { 186, 128, 159, 224, 155, 255, 227, 251 },
-            new byte[] { 187, 129, 160, 225, 156, 255, 228, 251 },
-            new byte[] { 188, 130, 160, 225, 156, 255, 228, 251 },
-            new byte[] { 189, 131, 160, 226, 157, 255, 228, 251 },
-            new byte[] { 190, 131, 160, 226, 158, 255, 228, 251 },
-            new byte[] { 191, 132, 161, 227, 159, 255, 229, 251 },
-            new byte[] { 192, 132, 161, 227, 159, 255, 229, 251 },
-            new byte[] { 193, 133, 162, 228, 160, 255, 230, 252 },
-            new byte[] { 194, 133, 162, 229, 160, 255, 230, 252 },
-            new byte[] { 195, 134, 163, 230, 161, 255, 231, 252 },
-            new byte[] { 196, 134, 163, 230, 161, 255, 231, 252 },
-            new byte[] { 197, 135, 163, 231, 162, 255, 231, 252 },
-            new byte[] { 198, 135, 163, 231, 162, 255, 231, 252 },
-            new byte[] { 199, 136, 164, 232, 163, 255, 232, 252 },
-            new byte[] { 200, 136, 164, 232, 164, 255, 232, 252 },
-            new byte[] { 201, 137, 165, 233, 165, 255, 233, 252 },
-            new byte[] { 201, 137, 165, 233, 165, 255, 233, 252 },
-            new byte[] { 202, 138, 166, 233, 166, 255, 233, 252 },
-            new byte[] { 203, 138, 166, 233, 166, 255, 233, 252 },
-            new byte[] { 204, 139, 166, 234, 167, 255, 234, 252 },
-            new byte[] { 205, 139, 166, 234, 167, 255, 234, 252 },
-            new byte[] { 206, 140, 167, 235, 168, 255, 235, 252 },
-            new byte[] { 206, 140, 167, 235, 168, 255, 235, 252 },
-            new byte[] { 207, 141, 168, 236, 169, 255, 235, 252 },
-            new byte[] { 208, 141, 168, 236, 170, 255, 235, 252 },
-            new byte[] { 209, 142, 169, 237, 171, 255, 236, 252 },
-            new byte[] { 209, 143, 169, 237, 171, 255, 236, 252 },
-            new byte[] { 210, 144, 169, 237, 172, 255, 236, 252 },
-            new byte[] { 211, 144, 169, 237, 172, 255, 236, 252 },
-            new byte[] { 212, 145, 170, 238, 173, 255, 237, 252 },
-            new byte[] { 213, 145, 170, 238, 173, 255, 237, 252 },
-            new byte[] { 214, 146, 171, 239, 174, 255, 237, 253 },
-            new byte[] { 214, 146, 171, 239, 174, 255, 237, 253 },
-            new byte[] { 215, 147, 172, 240, 175, 255, 238, 253 },
-            new byte[] { 215, 147, 172, 240, 175, 255, 238, 253 },
-            new byte[] { 216, 148, 173, 240, 176, 255, 238, 253 },
-            new byte[] { 217, 148, 173, 240, 176, 255, 238, 253 },
-            new byte[] { 218, 149, 173, 241, 177, 255, 239, 253 },
-            new byte[] { 218, 149, 173, 241, 178, 255, 239, 253 },
-            new byte[] { 219, 150, 174, 241, 179, 255, 239, 253 },
-            new byte[] { 219, 151, 174, 241, 179, 255, 239, 253 },
-            new byte[] { 220, 152, 175, 242, 180, 255, 240, 253 },
-            new byte[] { 221, 152, 175, 242, 180, 255, 240, 253 },
-            new byte[] { 222, 153, 176, 242, 181, 255, 240, 253 },
-            new byte[] { 222, 153, 176, 242, 181, 255, 240, 253 },
-            new byte[] { 223, 154, 177, 243, 182, 255, 240, 253 },
-            new byte[] { 223, 154, 177, 243, 182, 255, 240, 253 },
-            new byte[] { 224, 155, 178, 244, 183, 255, 241, 253 },
-            new byte[] { 224, 155, 178, 244, 183, 255, 241, 253 },
-            new byte[] { 225, 156, 178, 244, 184, 255, 241, 253 },
-            new byte[] { 225, 157, 178, 244, 184, 255, 241, 253 },
-            new byte[] { 226, 158, 179, 244, 185, 255, 242, 253 },
-            new byte[] { 227, 158, 179, 244, 185, 255, 242, 253 },
-            new byte[] { 228, 159, 180, 245, 186, 255, 242, 253 },
-            new byte[] { 228, 159, 180, 245, 186, 255, 242, 253 },
-            new byte[] { 229, 160, 181, 245, 187, 255, 242, 253 },
-            new byte[] { 229, 160, 181, 245, 187, 255, 242, 253 },
-            new byte[] { 230, 161, 182, 246, 188, 255, 243, 253 },
-            new byte[] { 230, 162, 182, 246, 188, 255, 243, 253 },
-            new byte[] { 231, 163, 183, 246, 189, 255, 243, 253 },
-            new byte[] { 231, 163, 183, 246, 189, 255, 243, 253 },
-            new byte[] { 232, 164, 184, 247, 190, 255, 243, 253 },
-            new byte[] { 232, 164, 184, 247, 190, 255, 243, 253 },
-            new byte[] { 233, 165, 185, 247, 191, 255, 244, 253 },
-            new byte[] { 233, 165, 185, 247, 191, 255, 244, 253 },
-            new byte[] { 234, 166, 185, 247, 192, 255, 244, 253 },
-            new byte[] { 234, 167, 185, 247, 192, 255, 244, 253 },
-            new byte[] { 235, 168, 186, 248, 193, 255, 244, 253 },
-            new byte[] { 235, 168, 186, 248, 193, 255, 244, 253 },
-            new byte[] { 236, 169, 187, 248, 194, 255, 244, 253 },
-            new byte[] { 236, 169, 187, 248, 194, 255, 244, 253 },
-            new byte[] { 236, 170, 188, 248, 195, 255, 245, 253 },
-            new byte[] { 236, 170, 188, 248, 195, 255, 245, 253 },
-            new byte[] { 237, 171, 189, 249, 196, 255, 245, 254 },
-            new byte[] { 237, 172, 189, 249, 196, 255, 245, 254 },
-            new byte[] { 238, 173, 190, 249, 197, 255, 245, 254 },
-            new byte[] { 238, 173, 190, 249, 197, 255, 245, 254 },
-            new byte[] { 239, 174, 191, 249, 198, 255, 245, 254 },
-            new byte[] { 239, 174, 191, 249, 198, 255, 245, 254 },
-            new byte[] { 240, 175, 192, 249, 199, 255, 246, 254 },
-            new byte[] { 240, 176, 192, 249, 199, 255, 246, 254 },
-            new byte[] { 240, 177, 193, 250, 200, 255, 246, 254 },
-            new byte[] { 240, 177, 193, 250, 200, 255, 246, 254 },
-            new byte[] { 241, 178, 194, 250, 201, 255, 246, 254 },
-            new byte[] { 241, 178, 194, 250, 201, 255, 246, 254 },
-            new byte[] { 242, 179, 195, 250, 202, 255, 246, 254 },
-            new byte[] { 242, 180, 195, 250, 202, 255, 246, 254 },
-            new byte[] { 242, 181, 196, 250, 203, 255, 247, 254 },
-            new byte[] { 242, 181, 196, 250, 203, 255, 247, 254 },
-            new byte[] { 243, 182, 197, 251, 204, 255, 247, 254 },
-            new byte[] { 243, 183, 197, 251, 204, 255, 247, 254 },
-            new byte[] { 244, 184, 198, 251, 205, 255, 247, 254 },
-            new byte[] { 244, 184, 198, 251, 205, 255, 247, 254 },
-            new byte[] { 244, 185, 199, 251, 206, 255, 247, 254 },
-            new byte[] { 244, 185, 199, 251, 206, 255, 247, 254 },
-            new byte[] { 245, 186, 200, 251, 207, 255, 247, 254 },
-            new byte[] { 245, 187, 200, 251, 207, 255, 247, 254 },
-            new byte[] { 246, 188, 201, 252, 207, 255, 248, 254 },
-            new byte[] { 246, 188, 201, 252, 207, 255, 248, 254 },
-            new byte[] { 246, 189, 202, 252, 208, 255, 248, 254 },
-            new byte[] { 246, 190, 202, 252, 208, 255, 248, 254 },
-            new byte[] { 247, 191, 203, 252, 209, 255, 248, 254 },
-            new byte[] { 247, 191, 203, 252, 209, 255, 248, 254 },
-            new byte[] { 247, 192, 204, 252, 210, 255, 248, 254 },
-            new byte[] { 247, 193, 204, 252, 210, 255, 248, 254 },
-            new byte[] { 248, 194, 205, 252, 211, 255, 248, 254 },
-            new byte[] { 248, 194, 205, 252, 211, 255, 248, 254 },
-            new byte[] { 248, 195, 206, 252, 212, 255, 249, 254 },
-            new byte[] { 248, 196, 206, 252, 212, 255, 249, 254 },
-            new byte[] { 249, 197, 207, 253, 213, 255, 249, 254 },
-            new byte[] { 249, 197, 207, 253, 213, 255, 249, 254 },
-            new byte[] { 249, 198, 208, 253, 214, 255, 249, 254 },
-            new byte[] { 249, 199, 209, 253, 214, 255, 249, 254 },
-            new byte[] { 250, 200, 210, 253, 215, 255, 249, 254 },
-            new byte[] { 250, 200, 210, 253, 215, 255, 249, 254 },
-            new byte[] { 250, 201, 211, 253, 215, 255, 249, 254 },
-            new byte[] { 250, 202, 211, 253, 215, 255, 249, 254 },
-            new byte[] { 250, 203, 212, 253, 216, 255, 249, 254 },
-            new byte[] { 250, 203, 212, 253, 216, 255, 249, 254 },
-            new byte[] { 251, 204, 213, 253, 217, 255, 250, 254 },
-            new byte[] { 251, 205, 213, 253, 217, 255, 250, 254 },
-            new byte[] { 251, 206, 214, 254, 218, 255, 250, 254 },
-            new byte[] { 251, 206, 215, 254, 218, 255, 250, 254 },
-            new byte[] { 252, 207, 216, 254, 219, 255, 250, 254 },
-            new byte[] { 252, 208, 216, 254, 219, 255, 250, 254 },
-            new byte[] { 252, 209, 217, 254, 220, 255, 250, 254 },
-            new byte[] { 252, 210, 217, 254, 220, 255, 250, 254 },
-            new byte[] { 252, 211, 218, 254, 221, 255, 250, 254 },
-            new byte[] { 252, 212, 218, 254, 221, 255, 250, 254 },
-            new byte[] { 253, 213, 219, 254, 222, 255, 250, 254 },
-            new byte[] { 253, 213, 220, 254, 222, 255, 250, 254 },
-            new byte[] { 253, 214, 221, 254, 223, 255, 250, 254 },
-            new byte[] { 253, 215, 221, 254, 223, 255, 250, 254 },
-            new byte[] { 253, 216, 222, 254, 224, 255, 251, 254 },
-            new byte[] { 253, 217, 223, 254, 224, 255, 251, 254 },
-            new byte[] { 253, 218, 224, 254, 225, 255, 251, 254 },
-            new byte[] { 253, 219, 224, 254, 225, 255, 251, 254 },
-            new byte[] { 254, 220, 225, 254, 225, 255, 251, 254 },
-            new byte[] { 254, 221, 226, 254, 225, 255, 251, 254 },
-            new byte[] { 254, 222, 227, 255, 226, 255, 251, 254 },
-            new byte[] { 254, 223, 227, 255, 226, 255, 251, 254 },
-            new byte[] { 254, 224, 228, 255, 227, 255, 251, 254 },
-            new byte[] { 254, 225, 229, 255, 227, 255, 251, 254 },
-            new byte[] { 254, 226, 230, 255, 228, 255, 251, 254 },
-            new byte[] { 254, 227, 230, 255, 229, 255, 251, 254 },
-            new byte[] { 255, 228, 231, 255, 230, 255, 251, 254 },
-            new byte[] { 255, 229, 232, 255, 230, 255, 251, 254 },
-            new byte[] { 255, 230, 233, 255, 231, 255, 252, 254 },
-            new byte[] { 255, 231, 234, 255, 231, 255, 252, 254 },
-            new byte[] { 255, 232, 235, 255, 232, 255, 252, 254 },
-            new byte[] { 255, 233, 236, 255, 232, 255, 252, 254 },
-            new byte[] { 255, 235, 237, 255, 233, 255, 252, 254 },
-            new byte[] { 255, 236, 238, 255, 234, 255, 252, 254 },
-            new byte[] { 255, 238, 240, 255, 235, 255, 252, 255 },
-            new byte[] { 255, 239, 241, 255, 235, 255, 252, 254 },
-            new byte[] { 255, 241, 243, 255, 236, 255, 252, 254 },
-            new byte[] { 255, 243, 245, 255, 237, 255, 252, 254 },
-            new byte[] { 255, 246, 247, 255, 239, 255, 253, 255 }
-        };
+        [
+            [3, 86, 128, 6, 86, 23, 88, 29], [6, 86, 128, 11, 87, 42, 91, 52],
+            [9, 86, 129, 17, 88, 61, 94, 76], [12, 86, 129, 22, 88, 77, 97, 93],
+            [15, 87, 129, 28, 89, 93, 100, 110], [17, 87, 129, 33, 90, 105, 103, 123],
+            [20, 88, 130, 38, 91, 118, 106, 136], [23, 88, 130, 43, 91, 128, 108, 146],
+            [26, 89, 131, 48, 92, 139, 111, 156], [28, 89, 131, 53, 93, 147, 114, 163],
+            [31, 90, 131, 58, 94, 156, 117, 171], [34, 90, 131, 62, 94, 163, 119, 177],
+            [37, 90, 132, 66, 95, 171, 122, 184], [39, 90, 132, 70, 96, 177, 124, 189],
+            [42, 91, 132, 75, 97, 183, 127, 194], [44, 91, 132, 79, 97, 188, 129, 198],
+            [47, 92, 133, 83, 98, 193, 132, 202], [49, 92, 133, 86, 99, 197, 134, 205],
+            [52, 93, 133, 90, 100, 201, 137, 208], [54, 93, 133, 94, 100, 204, 139, 211],
+            [57, 94, 134, 98, 101, 208, 142, 214], [59, 94, 134, 101, 102, 211, 144, 216],
+            [62, 94, 135, 105, 103, 214, 146, 218],
+            [64, 94, 135, 108, 103, 216, 148, 220],
+            [66, 95, 135, 111, 104, 219, 151, 222],
+            [68, 95, 135, 114, 105, 221, 153, 223],
+            [71, 96, 136, 117, 106, 224, 155, 225],
+            [73, 96, 136, 120, 106, 225, 157, 226],
+            [76, 97, 136, 123, 107, 227, 159, 228],
+            [78, 97, 136, 126, 108, 229, 160, 229],
+            [80, 98, 137, 129, 109, 231, 162, 231],
+            [82, 98, 137, 131, 109, 232, 164, 232],
+            [84, 98, 138, 134, 110, 234, 166, 233],
+            [86, 98, 138, 137, 111, 235, 168, 234],
+            [89, 99, 138, 140, 112, 236, 170, 235],
+            [91, 99, 138, 142, 112, 237, 171, 235],
+            [93, 100, 139, 145, 113, 238, 173, 236],
+            [95, 100, 139, 147, 114, 239, 174, 237],
+            [97, 101, 140, 149, 115, 240, 176, 238],
+            [99, 101, 140, 151, 115, 241, 177, 238],
+            [101, 102, 140, 154, 116, 242, 179, 239],
+            [103, 102, 140, 156, 117, 242, 180, 239],
+            [105, 103, 141, 158, 118, 243, 182, 240],
+            [107, 103, 141, 160, 118, 243, 183, 240],
+            [109, 104, 141, 162, 119, 244, 185, 241],
+            [111, 104, 141, 164, 119, 244, 186, 241],
+            [113, 104, 142, 166, 120, 245, 187, 242],
+            [114, 104, 142, 168, 121, 245, 188, 242],
+            [116, 105, 143, 170, 122, 246, 190, 243],
+            [118, 105, 143, 171, 122, 246, 191, 243],
+            [120, 106, 143, 173, 123, 247, 192, 244],
+            [121, 106, 143, 175, 124, 247, 193, 244],
+            [123, 107, 144, 177, 125, 248, 195, 244],
+            [125, 107, 144, 178, 125, 248, 196, 244],
+            [127, 108, 145, 180, 126, 249, 197, 245],
+            [128, 108, 145, 181, 127, 249, 198, 245],
+            [130, 109, 145, 183, 128, 249, 199, 245],
+            [132, 109, 145, 184, 128, 249, 200, 245],
+            [134, 110, 146, 186, 129, 250, 201, 246],
+            [135, 110, 146, 187, 130, 250, 202, 246],
+            [137, 111, 147, 189, 131, 251, 203, 246],
+            [138, 111, 147, 190, 131, 251, 204, 246],
+            [140, 112, 147, 192, 132, 251, 205, 247],
+            [141, 112, 147, 193, 132, 251, 206, 247],
+            [143, 113, 148, 194, 133, 251, 207, 247],
+            [144, 113, 148, 195, 134, 251, 207, 247],
+            [146, 114, 149, 197, 135, 252, 208, 248],
+            [147, 114, 149, 198, 135, 252, 209, 248],
+            [149, 115, 149, 199, 136, 252, 210, 248],
+            [150, 115, 149, 200, 137, 252, 210, 248],
+            [152, 115, 150, 201, 138, 252, 211, 248],
+            [153, 115, 150, 202, 138, 252, 212, 248],
+            [155, 116, 151, 204, 139, 253, 213, 249],
+            [156, 116, 151, 205, 139, 253, 213, 249],
+            [158, 117, 151, 206, 140, 253, 214, 249],
+            [159, 117, 151, 207, 141, 253, 215, 249],
+            [161, 118, 152, 208, 142, 253, 216, 249],
+            [162, 118, 152, 209, 142, 253, 216, 249],
+            [163, 119, 153, 210, 143, 253, 217, 249],
+            [164, 119, 153, 211, 143, 253, 217, 249],
+            [166, 120, 153, 212, 144, 254, 218, 250],
+            [167, 120, 153, 212, 145, 254, 219, 250],
+            [168, 121, 154, 213, 146, 254, 220, 250],
+            [169, 121, 154, 214, 146, 254, 220, 250],
+            [171, 122, 155, 215, 147, 254, 221, 250],
+            [172, 122, 155, 216, 147, 254, 221, 250],
+            [173, 123, 155, 217, 148, 254, 222, 250],
+            [174, 123, 155, 217, 149, 254, 222, 250],
+            [176, 124, 156, 218, 150, 254, 223, 250],
+            [177, 124, 156, 219, 150, 254, 223, 250],
+            [178, 125, 157, 220, 151, 254, 224, 251],
+            [179, 125, 157, 220, 151, 254, 224, 251],
+            [180, 126, 157, 221, 152, 254, 225, 251],
+            [181, 126, 157, 221, 152, 254, 225, 251],
+            [183, 127, 158, 222, 153, 254, 226, 251],
+            [184, 127, 158, 223, 154, 254, 226, 251],
+            [185, 128, 159, 224, 155, 255, 227, 251],
+            [186, 128, 159, 224, 155, 255, 227, 251],
+            [187, 129, 160, 225, 156, 255, 228, 251],
+            [188, 130, 160, 225, 156, 255, 228, 251],
+            [189, 131, 160, 226, 157, 255, 228, 251],
+            [190, 131, 160, 226, 158, 255, 228, 251],
+            [191, 132, 161, 227, 159, 255, 229, 251],
+            [192, 132, 161, 227, 159, 255, 229, 251],
+            [193, 133, 162, 228, 160, 255, 230, 252],
+            [194, 133, 162, 229, 160, 255, 230, 252],
+            [195, 134, 163, 230, 161, 255, 231, 252],
+            [196, 134, 163, 230, 161, 255, 231, 252],
+            [197, 135, 163, 231, 162, 255, 231, 252],
+            [198, 135, 163, 231, 162, 255, 231, 252],
+            [199, 136, 164, 232, 163, 255, 232, 252],
+            [200, 136, 164, 232, 164, 255, 232, 252],
+            [201, 137, 165, 233, 165, 255, 233, 252],
+            [201, 137, 165, 233, 165, 255, 233, 252],
+            [202, 138, 166, 233, 166, 255, 233, 252],
+            [203, 138, 166, 233, 166, 255, 233, 252],
+            [204, 139, 166, 234, 167, 255, 234, 252],
+            [205, 139, 166, 234, 167, 255, 234, 252],
+            [206, 140, 167, 235, 168, 255, 235, 252],
+            [206, 140, 167, 235, 168, 255, 235, 252],
+            [207, 141, 168, 236, 169, 255, 235, 252],
+            [208, 141, 168, 236, 170, 255, 235, 252],
+            [209, 142, 169, 237, 171, 255, 236, 252],
+            [209, 143, 169, 237, 171, 255, 236, 252],
+            [210, 144, 169, 237, 172, 255, 236, 252],
+            [211, 144, 169, 237, 172, 255, 236, 252],
+            [212, 145, 170, 238, 173, 255, 237, 252],
+            [213, 145, 170, 238, 173, 255, 237, 252],
+            [214, 146, 171, 239, 174, 255, 237, 253],
+            [214, 146, 171, 239, 174, 255, 237, 253],
+            [215, 147, 172, 240, 175, 255, 238, 253],
+            [215, 147, 172, 240, 175, 255, 238, 253],
+            [216, 148, 173, 240, 176, 255, 238, 253],
+            [217, 148, 173, 240, 176, 255, 238, 253],
+            [218, 149, 173, 241, 177, 255, 239, 253],
+            [218, 149, 173, 241, 178, 255, 239, 253],
+            [219, 150, 174, 241, 179, 255, 239, 253],
+            [219, 151, 174, 241, 179, 255, 239, 253],
+            [220, 152, 175, 242, 180, 255, 240, 253],
+            [221, 152, 175, 242, 180, 255, 240, 253],
+            [222, 153, 176, 242, 181, 255, 240, 253],
+            [222, 153, 176, 242, 181, 255, 240, 253],
+            [223, 154, 177, 243, 182, 255, 240, 253],
+            [223, 154, 177, 243, 182, 255, 240, 253],
+            [224, 155, 178, 244, 183, 255, 241, 253],
+            [224, 155, 178, 244, 183, 255, 241, 253],
+            [225, 156, 178, 244, 184, 255, 241, 253],
+            [225, 157, 178, 244, 184, 255, 241, 253],
+            [226, 158, 179, 244, 185, 255, 242, 253],
+            [227, 158, 179, 244, 185, 255, 242, 253],
+            [228, 159, 180, 245, 186, 255, 242, 253],
+            [228, 159, 180, 245, 186, 255, 242, 253],
+            [229, 160, 181, 245, 187, 255, 242, 253],
+            [229, 160, 181, 245, 187, 255, 242, 253],
+            [230, 161, 182, 246, 188, 255, 243, 253],
+            [230, 162, 182, 246, 188, 255, 243, 253],
+            [231, 163, 183, 246, 189, 255, 243, 253],
+            [231, 163, 183, 246, 189, 255, 243, 253],
+            [232, 164, 184, 247, 190, 255, 243, 253],
+            [232, 164, 184, 247, 190, 255, 243, 253],
+            [233, 165, 185, 247, 191, 255, 244, 253],
+            [233, 165, 185, 247, 191, 255, 244, 253],
+            [234, 166, 185, 247, 192, 255, 244, 253],
+            [234, 167, 185, 247, 192, 255, 244, 253],
+            [235, 168, 186, 248, 193, 255, 244, 253],
+            [235, 168, 186, 248, 193, 255, 244, 253],
+            [236, 169, 187, 248, 194, 255, 244, 253],
+            [236, 169, 187, 248, 194, 255, 244, 253],
+            [236, 170, 188, 248, 195, 255, 245, 253],
+            [236, 170, 188, 248, 195, 255, 245, 253],
+            [237, 171, 189, 249, 196, 255, 245, 254],
+            [237, 172, 189, 249, 196, 255, 245, 254],
+            [238, 173, 190, 249, 197, 255, 245, 254],
+            [238, 173, 190, 249, 197, 255, 245, 254],
+            [239, 174, 191, 249, 198, 255, 245, 254],
+            [239, 174, 191, 249, 198, 255, 245, 254],
+            [240, 175, 192, 249, 199, 255, 246, 254],
+            [240, 176, 192, 249, 199, 255, 246, 254],
+            [240, 177, 193, 250, 200, 255, 246, 254],
+            [240, 177, 193, 250, 200, 255, 246, 254],
+            [241, 178, 194, 250, 201, 255, 246, 254],
+            [241, 178, 194, 250, 201, 255, 246, 254],
+            [242, 179, 195, 250, 202, 255, 246, 254],
+            [242, 180, 195, 250, 202, 255, 246, 254],
+            [242, 181, 196, 250, 203, 255, 247, 254],
+            [242, 181, 196, 250, 203, 255, 247, 254],
+            [243, 182, 197, 251, 204, 255, 247, 254],
+            [243, 183, 197, 251, 204, 255, 247, 254],
+            [244, 184, 198, 251, 205, 255, 247, 254],
+            [244, 184, 198, 251, 205, 255, 247, 254],
+            [244, 185, 199, 251, 206, 255, 247, 254],
+            [244, 185, 199, 251, 206, 255, 247, 254],
+            [245, 186, 200, 251, 207, 255, 247, 254],
+            [245, 187, 200, 251, 207, 255, 247, 254],
+            [246, 188, 201, 252, 207, 255, 248, 254],
+            [246, 188, 201, 252, 207, 255, 248, 254],
+            [246, 189, 202, 252, 208, 255, 248, 254],
+            [246, 190, 202, 252, 208, 255, 248, 254],
+            [247, 191, 203, 252, 209, 255, 248, 254],
+            [247, 191, 203, 252, 209, 255, 248, 254],
+            [247, 192, 204, 252, 210, 255, 248, 254],
+            [247, 193, 204, 252, 210, 255, 248, 254],
+            [248, 194, 205, 252, 211, 255, 248, 254],
+            [248, 194, 205, 252, 211, 255, 248, 254],
+            [248, 195, 206, 252, 212, 255, 249, 254],
+            [248, 196, 206, 252, 212, 255, 249, 254],
+            [249, 197, 207, 253, 213, 255, 249, 254],
+            [249, 197, 207, 253, 213, 255, 249, 254],
+            [249, 198, 208, 253, 214, 255, 249, 254],
+            [249, 199, 209, 253, 214, 255, 249, 254],
+            [250, 200, 210, 253, 215, 255, 249, 254],
+            [250, 200, 210, 253, 215, 255, 249, 254],
+            [250, 201, 211, 253, 215, 255, 249, 254],
+            [250, 202, 211, 253, 215, 255, 249, 254],
+            [250, 203, 212, 253, 216, 255, 249, 254],
+            [250, 203, 212, 253, 216, 255, 249, 254],
+            [251, 204, 213, 253, 217, 255, 250, 254],
+            [251, 205, 213, 253, 217, 255, 250, 254],
+            [251, 206, 214, 254, 218, 255, 250, 254],
+            [251, 206, 215, 254, 218, 255, 250, 254],
+            [252, 207, 216, 254, 219, 255, 250, 254],
+            [252, 208, 216, 254, 219, 255, 250, 254],
+            [252, 209, 217, 254, 220, 255, 250, 254],
+            [252, 210, 217, 254, 220, 255, 250, 254],
+            [252, 211, 218, 254, 221, 255, 250, 254],
+            [252, 212, 218, 254, 221, 255, 250, 254],
+            [253, 213, 219, 254, 222, 255, 250, 254],
+            [253, 213, 220, 254, 222, 255, 250, 254],
+            [253, 214, 221, 254, 223, 255, 250, 254],
+            [253, 215, 221, 254, 223, 255, 250, 254],
+            [253, 216, 222, 254, 224, 255, 251, 254],
+            [253, 217, 223, 254, 224, 255, 251, 254],
+            [253, 218, 224, 254, 225, 255, 251, 254],
+            [253, 219, 224, 254, 225, 255, 251, 254],
+            [254, 220, 225, 254, 225, 255, 251, 254],
+            [254, 221, 226, 254, 225, 255, 251, 254],
+            [254, 222, 227, 255, 226, 255, 251, 254],
+            [254, 223, 227, 255, 226, 255, 251, 254],
+            [254, 224, 228, 255, 227, 255, 251, 254],
+            [254, 225, 229, 255, 227, 255, 251, 254],
+            [254, 226, 230, 255, 228, 255, 251, 254],
+            [254, 227, 230, 255, 229, 255, 251, 254],
+            [255, 228, 231, 255, 230, 255, 251, 254],
+            [255, 229, 232, 255, 230, 255, 251, 254],
+            [255, 230, 233, 255, 231, 255, 252, 254],
+            [255, 231, 234, 255, 231, 255, 252, 254],
+            [255, 232, 235, 255, 232, 255, 252, 254],
+            [255, 233, 236, 255, 232, 255, 252, 254],
+            [255, 235, 237, 255, 233, 255, 252, 254],
+            [255, 236, 238, 255, 234, 255, 252, 254],
+            [255, 238, 240, 255, 235, 255, 252, 255],
+            [255, 239, 241, 255, 235, 255, 252, 254],
+            [255, 241, 243, 255, 236, 255, 252, 254],
+            [255, 243, 245, 255, 237, 255, 252, 254],
+            [255, 246, 247, 255, 239, 255, 253, 255]
+        ];
 
-        internal static readonly byte[] DefaultCoefProbs4x4 =
-        {
+        internal static readonly byte[] DefaultCoefProbs4X4 =
+        [
             // Y plane
             // Intra
             // Band 0
@@ -422,10 +422,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             127, 145, 243, 71, 129, 228, 17, 93, 177, 3, 61, 124, 1, 41, 84, 1, 21, 52,
             // Band 5
             157, 78, 244, 140, 72, 231, 69, 58, 184, 31, 44, 137, 14, 38, 105, 8, 23, 61
-        };
+        ];
 
-        internal static readonly byte[] DefaultCoefProbs8x8 =
-        {
+        internal static readonly byte[] DefaultCoefProbs8X8 =
+        [
             // Y plane
             // Intra
             // Band 0
@@ -480,10 +480,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             62, 190, 238, 21, 159, 222, 2, 107, 172, 1, 72, 122, 1, 40, 71, 1, 18, 32,
             // Band 5
             61, 199, 240, 27, 161, 226, 4, 113, 180, 1, 76, 129, 1, 46, 80, 1, 23, 41
-        };
+        ];
 
-        internal static readonly byte[] DefaultCoefProbs16x16 =
-        {
+        internal static readonly byte[] DefaultCoefProbs16X16 =
+        [
             // Y plane
             // Intra
             // Band 0
@@ -538,10 +538,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             40, 194, 227, 8, 147, 204, 1, 94, 155, 1, 65, 112, 1, 39, 66, 1, 14, 26,
             // Band 5
             16, 208, 228, 3, 151, 207, 1, 98, 160, 1, 67, 117, 1, 41, 74, 1, 17, 31
-        };
+        ];
 
-        internal static readonly byte[] DefaultCoefProbs32x32 =
-        {
+        internal static readonly byte[] DefaultCoefProbs32X32 =
+        [
             // Y plane
             // Intra
             // Band 0
@@ -596,11 +596,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             84, 220, 246, 31, 177, 231, 2, 115, 180, 1, 79, 134, 1, 55, 77, 1, 60, 79,
             // Band 5
             43, 243, 240, 8, 180, 217, 1, 115, 166, 1, 84, 121, 1, 51, 67, 1, 16, 6
-        };
+        ];
 
         public static byte[] GetBandTranslate(int txSize)
         {
-            return txSize == (int)TxSize.Tx4x4 ? CoefbandTrans4x4 : CoefbandTrans8x8Plus;
+            return txSize == (int)TxSize.Tx4X4 ? _coefbandTrans4X4 : _coefbandTrans8X8Plus;
         }
 
         public static void CopyProbs<T>(ref T dest, ReadOnlySpan<byte> probs) where T : unmanaged

+ 213 - 223
src/Ryujinx.Graphics.Nvdec.Vp9/EntropyMode.cs

@@ -13,173 +13,163 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         public const int TxSizeContexts = 2;
 
         public static readonly byte[][][] KfYModeProb =
-        {
-            new[]
-            {
+        [
+            [
                 // above = dc
-                new byte[] { 137, 30, 42, 148, 151, 207, 70, 52, 91 }, // left = dc
-                new byte[] { 92, 45, 102, 136, 116, 180, 74, 90, 100 }, // left = v
-                new byte[] { 73, 32, 19, 187, 222, 215, 46, 34, 100 }, // left = h
-                new byte[] { 91, 30, 32, 116, 121, 186, 93, 86, 94 }, // left = d45
-                new byte[] { 72, 35, 36, 149, 68, 206, 68, 63, 105 }, // left = d135
-                new byte[] { 73, 31, 28, 138, 57, 124, 55, 122, 151 }, // left = d117
-                new byte[] { 67, 23, 21, 140, 126, 197, 40, 37, 171 }, // left = d153
-                new byte[] { 86, 27, 28, 128, 154, 212, 45, 43, 53 }, // left = d207
-                new byte[] { 74, 32, 27, 107, 86, 160, 63, 134, 102 }, // left = d63
-                new byte[] { 59, 67, 44, 140, 161, 202, 78, 67, 119 } // left = tm
-            },
-            new[]
-            {
+                [137, 30, 42, 148, 151, 207, 70, 52, 91], // left = dc
+                [92, 45, 102, 136, 116, 180, 74, 90, 100], // left = v
+                [73, 32, 19, 187, 222, 215, 46, 34, 100], // left = h
+                [91, 30, 32, 116, 121, 186, 93, 86, 94], // left = d45
+                [72, 35, 36, 149, 68, 206, 68, 63, 105], // left = d135
+                [73, 31, 28, 138, 57, 124, 55, 122, 151], // left = d117
+                [67, 23, 21, 140, 126, 197, 40, 37, 171], // left = d153
+                [86, 27, 28, 128, 154, 212, 45, 43, 53], // left = d207
+                [74, 32, 27, 107, 86, 160, 63, 134, 102], // left = d63
+                [59, 67, 44, 140, 161, 202, 78, 67, 119] // left = tm
+            ],
+            [
                 // above = v
-                new byte[] { 63, 36, 126, 146, 123, 158, 60, 90, 96 }, // left = dc
-                new byte[] { 43, 46, 168, 134, 107, 128, 69, 142, 92 }, // left = v
-                new byte[] { 44, 29, 68, 159, 201, 177, 50, 57, 77 }, // left = h
-                new byte[] { 58, 38, 76, 114, 97, 172, 78, 133, 92 }, // left = d45
-                new byte[] { 46, 41, 76, 140, 63, 184, 69, 112, 57 }, // left = d135
-                new byte[] { 38, 32, 85, 140, 46, 112, 54, 151, 133 }, // left = d117
-                new byte[] { 39, 27, 61, 131, 110, 175, 44, 75, 136 }, // left = d153
-                new byte[] { 52, 30, 74, 113, 130, 175, 51, 64, 58 }, // left = d207
-                new byte[] { 47, 35, 80, 100, 74, 143, 64, 163, 74 }, // left = d63
-                new byte[] { 36, 61, 116, 114, 128, 162, 80, 125, 82 } // left = tm
-            },
-            new[]
-            {
+                [63, 36, 126, 146, 123, 158, 60, 90, 96], // left = dc
+                [43, 46, 168, 134, 107, 128, 69, 142, 92], // left = v
+                [44, 29, 68, 159, 201, 177, 50, 57, 77], // left = h
+                [58, 38, 76, 114, 97, 172, 78, 133, 92], // left = d45
+                [46, 41, 76, 140, 63, 184, 69, 112, 57], // left = d135
+                [38, 32, 85, 140, 46, 112, 54, 151, 133], // left = d117
+                [39, 27, 61, 131, 110, 175, 44, 75, 136], // left = d153
+                [52, 30, 74, 113, 130, 175, 51, 64, 58], // left = d207
+                [47, 35, 80, 100, 74, 143, 64, 163, 74], // left = d63
+                [36, 61, 116, 114, 128, 162, 80, 125, 82] // left = tm
+            ],
+            [
                 // above = h
-                new byte[] { 82, 26, 26, 171, 208, 204, 44, 32, 105 }, // left = dc
-                new byte[] { 55, 44, 68, 166, 179, 192, 57, 57, 108 }, // left = v
-                new byte[] { 42, 26, 11, 199, 241, 228, 23, 15, 85 }, // left = h
-                new byte[] { 68, 42, 19, 131, 160, 199, 55, 52, 83 }, // left = d45
-                new byte[] { 58, 50, 25, 139, 115, 232, 39, 52, 118 }, // left = d135
-                new byte[] { 50, 35, 33, 153, 104, 162, 64, 59, 131 }, // left = d117
-                new byte[] { 44, 24, 16, 150, 177, 202, 33, 19, 156 }, // left = d153
-                new byte[] { 55, 27, 12, 153, 203, 218, 26, 27, 49 }, // left = d207
-                new byte[] { 53, 49, 21, 110, 116, 168, 59, 80, 76 }, // left = d63
-                new byte[] { 38, 72, 19, 168, 203, 212, 50, 50, 107 } // left = tm
-            },
-            new[]
-            {
+                [82, 26, 26, 171, 208, 204, 44, 32, 105], // left = dc
+                [55, 44, 68, 166, 179, 192, 57, 57, 108], // left = v
+                [42, 26, 11, 199, 241, 228, 23, 15, 85], // left = h
+                [68, 42, 19, 131, 160, 199, 55, 52, 83], // left = d45
+                [58, 50, 25, 139, 115, 232, 39, 52, 118], // left = d135
+                [50, 35, 33, 153, 104, 162, 64, 59, 131], // left = d117
+                [44, 24, 16, 150, 177, 202, 33, 19, 156], // left = d153
+                [55, 27, 12, 153, 203, 218, 26, 27, 49], // left = d207
+                [53, 49, 21, 110, 116, 168, 59, 80, 76], // left = d63
+                [38, 72, 19, 168, 203, 212, 50, 50, 107] // left = tm
+            ],
+            [
                 // above = d45
-                new byte[] { 103, 26, 36, 129, 132, 201, 83, 80, 93 }, // left = dc
-                new byte[] { 59, 38, 83, 112, 103, 162, 98, 136, 90 }, // left = v
-                new byte[] { 62, 30, 23, 158, 200, 207, 59, 57, 50 }, // left = h
-                new byte[] { 67, 30, 29, 84, 86, 191, 102, 91, 59 }, // left = d45
-                new byte[] { 60, 32, 33, 112, 71, 220, 64, 89, 104 }, // left = d135
-                new byte[] { 53, 26, 34, 130, 56, 149, 84, 120, 103 }, // left = d117
-                new byte[] { 53, 21, 23, 133, 109, 210, 56, 77, 172 }, // left = d153
-                new byte[] { 77, 19, 29, 112, 142, 228, 55, 66, 36 }, // left = d207
-                new byte[] { 61, 29, 29, 93, 97, 165, 83, 175, 162 }, // left = d63
-                new byte[] { 47, 47, 43, 114, 137, 181, 100, 99, 95 } // left = tm
-            },
-            new[]
-            {
+                [103, 26, 36, 129, 132, 201, 83, 80, 93], // left = dc
+                [59, 38, 83, 112, 103, 162, 98, 136, 90], // left = v
+                [62, 30, 23, 158, 200, 207, 59, 57, 50], // left = h
+                [67, 30, 29, 84, 86, 191, 102, 91, 59], // left = d45
+                [60, 32, 33, 112, 71, 220, 64, 89, 104], // left = d135
+                [53, 26, 34, 130, 56, 149, 84, 120, 103], // left = d117
+                [53, 21, 23, 133, 109, 210, 56, 77, 172], // left = d153
+                [77, 19, 29, 112, 142, 228, 55, 66, 36], // left = d207
+                [61, 29, 29, 93, 97, 165, 83, 175, 162], // left = d63
+                [47, 47, 43, 114, 137, 181, 100, 99, 95] // left = tm
+            ],
+            [
                 // above = d135
-                new byte[] { 69, 23, 29, 128, 83, 199, 46, 44, 101 }, // left = dc
-                new byte[] { 53, 40, 55, 139, 69, 183, 61, 80, 110 }, // left = v
-                new byte[] { 40, 29, 19, 161, 180, 207, 43, 24, 91 }, // left = h
-                new byte[] { 60, 34, 19, 105, 61, 198, 53, 64, 89 }, // left = d45
-                new byte[] { 52, 31, 22, 158, 40, 209, 58, 62, 89 }, // left = d135
-                new byte[] { 44, 31, 29, 147, 46, 158, 56, 102, 198 }, // left = d117
-                new byte[] { 35, 19, 12, 135, 87, 209, 41, 45, 167 }, // left = d153
-                new byte[] { 55, 25, 21, 118, 95, 215, 38, 39, 66 }, // left = d207
-                new byte[] { 51, 38, 25, 113, 58, 164, 70, 93, 97 }, // left = d63
-                new byte[] { 47, 54, 34, 146, 108, 203, 72, 103, 151 } // left = tm
-            },
-            new[]
-            {
+                [69, 23, 29, 128, 83, 199, 46, 44, 101], // left = dc
+                [53, 40, 55, 139, 69, 183, 61, 80, 110], // left = v
+                [40, 29, 19, 161, 180, 207, 43, 24, 91], // left = h
+                [60, 34, 19, 105, 61, 198, 53, 64, 89], // left = d45
+                [52, 31, 22, 158, 40, 209, 58, 62, 89], // left = d135
+                [44, 31, 29, 147, 46, 158, 56, 102, 198], // left = d117
+                [35, 19, 12, 135, 87, 209, 41, 45, 167], // left = d153
+                [55, 25, 21, 118, 95, 215, 38, 39, 66], // left = d207
+                [51, 38, 25, 113, 58, 164, 70, 93, 97], // left = d63
+                [47, 54, 34, 146, 108, 203, 72, 103, 151] // left = tm
+            ],
+            [
                 // above = d117
-                new byte[] { 64, 19, 37, 156, 66, 138, 49, 95, 133 }, // left = dc
-                new byte[] { 46, 27, 80, 150, 55, 124, 55, 121, 135 }, // left = v
-                new byte[] { 36, 23, 27, 165, 149, 166, 54, 64, 118 }, // left = h
-                new byte[] { 53, 21, 36, 131, 63, 163, 60, 109, 81 }, // left = d45
-                new byte[] { 40, 26, 35, 154, 40, 185, 51, 97, 123 }, // left = d135
-                new byte[] { 35, 19, 34, 179, 19, 97, 48, 129, 124 }, // left = d117
-                new byte[] { 36, 20, 26, 136, 62, 164, 33, 77, 154 }, // left = d153
-                new byte[] { 45, 18, 32, 130, 90, 157, 40, 79, 91 }, // left = d207
-                new byte[] { 45, 26, 28, 129, 45, 129, 49, 147, 123 }, // left = d63
-                new byte[] { 38, 44, 51, 136, 74, 162, 57, 97, 121 } // left = tm
-            },
-            new[]
-            {
+                [64, 19, 37, 156, 66, 138, 49, 95, 133], // left = dc
+                [46, 27, 80, 150, 55, 124, 55, 121, 135], // left = v
+                [36, 23, 27, 165, 149, 166, 54, 64, 118], // left = h
+                [53, 21, 36, 131, 63, 163, 60, 109, 81], // left = d45
+                [40, 26, 35, 154, 40, 185, 51, 97, 123], // left = d135
+                [35, 19, 34, 179, 19, 97, 48, 129, 124], // left = d117
+                [36, 20, 26, 136, 62, 164, 33, 77, 154], // left = d153
+                [45, 18, 32, 130, 90, 157, 40, 79, 91], // left = d207
+                [45, 26, 28, 129, 45, 129, 49, 147, 123], // left = d63
+                [38, 44, 51, 136, 74, 162, 57, 97, 121] // left = tm
+            ],
+            [
                 // above = d153
-                new byte[] { 75, 17, 22, 136, 138, 185, 32, 34, 166 }, // left = dc
-                new byte[] { 56, 39, 58, 133, 117, 173, 48, 53, 187 }, // left = v
-                new byte[] { 35, 21, 12, 161, 212, 207, 20, 23, 145 }, // left = h
-                new byte[] { 56, 29, 19, 117, 109, 181, 55, 68, 112 }, // left = d45
-                new byte[] { 47, 29, 17, 153, 64, 220, 59, 51, 114 }, // left = d135
-                new byte[] { 46, 16, 24, 136, 76, 147, 41, 64, 172 }, // left = d117
-                new byte[] { 34, 17, 11, 108, 152, 187, 13, 15, 209 }, // left = d153
-                new byte[] { 51, 24, 14, 115, 133, 209, 32, 26, 104 }, // left = d207
-                new byte[] { 55, 30, 18, 122, 79, 179, 44, 88, 116 }, // left = d63
-                new byte[] { 37, 49, 25, 129, 168, 164, 41, 54, 148 } // left = tm
-            },
-            new[]
-            {
+                [75, 17, 22, 136, 138, 185, 32, 34, 166], // left = dc
+                [56, 39, 58, 133, 117, 173, 48, 53, 187], // left = v
+                [35, 21, 12, 161, 212, 207, 20, 23, 145], // left = h
+                [56, 29, 19, 117, 109, 181, 55, 68, 112], // left = d45
+                [47, 29, 17, 153, 64, 220, 59, 51, 114], // left = d135
+                [46, 16, 24, 136, 76, 147, 41, 64, 172], // left = d117
+                [34, 17, 11, 108, 152, 187, 13, 15, 209], // left = d153
+                [51, 24, 14, 115, 133, 209, 32, 26, 104], // left = d207
+                [55, 30, 18, 122, 79, 179, 44, 88, 116], // left = d63
+                [37, 49, 25, 129, 168, 164, 41, 54, 148] // left = tm
+            ],
+            [
                 // above = d207
-                new byte[] { 82, 22, 32, 127, 143, 213, 39, 41, 70 }, // left = dc
-                new byte[] { 62, 44, 61, 123, 105, 189, 48, 57, 64 }, // left = v
-                new byte[] { 47, 25, 17, 175, 222, 220, 24, 30, 86 }, // left = h
-                new byte[] { 68, 36, 17, 106, 102, 206, 59, 74, 74 }, // left = d45
-                new byte[] { 57, 39, 23, 151, 68, 216, 55, 63, 58 }, // left = d135
-                new byte[] { 49, 30, 35, 141, 70, 168, 82, 40, 115 }, // left = d117
-                new byte[] { 51, 25, 15, 136, 129, 202, 38, 35, 139 }, // left = d153
-                new byte[] { 68, 26, 16, 111, 141, 215, 29, 28, 28 }, // left = d207
-                new byte[] { 59, 39, 19, 114, 75, 180, 77, 104, 42 }, // left = d63
-                new byte[] { 40, 61, 26, 126, 152, 206, 61, 59, 93 } // left = tm
-            },
-            new[]
-            {
+                [82, 22, 32, 127, 143, 213, 39, 41, 70], // left = dc
+                [62, 44, 61, 123, 105, 189, 48, 57, 64], // left = v
+                [47, 25, 17, 175, 222, 220, 24, 30, 86], // left = h
+                [68, 36, 17, 106, 102, 206, 59, 74, 74], // left = d45
+                [57, 39, 23, 151, 68, 216, 55, 63, 58], // left = d135
+                [49, 30, 35, 141, 70, 168, 82, 40, 115], // left = d117
+                [51, 25, 15, 136, 129, 202, 38, 35, 139], // left = d153
+                [68, 26, 16, 111, 141, 215, 29, 28, 28], // left = d207
+                [59, 39, 19, 114, 75, 180, 77, 104, 42], // left = d63
+                [40, 61, 26, 126, 152, 206, 61, 59, 93] // left = tm
+            ],
+            [
                 // above = d63
-                new byte[] { 78, 23, 39, 111, 117, 170, 74, 124, 94 }, // left = dc
-                new byte[] { 48, 34, 86, 101, 92, 146, 78, 179, 134 }, // left = v
-                new byte[] { 47, 22, 24, 138, 187, 178, 68, 69, 59 }, // left = h
-                new byte[] { 56, 25, 33, 105, 112, 187, 95, 177, 129 }, // left = d45
-                new byte[] { 48, 31, 27, 114, 63, 183, 82, 116, 56 }, // left = d135
-                new byte[] { 43, 28, 37, 121, 63, 123, 61, 192, 169 }, // left = d117
-                new byte[] { 42, 17, 24, 109, 97, 177, 56, 76, 122 }, // left = d153
-                new byte[] { 58, 18, 28, 105, 139, 182, 70, 92, 63 }, // left = d207
-                new byte[] { 46, 23, 32, 74, 86, 150, 67, 183, 88 }, // left = d63
-                new byte[] { 36, 38, 48, 92, 122, 165, 88, 137, 91 } // left = tm
-            },
-            new[]
-            {
+                [78, 23, 39, 111, 117, 170, 74, 124, 94], // left = dc
+                [48, 34, 86, 101, 92, 146, 78, 179, 134], // left = v
+                [47, 22, 24, 138, 187, 178, 68, 69, 59], // left = h
+                [56, 25, 33, 105, 112, 187, 95, 177, 129], // left = d45
+                [48, 31, 27, 114, 63, 183, 82, 116, 56], // left = d135
+                [43, 28, 37, 121, 63, 123, 61, 192, 169], // left = d117
+                [42, 17, 24, 109, 97, 177, 56, 76, 122], // left = d153
+                [58, 18, 28, 105, 139, 182, 70, 92, 63], // left = d207
+                [46, 23, 32, 74, 86, 150, 67, 183, 88], // left = d63
+                [36, 38, 48, 92, 122, 165, 88, 137, 91] // left = tm
+            ],
+            [
                 // above = tm
-                new byte[] { 65, 70, 60, 155, 159, 199, 61, 60, 81 }, // left = dc
-                new byte[] { 44, 78, 115, 132, 119, 173, 71, 112, 93 }, // left = v
-                new byte[] { 39, 38, 21, 184, 227, 206, 42, 32, 64 }, // left = h
-                new byte[] { 58, 47, 36, 124, 137, 193, 80, 82, 78 }, // left = d45
-                new byte[] { 49, 50, 35, 144, 95, 205, 63, 78, 59 }, // left = d135
-                new byte[] { 41, 53, 52, 148, 71, 142, 65, 128, 51 }, // left = d117
-                new byte[] { 40, 36, 28, 143, 143, 202, 40, 55, 137 }, // left = d153
-                new byte[] { 52, 34, 29, 129, 183, 227, 42, 35, 43 }, // left = d207
-                new byte[] { 42, 44, 44, 104, 105, 164, 64, 130, 80 }, // left = d63
-                new byte[] { 43, 81, 53, 140, 169, 204, 68, 84, 72 } // left = tm
-            }
-        };
+                [65, 70, 60, 155, 159, 199, 61, 60, 81], // left = dc
+                [44, 78, 115, 132, 119, 173, 71, 112, 93], // left = v
+                [39, 38, 21, 184, 227, 206, 42, 32, 64], // left = h
+                [58, 47, 36, 124, 137, 193, 80, 82, 78], // left = d45
+                [49, 50, 35, 144, 95, 205, 63, 78, 59], // left = d135
+                [41, 53, 52, 148, 71, 142, 65, 128, 51], // left = d117
+                [40, 36, 28, 143, 143, 202, 40, 55, 137], // left = d153
+                [52, 34, 29, 129, 183, 227, 42, 35, 43], // left = d207
+                [42, 44, 44, 104, 105, 164, 64, 130, 80], // left = d63
+                [43, 81, 53, 140, 169, 204, 68, 84, 72] // left = tm
+            ]
+        ];
 
         public static readonly byte[][] KfUvModeProb =
-        {
-            new byte[] { 144, 11, 54, 157, 195, 130, 46, 58, 108 }, // y = dc
-            new byte[] { 118, 15, 123, 148, 131, 101, 44, 93, 131 }, // y = v
-            new byte[] { 113, 12, 23, 188, 226, 142, 26, 32, 125 }, // y = h
-            new byte[] { 120, 11, 50, 123, 163, 135, 64, 77, 103 }, // y = d45
-            new byte[] { 113, 9, 36, 155, 111, 157, 32, 44, 161 }, // y = d135
-            new byte[] { 116, 9, 55, 176, 76, 96, 37, 61, 149 }, // y = d117
-            new byte[] { 115, 9, 28, 141, 161, 167, 21, 25, 193 }, // y = d153
-            new byte[] { 120, 12, 32, 145, 195, 142, 32, 38, 86 }, // y = d207
-            new byte[] { 116, 12, 64, 120, 140, 125, 49, 115, 121 }, // y = d63
-            new byte[] { 102, 19, 66, 162, 182, 122, 35, 59, 128 } // y = tm
-        };
-
-        private static readonly byte[] DefaultIfYProbs =
-        {
+        [
+            [144, 11, 54, 157, 195, 130, 46, 58, 108], // y = dc
+            [118, 15, 123, 148, 131, 101, 44, 93, 131], // y = v
+            [113, 12, 23, 188, 226, 142, 26, 32, 125], // y = h
+            [120, 11, 50, 123, 163, 135, 64, 77, 103], // y = d45
+            [113, 9, 36, 155, 111, 157, 32, 44, 161], // y = d135
+            [116, 9, 55, 176, 76, 96, 37, 61, 149], // y = d117
+            [115, 9, 28, 141, 161, 167, 21, 25, 193], // y = d153
+            [120, 12, 32, 145, 195, 142, 32, 38, 86], // y = d207
+            [116, 12, 64, 120, 140, 125, 49, 115, 121], // y = d63
+            [102, 19, 66, 162, 182, 122, 35, 59, 128] // y = tm
+        ];
+
+        private static readonly byte[] _defaultIfYProbs =
+        [
             65, 32, 18, 144, 162, 194, 41, 51, 98, // block_size < 8x8
             132, 68, 18, 165, 217, 196, 45, 40, 78, // block_size < 16x16
             173, 80, 19, 176, 240, 193, 64, 35, 46, // block_size < 32x32
             221, 135, 38, 194, 248, 121, 96, 85, 29 // block_size >= 32x32
-        };
+        ];
 
-        private static readonly byte[] DefaultIfUvProbs =
-        {
+        private static readonly byte[] _defaultIfUvProbs =
+        [
             120, 7, 76, 176, 208, 126, 28, 54, 103, // y = dc
             48, 12, 154, 155, 139, 90, 34, 117, 119, // y = v
             67, 6, 25, 204, 243, 158, 13, 21, 96, // y = h
@@ -190,10 +180,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             85, 5, 32, 156, 216, 148, 19, 29, 73, // y = d207
             77, 7, 64, 116, 132, 122, 37, 126, 120, // y = d63
             101, 21, 107, 181, 192, 103, 19, 67, 125 // y = tm
-        };
+        ];
 
-        private static readonly byte[] DefaultPartitionProbs =
-        {
+        private static readonly byte[] _defaultPartitionProbs =
+        [
             // 8x8 . 4x4
             199, 122, 141, // a/l both not split
             147, 63, 159, // a split, l not split
@@ -214,10 +204,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             72, 16, 44, // a split, l not split
             58, 32, 12, // l split, a not split
             10, 7, 6 // a/l both split
-        };
+        ];
 
-        private static readonly byte[] DefaultInterModeProbs =
-        {
+        private static readonly byte[] _defaultInterModeProbs =
+        [
             2, 173, 34, // 0 = both zero mv
             7, 145, 85, // 1 = one zero mv + one a predicted mv
             7, 166, 63, // 2 = two predicted mvs
@@ -225,120 +215,120 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             8, 64, 46, // 4 = two new mvs
             17, 81, 31, // 5 = one intra neighbour + x
             25, 29, 30 // 6 = two intra neighbours
-        };
+        ];
 
         /* Array indices are identical to previously-existing INTRAMODECONTEXTNODES. */
         public static readonly sbyte[] IntraModeTree =
-        {
+        [
             -(int)PredictionMode.DcPred, 2, /* 0 = DC_NODE */ -(int)PredictionMode.TmPred, 4, /* 1 = TM_NODE */
             -(int)PredictionMode.VPred, 6, /* 2 = V_NODE */ 8, 12, /* 3 = COM_NODE */ -(int)PredictionMode.HPred,
             10, /* 4 = H_NODE */ -(int)PredictionMode.D135Pred, -(int)PredictionMode.D117Pred, /* 5 = D135_NODE */
             -(int)PredictionMode.D45Pred, 14, /* 6 = D45_NODE */ -(int)PredictionMode.D63Pred,
             16, /* 7 = D63_NODE */ -(int)PredictionMode.D153Pred, -(int)PredictionMode.D207Pred /* 8 = D153_NODE */
-        };
+        ];
 
         public static readonly sbyte[] InterModeTree =
-        {
+        [
             -((int)PredictionMode.ZeroMv - (int)PredictionMode.NearestMv), 2,
             -((int)PredictionMode.NearestMv - (int)PredictionMode.NearestMv), 4,
             -((int)PredictionMode.NearMv - (int)PredictionMode.NearestMv),
             -((int)PredictionMode.NewMv - (int)PredictionMode.NearestMv)
-        };
+        ];
 
         public static readonly sbyte[] PartitionTree =
-        {
+        [
             -(sbyte)PartitionType.PartitionNone, 2, -(sbyte)PartitionType.PartitionHorz, 4,
             -(sbyte)PartitionType.PartitionVert, -(sbyte)PartitionType.PartitionSplit
-        };
+        ];
 
         public static readonly sbyte[] SwitchableInterpTree =
-        {
+        [
             -Constants.EightTap, 2, -Constants.EightTapSmooth, -Constants.EightTapSharp
-        };
+        ];
 
-        private static readonly byte[] DefaultIntraInterP = { 9, 102, 187, 225 };
-        private static readonly byte[] DefaultCompInterP = { 239, 183, 119, 96, 41 };
-        private static readonly byte[] DefaultCompRefP = { 50, 126, 123, 221, 226 };
-        private static readonly byte[] DefaultSingleRefP = { 33, 16, 77, 74, 142, 142, 172, 170, 238, 247 };
-        private static readonly byte[] DefaultTxProbs = { 3, 136, 37, 5, 52, 13, 20, 152, 15, 101, 100, 66 };
+        private static readonly byte[] _defaultIntraInterP = [9, 102, 187, 225];
+        private static readonly byte[] _defaultCompInterP = [239, 183, 119, 96, 41];
+        private static readonly byte[] _defaultCompRefP = [50, 126, 123, 221, 226];
+        private static readonly byte[] _defaultSingleRefP = [33, 16, 77, 74, 142, 142, 172, 170, 238, 247];
+        private static readonly byte[] _defaultTxProbs = [3, 136, 37, 5, 52, 13, 20, 152, 15, 101, 100, 66];
 
         static EntropyMode()
         {
-            byte[][] KfPartitionProbs =
-            {
+            byte[][] kfPartitionProbs =
+            [
                 // 8x8 . 4x4
-                new byte[] { 158, 97, 94 }, // a/l both not split
-                new byte[] { 93, 24, 99 }, // a split, l not split
-                new byte[] { 85, 119, 44 }, // l split, a not split
-                new byte[] { 62, 59, 67 }, // a/l both split
+                [158, 97, 94], // a/l both not split
+                [93, 24, 99], // a split, l not split
+                [85, 119, 44], // l split, a not split
+                [62, 59, 67], // a/l both split
 
                 // 16x16 . 8x8
-                new byte[] { 149, 53, 53 }, // a/l both not split
-                new byte[] { 94, 20, 48 }, // a split, l not split
-                new byte[] { 83, 53, 24 }, // l split, a not split
-                new byte[] { 52, 18, 18 }, // a/l both split
+                [149, 53, 53], // a/l both not split
+                [94, 20, 48], // a split, l not split
+                [83, 53, 24], // l split, a not split
+                [52, 18, 18], // a/l both split
 
                 // 32x32 . 16x16
-                new byte[] { 150, 40, 39 }, // a/l both not split
-                new byte[] { 78, 12, 26 }, // a split, l not split
-                new byte[] { 67, 33, 11 }, // l split, a not split
-                new byte[] { 24, 7, 5 }, // a/l both split
+                [150, 40, 39], // a/l both not split
+                [78, 12, 26], // a split, l not split
+                [67, 33, 11], // l split, a not split
+                [24, 7, 5], // a/l both split
 
                 // 64x64 . 32x32
-                new byte[] { 174, 35, 49 }, // a/l both not split
-                new byte[] { 68, 11, 27 }, // a split, l not split
-                new byte[] { 57, 15, 9 }, // l split, a not split
-                new byte[] { 12, 3, 3 } // a/l both split
-            };
+                [174, 35, 49], // a/l both not split
+                [68, 11, 27], // a split, l not split
+                [57, 15, 9], // l split, a not split
+                [12, 3, 3] // a/l both split
+            ];
         }
 
-        private static readonly byte[] DefaultSkipProbs = { 192, 128, 64 };
+        private static readonly byte[] _defaultSkipProbs = [192, 128, 64];
 
-        private static readonly byte[] DefaultSwitchableInterpProb = { 235, 162, 36, 255, 34, 3, 149, 144 };
+        private static readonly byte[] _defaultSwitchableInterpProb = [235, 162, 36, 255, 34, 3, 149, 144];
 
         private static void InitModeProbs(ref Vp9EntropyProbs fc)
         {
-            Entropy.CopyProbs(ref fc.UvModeProb, DefaultIfUvProbs);
-            Entropy.CopyProbs(ref fc.YModeProb, DefaultIfYProbs);
-            Entropy.CopyProbs(ref fc.SwitchableInterpProb, DefaultSwitchableInterpProb);
-            Entropy.CopyProbs(ref fc.PartitionProb, DefaultPartitionProbs);
-            Entropy.CopyProbs(ref fc.IntraInterProb, DefaultIntraInterP);
-            Entropy.CopyProbs(ref fc.CompInterProb, DefaultCompInterP);
-            Entropy.CopyProbs(ref fc.CompRefProb, DefaultCompRefP);
-            Entropy.CopyProbs(ref fc.SingleRefProb, DefaultSingleRefP);
-            Entropy.CopyProbs(ref fc.Tx32x32Prob, DefaultTxProbs.AsSpan().Slice(0, 6));
-            Entropy.CopyProbs(ref fc.Tx16x16Prob, DefaultTxProbs.AsSpan().Slice(6, 4));
-            Entropy.CopyProbs(ref fc.Tx8x8Prob, DefaultTxProbs.AsSpan().Slice(10, 2));
-            Entropy.CopyProbs(ref fc.SkipProb, DefaultSkipProbs);
-            Entropy.CopyProbs(ref fc.InterModeProb, DefaultInterModeProbs);
+            Entropy.CopyProbs(ref fc.UvModeProb, _defaultIfUvProbs);
+            Entropy.CopyProbs(ref fc.YModeProb, _defaultIfYProbs);
+            Entropy.CopyProbs(ref fc.SwitchableInterpProb, _defaultSwitchableInterpProb);
+            Entropy.CopyProbs(ref fc.PartitionProb, _defaultPartitionProbs);
+            Entropy.CopyProbs(ref fc.IntraInterProb, _defaultIntraInterP);
+            Entropy.CopyProbs(ref fc.CompInterProb, _defaultCompInterP);
+            Entropy.CopyProbs(ref fc.CompRefProb, _defaultCompRefP);
+            Entropy.CopyProbs(ref fc.SingleRefProb, _defaultSingleRefP);
+            Entropy.CopyProbs(ref fc.Tx32x32Prob, _defaultTxProbs.AsSpan().Slice(0, 6));
+            Entropy.CopyProbs(ref fc.Tx16x16Prob, _defaultTxProbs.AsSpan().Slice(6, 4));
+            Entropy.CopyProbs(ref fc.Tx8x8Prob, _defaultTxProbs.AsSpan().Slice(10, 2));
+            Entropy.CopyProbs(ref fc.SkipProb, _defaultSkipProbs);
+            Entropy.CopyProbs(ref fc.InterModeProb, _defaultInterModeProbs);
         }
 
-        internal static void TxCountsToBranchCounts32x32(ReadOnlySpan<uint> txCount32x32P,
-            ref Array3<Array2<uint>> ct32x32P)
+        internal static void TxCountsToBranchCounts32X32(ReadOnlySpan<uint> txCount32X32P,
+            ref Array3<Array2<uint>> ct32X32P)
         {
-            ct32x32P[0][0] = txCount32x32P[(int)TxSize.Tx4x4];
-            ct32x32P[0][1] = txCount32x32P[(int)TxSize.Tx8x8] + txCount32x32P[(int)TxSize.Tx16x16] +
-                             txCount32x32P[(int)TxSize.Tx32x32];
-            ct32x32P[1][0] = txCount32x32P[(int)TxSize.Tx8x8];
-            ct32x32P[1][1] = txCount32x32P[(int)TxSize.Tx16x16] + txCount32x32P[(int)TxSize.Tx32x32];
-            ct32x32P[2][0] = txCount32x32P[(int)TxSize.Tx16x16];
-            ct32x32P[2][1] = txCount32x32P[(int)TxSize.Tx32x32];
+            ct32X32P[0][0] = txCount32X32P[(int)TxSize.Tx4X4];
+            ct32X32P[0][1] = txCount32X32P[(int)TxSize.Tx8X8] + txCount32X32P[(int)TxSize.Tx16X16] +
+                             txCount32X32P[(int)TxSize.Tx32X32];
+            ct32X32P[1][0] = txCount32X32P[(int)TxSize.Tx8X8];
+            ct32X32P[1][1] = txCount32X32P[(int)TxSize.Tx16X16] + txCount32X32P[(int)TxSize.Tx32X32];
+            ct32X32P[2][0] = txCount32X32P[(int)TxSize.Tx16X16];
+            ct32X32P[2][1] = txCount32X32P[(int)TxSize.Tx32X32];
         }
 
-        internal static void TxCountsToBranchCounts16x16(ReadOnlySpan<uint> txCount16x16P,
-            ref Array2<Array2<uint>> ct16x16P)
+        internal static void TxCountsToBranchCounts16X16(ReadOnlySpan<uint> txCount16X16P,
+            ref Array2<Array2<uint>> ct16X16P)
         {
-            ct16x16P[0][0] = txCount16x16P[(int)TxSize.Tx4x4];
-            ct16x16P[0][1] = txCount16x16P[(int)TxSize.Tx8x8] + txCount16x16P[(int)TxSize.Tx16x16];
-            ct16x16P[1][0] = txCount16x16P[(int)TxSize.Tx8x8];
-            ct16x16P[1][1] = txCount16x16P[(int)TxSize.Tx16x16];
+            ct16X16P[0][0] = txCount16X16P[(int)TxSize.Tx4X4];
+            ct16X16P[0][1] = txCount16X16P[(int)TxSize.Tx8X8] + txCount16X16P[(int)TxSize.Tx16X16];
+            ct16X16P[1][0] = txCount16X16P[(int)TxSize.Tx8X8];
+            ct16X16P[1][1] = txCount16X16P[(int)TxSize.Tx16X16];
         }
 
-        internal static void TxCountsToBranchCounts8x8(ReadOnlySpan<uint> txCount8x8P,
-            ref Array1<Array2<uint>> ct8x8P)
+        internal static void TxCountsToBranchCounts8X8(ReadOnlySpan<uint> txCount8X8P,
+            ref Array1<Array2<uint>> ct8X8P)
         {
-            ct8x8P[0][0] = txCount8x8P[(int)TxSize.Tx4x4];
-            ct8x8P[0][1] = txCount8x8P[(int)TxSize.Tx8x8];
+            ct8X8P[0][0] = txCount8X8P[(int)TxSize.Tx4X4];
+            ct8X8P[0][1] = txCount8X8P[(int)TxSize.Tx8X8];
         }
 
         public static unsafe void SetupPastIndependence(ref Vp9Common cm)

+ 18 - 18
src/Ryujinx.Graphics.Nvdec.Vp9/EntropyMv.cs

@@ -14,22 +14,22 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
 
         public static readonly sbyte[] JointTree =
-        {
+        [
             -(sbyte)MvJointType.Zero, 2, -(sbyte)MvJointType.Hnzvz, 4,
             -(sbyte)MvJointType.Hzvnz, -(sbyte)MvJointType.Hnzvnz
-        };
+        ];
 
         public static readonly sbyte[] ClassTree =
-        {
+        [
             -(sbyte)MvClassType.Class0, 2, -(sbyte)MvClassType.Class1, 4, 6, 8, -(sbyte)MvClassType.Class2,
             -(sbyte)MvClassType.Class3, 10, 12, -(sbyte)MvClassType.Class4, -(sbyte)MvClassType.Class5,
             -(sbyte)MvClassType.Class6, 14, 16, 18, -(sbyte)MvClassType.Class7, -(sbyte)MvClassType.Class8,
             -(sbyte)MvClassType.Class9, -(sbyte)MvClassType.Class10
-        };
+        ];
 
-        public static readonly sbyte[] Class0Tree = { -0, -1 };
+        public static readonly sbyte[] Class0Tree = [-0, -1];
 
-        public static readonly sbyte[] FpTree = { -0, 2, -1, 4, -2, -3 };
+        public static readonly sbyte[] FpTree = [-0, 2, -1, 4, -2, -3];
 
         private static bool JointVertical(MvJointType type)
         {
@@ -41,8 +41,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             return type == MvJointType.Hnzvz || type == MvJointType.Hnzvnz;
         }
 
-        private static readonly byte[] LogInBase2 =
-        {
+        private static readonly byte[] _logInBase2 =
+        [
             0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5,
             5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
             6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
@@ -73,7 +73,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
             9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
             9, 9, 9, 9, 9, 9, 9, 9, 9, 10
-        };
+        ];
 
         private static int ClassBase(MvClassType c)
         {
@@ -84,7 +84,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         {
             MvClassType c = z >= Class0Size * 4096
                 ? MvClassType.Class10
-                : (MvClassType)LogInBase2[z >> 3];
+                : (MvClassType)_logInBase2[z >> 3];
             if (!offset.IsNull)
             {
                 offset.Value = z - ClassBase(c);
@@ -95,18 +95,18 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
 
         private static void IncComponent(int v, ref Vp9BackwardUpdates compCounts, int compIndex, int incr, int usehp)
         {
-            int s, z, c, o = 0, d, e, f;
+            int o = 0;
             Debug.Assert(v != 0); /* should not be zero */
-            s = v < 0 ? 1 : 0;
+            int s = v < 0 ? 1 : 0;
             compCounts.Sign[compIndex][s] += (uint)incr;
-            z = (s != 0 ? -v : v) - 1; /* magnitude - 1 */
+            int z = (s != 0 ? -v : v) - 1 /* magnitude - 1 */;
 
-            c = (int)GetClass(z, new Ptr<int>(ref o));
+            int c = (int)GetClass(z, new Ptr<int>(ref o));
             compCounts.Classes[compIndex][c] += (uint)incr;
 
-            d = o >> 3; /* int mv data */
-            f = (o >> 1) & 3; /* fractional pel mv data */
-            e = o & 1; /* high precision mv data */
+            int d = o >> 3 /* int mv data */;
+            int f = (o >> 1) & 3 /* fractional pel mv data */;
+            int e = o & 1 /* high precision mv data */;
 
             if (c == (int)MvClassType.Class0)
             {
@@ -162,4 +162,4 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         public const int Upp = (1 << InUseBits) - 1;
         public const int Low = -(1 << InUseBits);
     }
-}
+}

+ 13 - 14
src/Ryujinx.Graphics.Nvdec.Vp9/FrameBuffers.cs

@@ -21,48 +21,47 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             ref VpxCodecFrameBuffer fb)
         {
             int i;
-            Ptr<InternalFrameBufferList> intFbList = cbPriv;
-            if (intFbList.IsNull)
+            if (cbPriv.IsNull)
             {
                 return -1;
             }
 
             // Find a free frame buffer.
-            for (i = 0; i < intFbList.Value.IntFb.Length; ++i)
+            for (i = 0; i < cbPriv.Value.IntFb.Length; ++i)
             {
-                if (!intFbList.Value.IntFb[i].InUse)
+                if (!cbPriv.Value.IntFb[i].InUse)
                 {
                     break;
                 }
             }
 
-            if (i == intFbList.Value.IntFb.Length)
+            if (i == cbPriv.Value.IntFb.Length)
             {
                 return -1;
             }
 
-            if ((ulong)intFbList.Value.IntFb[i].Data.Length < minSize)
+            if ((ulong)cbPriv.Value.IntFb[i].Data.Length < minSize)
             {
-                if (!intFbList.Value.IntFb[i].Data.IsNull)
+                if (!cbPriv.Value.IntFb[i].Data.IsNull)
                 {
-                    allocator.Free(intFbList.Value.IntFb[i].Data);
+                    allocator.Free(cbPriv.Value.IntFb[i].Data);
                 }
 
                 // The data must be zeroed to fix a valgrind error from the C loop filter
                 // due to access uninitialized memory in frame border. It could be
                 // skipped if border were totally removed.
-                intFbList.Value.IntFb[i].Data = allocator.Allocate<byte>((int)minSize);
-                if (intFbList.Value.IntFb[i].Data.IsNull)
+                cbPriv.Value.IntFb[i].Data = allocator.Allocate<byte>((int)minSize);
+                if (cbPriv.Value.IntFb[i].Data.IsNull)
                 {
                     return -1;
                 }
             }
 
-            fb.Data = intFbList.Value.IntFb[i].Data;
-            intFbList.Value.IntFb[i].InUse = true;
+            fb.Data = cbPriv.Value.IntFb[i].Data;
+            cbPriv.Value.IntFb[i].InUse = true;
 
             // Set the frame buffer's private data to point at the internal frame buffer.
-            fb.Priv = new Ptr<InternalFrameBuffer>(ref intFbList.Value.IntFb[i]);
+            fb.Priv = new Ptr<InternalFrameBuffer>(ref cbPriv.Value.IntFb[i]);
             return 0;
         }
 
@@ -76,4 +75,4 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             return 0;
         }
     }
-}
+}

+ 90 - 90
src/Ryujinx.Graphics.Nvdec.Vp9/Idct.cs

@@ -35,15 +35,15 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
         }
 
-        private static readonly Transform2D[] Iht4 =
-        {
+        private static readonly Transform2D[] _iht4 =
+        [
             new(Idct4, Idct4), // DCT_DCT  = 0
             new(Iadst4, Idct4), // ADST_DCT = 1
             new(Idct4, Iadst4), // DCT_ADST = 2
             new(Iadst4, Iadst4) // ADST_ADST = 3
-        };
+        ];
 
-        public static void Iht4x416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int txType)
+        public static void Iht4X416Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int txType)
         {
             Span<int> output = stackalloc int[4 * 4];
             Span<int> outptr = output;
@@ -53,7 +53,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             // Inverse transform row vectors
             for (int i = 0; i < 4; ++i)
             {
-                Iht4[txType].Rows(input, outptr);
+                _iht4[txType].Rows(input, outptr);
                 input = input.Slice(4);
                 outptr = outptr.Slice(4);
             }
@@ -66,7 +66,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     tempIn[j] = output[(j * 4) + i];
                 }
 
-                Iht4[txType].Cols(tempIn, tempOut);
+                _iht4[txType].Cols(tempIn, tempOut);
                 for (int j = 0; j < 4; ++j)
                 {
                     dest[(j * stride) + i] =
@@ -75,21 +75,21 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
         }
 
-        private static readonly Transform2D[] Iht8 =
-        {
+        private static readonly Transform2D[] _iht8 =
+        [
             new(Idct8, Idct8), // DCT_DCT  = 0
             new(Iadst8, Idct8), // ADST_DCT = 1
             new(Idct8, Iadst8), // DCT_ADST = 2
             new(Iadst8, Iadst8) // ADST_ADST = 3
-        };
+        ];
 
-        public static void Iht8x864Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int txType)
+        public static void Iht8X864Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int txType)
         {
             Span<int> output = stackalloc int[8 * 8];
             Span<int> outptr = output;
             Span<int> tempIn = stackalloc int[8];
             Span<int> tempOut = stackalloc int[8];
-            Transform2D ht = Iht8[txType];
+            Transform2D ht = _iht8[txType];
 
             // Inverse transform row vectors
             for (int i = 0; i < 8; ++i)
@@ -116,21 +116,21 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
         }
 
-        private static readonly Transform2D[] Iht16 =
-        {
+        private static readonly Transform2D[] _iht16 =
+        [
             new(Idct16, Idct16), // DCT_DCT  = 0
             new(Iadst16, Idct16), // ADST_DCT = 1
             new(Idct16, Iadst16), // DCT_ADST = 2
             new(Iadst16, Iadst16) // ADST_ADST = 3
-        };
+        ];
 
-        public static void Iht16x16256Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int txType)
+        public static void Iht16X16256Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int txType)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
             Span<int> tempIn = stackalloc int[16];
             Span<int> tempOut = stackalloc int[16];
-            Transform2D ht = Iht16[txType];
+            Transform2D ht = _iht16[txType];
 
             // Rows
             for (int i = 0; i < 16; ++i)
@@ -158,31 +158,31 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         }
 
         // Idct
-        public static void Idct4x4Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Idct4X4Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             if (eob > 1)
             {
-                Idct4x416Add(input, dest, stride);
+                Idct4X416Add(input, dest, stride);
             }
             else
             {
-                Idct4x41Add(input, dest, stride);
+                Idct4X41Add(input, dest, stride);
             }
         }
 
-        public static void Iwht4x4Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Iwht4X4Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             if (eob > 1)
             {
-                Iwht4x416Add(input, dest, stride);
+                Iwht4X416Add(input, dest, stride);
             }
             else
             {
-                Iwht4x41Add(input, dest, stride);
+                Iwht4X41Add(input, dest, stride);
             }
         }
 
-        public static void Idct8x8Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Idct8X8Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             // If dc is 1, then input[0] is the reconstructed value, do not need
             // dequantization. Also, when dc is 1, dc is counted in eobs, namely eobs >=1.
@@ -192,109 +192,109 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             if (eob == 1)
             {
                 // DC only DCT coefficient
-                Idct8x81Add(input, dest, stride);
+                Idct8X81Add(input, dest, stride);
             }
             else if (eob <= 12)
             {
-                Idct8x812Add(input, dest, stride);
+                Idct8X812Add(input, dest, stride);
             }
             else
             {
-                Idct8x864Add(input, dest, stride);
+                Idct8X864Add(input, dest, stride);
             }
         }
 
-        public static void Idct16x16Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Idct16X16Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             /* The calculation can be simplified if there are not many non-zero dct
              * coefficients. Use eobs to separate different cases. */
             if (eob == 1) /* DC only DCT coefficient. */
             {
-                Idct16x161Add(input, dest, stride);
+                Idct16X161Add(input, dest, stride);
             }
             else if (eob <= 10)
             {
-                Idct16x1610Add(input, dest, stride);
+                Idct16X1610Add(input, dest, stride);
             }
             else if (eob <= 38)
             {
-                Idct16x1638Add(input, dest, stride);
+                Idct16X1638Add(input, dest, stride);
             }
             else
             {
-                Idct16x16256Add(input, dest, stride);
+                Idct16X16256Add(input, dest, stride);
             }
         }
 
-        public static void Idct32x32Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Idct32X32Add(ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             if (eob == 1)
             {
-                Idct32x321Add(input, dest, stride);
+                Idct32X321Add(input, dest, stride);
             }
             else if (eob <= 34)
             {
                 // Non-zero coeff only in upper-left 8x8
-                Idct32x3234Add(input, dest, stride);
+                Idct32X3234Add(input, dest, stride);
             }
             else if (eob <= 135)
             {
                 // Non-zero coeff only in upper-left 16x16
-                Idct32x32135Add(input, dest, stride);
+                Idct32X32135Add(input, dest, stride);
             }
             else
             {
-                Idct32x321024Add(input, dest, stride);
+                Idct32X321024Add(input, dest, stride);
             }
         }
 
         // Iht
-        public static void Iht4x4Add(TxType txType, ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Iht4X4Add(TxType txType, ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             if (txType == TxType.DctDct)
             {
-                Idct4x4Add(input, dest, stride, eob);
+                Idct4X4Add(input, dest, stride, eob);
             }
             else
             {
-                Iht4x416Add(input, dest, stride, (int)txType);
+                Iht4X416Add(input, dest, stride, (int)txType);
             }
         }
 
-        public static void Iht8x8Add(TxType txType, ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
+        public static void Iht8X8Add(TxType txType, ReadOnlySpan<int> input, Span<byte> dest, int stride, int eob)
         {
             if (txType == TxType.DctDct)
             {
-                Idct8x8Add(input, dest, stride, eob);
+                Idct8X8Add(input, dest, stride, eob);
             }
             else
             {
-                Iht8x864Add(input, dest, stride, (int)txType);
+                Iht8X864Add(input, dest, stride, (int)txType);
             }
         }
 
-        public static void Iht16x16Add(TxType txType, ReadOnlySpan<int> input, Span<byte> dest,
+        public static void Iht16X16Add(TxType txType, ReadOnlySpan<int> input, Span<byte> dest,
             int stride, int eob)
         {
             if (txType == TxType.DctDct)
             {
-                Idct16x16Add(input, dest, stride, eob);
+                Idct16X16Add(input, dest, stride, eob);
             }
             else
             {
-                Iht16x16256Add(input, dest, stride, (int)txType);
+                Iht16X16256Add(input, dest, stride, (int)txType);
             }
         }
 
-        private static readonly HighbdTransform2D[] HighbdIht4 =
-        {
+        private static readonly HighbdTransform2D[] _highbdIht4 =
+        [
             new(HighbdIdct4, HighbdIdct4), // DCT_DCT  = 0
             new(HighbdIadst4, HighbdIdct4), // ADST_DCT = 1
             new(HighbdIdct4, HighbdIadst4), // DCT_ADST = 2
             new(HighbdIadst4, HighbdIadst4) // ADST_ADST = 3
-        };
+        ];
 
-        public static void HighbdIht4x416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int txType, int bd)
+        public static void HighbdIht4X416Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int txType, int bd)
         {
             Span<int> output = stackalloc int[4 * 4];
             Span<int> outptr = output;
@@ -304,7 +304,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             // Inverse transform row vectors.
             for (int i = 0; i < 4; ++i)
             {
-                HighbdIht4[txType].Rows(input, outptr, bd);
+                _highbdIht4[txType].Rows(input, outptr, bd);
                 input = input.Slice(4);
                 outptr = outptr.Slice(4);
             }
@@ -317,7 +317,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
                     tempIn[j] = output[(j * 4) + i];
                 }
 
-                HighbdIht4[txType].Cols(tempIn, tempOut, bd);
+                _highbdIht4[txType].Cols(tempIn, tempOut, bd);
                 for (int j = 0; j < 4; ++j)
                 {
                     dest[(j * stride) + i] = HighbdClipPixelAdd(dest[(j * stride) + i],
@@ -326,21 +326,21 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
         }
 
-        private static readonly HighbdTransform2D[] HighIht8 =
-        {
+        private static readonly HighbdTransform2D[] _highIht8 =
+        [
             new(HighbdIdct8, HighbdIdct8), // DCT_DCT  = 0
             new(HighbdIadst8, HighbdIdct8), // ADST_DCT = 1
             new(HighbdIdct8, HighbdIadst8), // DCT_ADST = 2
             new(HighbdIadst8, HighbdIadst8) // ADST_ADST = 3
-        };
+        ];
 
-        public static void HighbdIht8x864Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int txType, int bd)
+        public static void HighbdIht8X864Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int txType, int bd)
         {
             Span<int> output = stackalloc int[8 * 8];
             Span<int> outptr = output;
             Span<int> tempIn = stackalloc int[8];
             Span<int> tempOut = stackalloc int[8];
-            HighbdTransform2D ht = HighIht8[txType];
+            HighbdTransform2D ht = _highIht8[txType];
 
             // Inverse transform row vectors.
             for (int i = 0; i < 8; ++i)
@@ -367,22 +367,22 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
         }
 
-        private static readonly HighbdTransform2D[] HighIht16 =
-        {
+        private static readonly HighbdTransform2D[] _highIht16 =
+        [
             new(HighbdIdct16, HighbdIdct16), // DCT_DCT  = 0
             new(HighbdIadst16, HighbdIdct16), // ADST_DCT = 1
             new(HighbdIdct16, HighbdIadst16), // DCT_ADST = 2
             new(HighbdIadst16, HighbdIadst16) // ADST_ADST = 3
-        };
+        ];
 
-        public static void HighbdIht16x16256Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int txType,
+        public static void HighbdIht16X16256Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int txType,
             int bd)
         {
             Span<int> output = stackalloc int[16 * 16];
             Span<int> outptr = output;
             Span<int> tempIn = stackalloc int[16];
             Span<int> tempOut = stackalloc int[16];
-            HighbdTransform2D ht = HighIht16[txType];
+            HighbdTransform2D ht = _highIht16[txType];
 
             // Rows
             for (int i = 0; i < 16; ++i)
@@ -410,31 +410,31 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         }
 
         // Idct
-        public static void HighbdIdct4x4Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
+        public static void HighbdIdct4X4Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
         {
             if (eob > 1)
             {
-                HighbdIdct4x416Add(input, dest, stride, bd);
+                HighbdIdct4X416Add(input, dest, stride, bd);
             }
             else
             {
-                HighbdIdct4x41Add(input, dest, stride, bd);
+                HighbdIdct4X41Add(input, dest, stride, bd);
             }
         }
 
-        public static void HighbdIwht4x4Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
+        public static void HighbdIwht4X4Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
         {
             if (eob > 1)
             {
-                HighbdIwht4x416Add(input, dest, stride, bd);
+                HighbdIwht4X416Add(input, dest, stride, bd);
             }
             else
             {
-                HighbdIwht4x41Add(input, dest, stride, bd);
+                HighbdIwht4X41Add(input, dest, stride, bd);
             }
         }
 
-        public static void HighbdIdct8x8Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
+        public static void HighbdIdct8X8Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
         {
             // If dc is 1, then input[0] is the reconstructed value, do not need
             // dequantization. Also, when dc is 1, dc is counted in eobs, namely eobs >=1.
@@ -444,99 +444,99 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             // DC only DCT coefficient
             if (eob == 1)
             {
-                VpxHighbdidct8x81AddC(input, dest, stride, bd);
+                VpxHighbdidct8X81AddC(input, dest, stride, bd);
             }
             else if (eob <= 12)
             {
-                HighbdIdct8x812Add(input, dest, stride, bd);
+                HighbdIdct8X812Add(input, dest, stride, bd);
             }
             else
             {
-                HighbdIdct8x864Add(input, dest, stride, bd);
+                HighbdIdct8X864Add(input, dest, stride, bd);
             }
         }
 
-        public static void HighbdIdct16x16Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
+        public static void HighbdIdct16X16Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
         {
             // The calculation can be simplified if there are not many non-zero dct
             // coefficients. Use eobs to separate different cases.
             // DC only DCT coefficient.
             if (eob == 1)
             {
-                HighbdIdct16x161Add(input, dest, stride, bd);
+                HighbdIdct16X161Add(input, dest, stride, bd);
             }
             else if (eob <= 10)
             {
-                HighbdIdct16x1610Add(input, dest, stride, bd);
+                HighbdIdct16X1610Add(input, dest, stride, bd);
             }
             else if (eob <= 38)
             {
-                HighbdIdct16x1638Add(input, dest, stride, bd);
+                HighbdIdct16X1638Add(input, dest, stride, bd);
             }
             else
             {
-                HighbdIdct16x16256Add(input, dest, stride, bd);
+                HighbdIdct16X16256Add(input, dest, stride, bd);
             }
         }
 
-        public static void HighbdIdct32x32Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
+        public static void HighbdIdct32X32Add(ReadOnlySpan<int> input, Span<ushort> dest, int stride, int eob, int bd)
         {
             // Non-zero coeff only in upper-left 8x8
             if (eob == 1)
             {
-                HighbdIdct32x321Add(input, dest, stride, bd);
+                HighbdIdct32X321Add(input, dest, stride, bd);
             }
             else if (eob <= 34)
             {
-                HighbdIdct32x3234Add(input, dest, stride, bd);
+                HighbdIdct32X3234Add(input, dest, stride, bd);
             }
             else if (eob <= 135)
             {
-                HighbdIdct32x32135Add(input, dest, stride, bd);
+                HighbdIdct32X32135Add(input, dest, stride, bd);
             }
             else
             {
-                HighbdIdct32x321024Add(input, dest, stride, bd);
+                HighbdIdct32X321024Add(input, dest, stride, bd);
             }
         }
 
         // Iht
-        public static void HighbdIht4x4Add(TxType txType, ReadOnlySpan<int> input, Span<ushort> dest, int stride,
+        public static void HighbdIht4X4Add(TxType txType, ReadOnlySpan<int> input, Span<ushort> dest, int stride,
             int eob, int bd)
         {
             if (txType == TxType.DctDct)
             {
-                HighbdIdct4x4Add(input, dest, stride, eob, bd);
+                HighbdIdct4X4Add(input, dest, stride, eob, bd);
             }
             else
             {
-                HighbdIht4x416Add(input, dest, stride, (int)txType, bd);
+                HighbdIht4X416Add(input, dest, stride, (int)txType, bd);
             }
         }
 
-        public static void HighbdIht8x8Add(TxType txType, ReadOnlySpan<int> input, Span<ushort> dest, int stride,
+        public static void HighbdIht8X8Add(TxType txType, ReadOnlySpan<int> input, Span<ushort> dest, int stride,
             int eob, int bd)
         {
             if (txType == TxType.DctDct)
             {
-                HighbdIdct8x8Add(input, dest, stride, eob, bd);
+                HighbdIdct8X8Add(input, dest, stride, eob, bd);
             }
             else
             {
-                HighbdIht8x864Add(input, dest, stride, (int)txType, bd);
+                HighbdIht8X864Add(input, dest, stride, (int)txType, bd);
             }
         }
 
-        public static void HighbdIht16x16Add(TxType txType, ReadOnlySpan<int> input, Span<ushort> dest, int stride,
+        public static void HighbdIht16X16Add(TxType txType, ReadOnlySpan<int> input, Span<ushort> dest, int stride,
             int eob, int bd)
         {
             if (txType == TxType.DctDct)
             {
-                HighbdIdct16x16Add(input, dest, stride, eob, bd);
+                HighbdIdct16X16Add(input, dest, stride, eob, bd);
             }
             else
             {
-                HighbdIht16x16256Add(input, dest, stride, (int)txType, bd);
+                HighbdIht16X16256Add(input, dest, stride, (int)txType, bd);
             }
         }
     }

File diff suppressed because it is too large
+ 208 - 208
src/Ryujinx.Graphics.Nvdec.Vp9/LoopFilter.cs


File diff suppressed because it is too large
+ 383 - 382
src/Ryujinx.Graphics.Nvdec.Vp9/Luts.cs


+ 4 - 4
src/Ryujinx.Graphics.Nvdec.Vp9/Prob.cs

@@ -46,10 +46,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         }
 
         // MODE_MV_MAX_UPDATE_FACTOR (128) * count / MODE_MV_COUNT_SAT;
-        private static readonly uint[] CountToUpdateFactor =
-        {
+        private static readonly uint[] _countToUpdateFactor =
+        [
             0, 6, 12, 19, 25, 32, 38, 44, 51, 57, 64, 70, 76, 83, 89, 96, 102, 108, 115, 121, 128
-        };
+        ];
 
         private const int ModeMvCountSat = 20;
 
@@ -62,7 +62,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             }
 
             uint count = Math.Min(den, ModeMvCountSat);
-            uint factor = CountToUpdateFactor[(int)count];
+            uint factor = _countToUpdateFactor[(int)count];
             byte prob = GetProb(ct[0], den);
             return WeightedProb(preProb, prob, (int)factor);
         }

+ 24 - 24
src/Ryujinx.Graphics.Nvdec.Vp9/QuantCommon.cs

@@ -8,8 +8,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         public const int MaxQ = 255;
         public const int QindexBits = 8;
 
-        private static readonly short[] DcQlookup =
-        {
+        private static readonly short[] _dcQlookup =
+        [
             4, 8, 8, 9, 10, 11, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 25, 26, 26, 27, 28, 29,
             30, 31, 32, 32, 33, 34, 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51,
             52, 53, 53, 54, 55, 56, 57, 57, 58, 59, 60, 61, 62, 62, 63, 64, 65, 66, 66, 67, 68, 69, 70, 70, 71, 72,
@@ -22,10 +22,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             447, 454, 461, 467, 475, 482, 489, 497, 505, 513, 522, 530, 539, 549, 559, 569, 579, 590, 602, 614, 626,
             640, 654, 668, 684, 700, 717, 736, 755, 775, 796, 819, 843, 869, 896, 925, 955, 988, 1022, 1058, 1098,
             1139, 1184, 1232, 1282, 1336
-        };
+        ];
 
-        private static readonly short[] DcQlookup10 =
-        {
+        private static readonly short[] _dcQlookup10 =
+        [
             4, 9, 10, 13, 15, 17, 20, 22, 25, 28, 31, 34, 37, 40, 43, 47, 50, 53, 57, 60, 64, 68, 71, 75, 78, 82,
             86, 90, 93, 97, 101, 105, 109, 113, 116, 120, 124, 128, 132, 136, 140, 143, 147, 151, 155, 159, 163,
             166, 170, 174, 178, 182, 185, 189, 193, 197, 200, 204, 208, 212, 215, 219, 223, 226, 230, 233, 237, 241,
@@ -39,10 +39,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             1692, 1717, 1741, 1766, 1791, 1817, 1844, 1871, 1900, 1929, 1958, 1990, 2021, 2054, 2088, 2123, 2159,
             2197, 2236, 2276, 2319, 2363, 2410, 2458, 2508, 2561, 2616, 2675, 2737, 2802, 2871, 2944, 3020, 3102,
             3188, 3280, 3375, 3478, 3586, 3702, 3823, 3953, 4089, 4236, 4394, 4559, 4737, 4929, 5130, 5347
-        };
+        ];
 
-        private static readonly short[] DcQlookup12 =
-        {
+        private static readonly short[] _dcQlookup12 =
+        [
             4, 12, 18, 25, 33, 41, 50, 60, 70, 80, 91, 103, 115, 127, 140, 153, 166, 180, 194, 208, 222, 237, 251,
             266, 281, 296, 312, 327, 343, 358, 374, 390, 405, 421, 437, 453, 469, 484, 500, 516, 532, 548, 564, 580,
             596, 611, 627, 643, 659, 674, 690, 706, 721, 737, 752, 768, 783, 798, 814, 829, 844, 859, 874, 889, 904,
@@ -58,10 +58,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             8214, 8352, 8492, 8635, 8788, 8945, 9104, 9275, 9450, 9639, 9832, 10031, 10245, 10465, 10702, 10946,
             11210, 11482, 11776, 12081, 12409, 12750, 13118, 13501, 13913, 14343, 14807, 15290, 15812, 16356, 16943,
             17575, 18237, 18949, 19718, 20521, 21387
-        };
+        ];
 
-        private static readonly short[] AcQlookup =
-        {
+        private static readonly short[] _acQlookup =
+        [
             4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
             34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
             60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
@@ -74,10 +74,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             729, 743, 757, 771, 786, 801, 816, 832, 848, 864, 881, 898, 915, 933, 951, 969, 988, 1007, 1026, 1046,
             1066, 1087, 1108, 1129, 1151, 1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343, 1369, 1396, 1423, 1451,
             1479, 1508, 1537, 1567, 1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828
-        };
+        ];
 
-        private static readonly short[] AcQlookup10 =
-        {
+        private static readonly short[] _acQlookup10 =
+        [
             4, 9, 11, 13, 16, 18, 21, 24, 27, 30, 33, 37, 40, 44, 48, 51, 55, 59, 63, 67, 71, 75, 79, 83, 88, 92,
             96, 100, 105, 109, 114, 118, 122, 127, 131, 136, 140, 145, 149, 154, 158, 163, 168, 172, 177, 181, 186,
             190, 195, 199, 204, 208, 213, 217, 222, 226, 231, 235, 240, 244, 249, 253, 258, 262, 267, 271, 275, 280,
@@ -92,10 +92,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             3659, 3731, 3803, 3876, 3952, 4028, 4104, 4184, 4264, 4348, 4432, 4516, 4604, 4692, 4784, 4876, 4972,
             5068, 5168, 5268, 5372, 5476, 5584, 5692, 5804, 5916, 6032, 6148, 6268, 6388, 6512, 6640, 6768, 6900,
             7036, 7172, 7312
-        };
+        ];
 
-        private static readonly short[] AcQlookup12 =
-        {
+        private static readonly short[] _acQlookup12 =
+        [
             4, 13, 19, 27, 35, 44, 54, 64, 75, 87, 99, 112, 126, 139, 154, 168, 183, 199, 214, 230, 247, 263, 280,
             297, 314, 331, 349, 366, 384, 402, 420, 438, 456, 475, 493, 511, 530, 548, 567, 586, 604, 623, 642, 660,
             679, 698, 716, 735, 753, 772, 791, 809, 828, 846, 865, 884, 902, 920, 939, 957, 976, 994, 1012, 1030,
@@ -111,15 +111,15 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             13565, 13821, 14093, 14365, 14637, 14925, 15213, 15502, 15806, 16110, 16414, 16734, 17054, 17390, 17726,
             18062, 18414, 18766, 19134, 19502, 19886, 20270, 20670, 21070, 21486, 21902, 22334, 22766, 23214, 23662,
             24126, 24590, 25070, 25551, 26047, 26559, 27071, 27599, 28143, 28687, 29247
-        };
+        ];
 
         public static short DcQuant(int qindex, int delta, BitDepth bitDepth)
         {
             switch (bitDepth)
             {
-                case BitDepth.Bits8: return DcQlookup[Math.Clamp(qindex + delta, 0, MaxQ)];
-                case BitDepth.Bits10: return DcQlookup10[Math.Clamp(qindex + delta, 0, MaxQ)];
-                case BitDepth.Bits12: return DcQlookup12[Math.Clamp(qindex + delta, 0, MaxQ)];
+                case BitDepth.Bits8: return _dcQlookup[Math.Clamp(qindex + delta, 0, MaxQ)];
+                case BitDepth.Bits10: return _dcQlookup10[Math.Clamp(qindex + delta, 0, MaxQ)];
+                case BitDepth.Bits12: return _dcQlookup12[Math.Clamp(qindex + delta, 0, MaxQ)];
                 default:
                     Debug.Assert(false, "bitDepth should be Bits8, Bits10 or Bits12");
                     return -1;
@@ -130,9 +130,9 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
         {
             switch (bitDepth)
             {
-                case BitDepth.Bits8: return AcQlookup[Math.Clamp(qindex + delta, 0, MaxQ)];
-                case BitDepth.Bits10: return AcQlookup10[Math.Clamp(qindex + delta, 0, MaxQ)];
-                case BitDepth.Bits12: return AcQlookup12[Math.Clamp(qindex + delta, 0, MaxQ)];
+                case BitDepth.Bits8: return _acQlookup[Math.Clamp(qindex + delta, 0, MaxQ)];
+                case BitDepth.Bits10: return _acQlookup10[Math.Clamp(qindex + delta, 0, MaxQ)];
+                case BitDepth.Bits12: return _acQlookup12[Math.Clamp(qindex + delta, 0, MaxQ)];
                 default:
                     Debug.Assert(false, "bitDepth should be Bits8, Bits10 or Bits12");
                     return -1;

+ 99 - 119
src/Ryujinx.Graphics.Nvdec.Vp9/ReconIntra.cs

@@ -8,7 +8,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
     internal static class ReconIntra
     {
         public static readonly TxType[] IntraModeToTxTypeLookup =
-        {
+        [
             TxType.DctDct, // DC
             TxType.AdstDct, // V
             TxType.DctAdst, // H
@@ -19,14 +19,14 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             TxType.DctAdst, // D207
             TxType.AdstDct, // D63
             TxType.AdstAdst // TM
-        };
+        ];
 
         private const int NeedLeft = 1 << 1;
         private const int NeedAbove = 1 << 2;
         private const int NeedAboveRight = 1 << 3;
 
-        private static ReadOnlySpan<byte> ExtendModes => new byte[]
-        {
+        private static ReadOnlySpan<byte> ExtendModes =>
+        [
             NeedAbove | NeedLeft, // DC
             NeedAbove, // V
             NeedLeft, // H
@@ -37,123 +37,103 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             NeedLeft, // D207
             NeedAboveRight, // D63
             NeedLeft | NeedAbove // TM
-        };
+        ];
 
         private unsafe delegate void IntraPredFn(byte* dst, int stride, byte* above, byte* left);
 
-        private static readonly unsafe IntraPredFn[][] Pred =
-        {
-            new IntraPredFn[] { null, null, null, null },
-            new IntraPredFn[] { VPredictor4x4, VPredictor8x8, VPredictor16x16, VPredictor32x32 },
-            new IntraPredFn[] { HPredictor4x4, HPredictor8x8, HPredictor16x16, HPredictor32x32 },
-            new IntraPredFn[] { D45Predictor4x4, D45Predictor8x8, D45Predictor16x16, D45Predictor32x32 },
-            new IntraPredFn[] { D135Predictor4x4, D135Predictor8x8, D135Predictor16x16, D135Predictor32x32 },
-            new IntraPredFn[] { D117Predictor4x4, D117Predictor8x8, D117Predictor16x16, D117Predictor32x32 },
-            new IntraPredFn[] { D153Predictor4x4, D153Predictor8x8, D153Predictor16x16, D153Predictor32x32 },
-            new IntraPredFn[] { D207Predictor4x4, D207Predictor8x8, D207Predictor16x16, D207Predictor32x32 },
-            new IntraPredFn[] { D63Predictor4x4, D63Predictor8x8, D63Predictor16x16, D63Predictor32x32 },
-            new IntraPredFn[] { TmPredictor4x4, TmPredictor8x8, TmPredictor16x16, TmPredictor32x32 }
-        };
-
-        private static readonly unsafe IntraPredFn[][][] DcPred =
-        {
-            new[]
-            {
-                new IntraPredFn[]
-                {
-                    Dc128Predictor4x4, Dc128Predictor8x8, Dc128Predictor16x16, Dc128Predictor32x32
-                },
-                new IntraPredFn[]
-                {
-                    DcTopPredictor4x4, DcTopPredictor8x8, DcTopPredictor16x16, DcTopPredictor32x32
-                }
-            },
-            new[]
-            {
-                new IntraPredFn[]
-                {
-                    DcLeftPredictor4x4, DcLeftPredictor8x8, DcLeftPredictor16x16, DcLeftPredictor32x32
-                },
-                new IntraPredFn[] { DcPredictor4x4, DcPredictor8x8, DcPredictor16x16, DcPredictor32x32 }
-            }
-        };
+        private static readonly unsafe IntraPredFn[][] _pred =
+        [
+            [null, null, null, null],
+            [VPredictor4X4, VPredictor8X8, VPredictor16X16, VPredictor32X32],
+            [HPredictor4X4, HPredictor8X8, HPredictor16X16, HPredictor32X32],
+            [D45Predictor4X4, D45Predictor8X8, D45Predictor16X16, D45Predictor32X32],
+            [D135Predictor4X4, D135Predictor8X8, D135Predictor16X16, D135Predictor32X32],
+            [D117Predictor4X4, D117Predictor8X8, D117Predictor16X16, D117Predictor32X32],
+            [D153Predictor4X4, D153Predictor8X8, D153Predictor16X16, D153Predictor32X32],
+            [D207Predictor4X4, D207Predictor8X8, D207Predictor16X16, D207Predictor32X32],
+            [D63Predictor4X4, D63Predictor8X8, D63Predictor16X16, D63Predictor32X32],
+            [TmPredictor4X4, TmPredictor8X8, TmPredictor16X16, TmPredictor32X32]
+        ];
+
+        private static readonly unsafe IntraPredFn[][][] _dcPred =
+        [
+            [
+                [
+                    Dc128Predictor4X4, Dc128Predictor8X8, Dc128Predictor16X16, Dc128Predictor32X32
+                ],
+                [
+                    DcTopPredictor4X4, DcTopPredictor8X8, DcTopPredictor16X16, DcTopPredictor32X32
+                ]
+            ],
+            [
+                [
+                    DcLeftPredictor4X4, DcLeftPredictor8X8, DcLeftPredictor16X16, DcLeftPredictor32X32
+                ],
+                [DcPredictor4X4, DcPredictor8X8, DcPredictor16X16, DcPredictor32X32]
+            ]
+        ];
 
         private unsafe delegate void IntraHighPredFn(ushort* dst, int stride, ushort* above, ushort* left, int bd);
 
-        private static readonly unsafe IntraHighPredFn[][] PredHigh =
-        {
-            new IntraHighPredFn[] { null, null, null, null },
-            new IntraHighPredFn[]
-            {
-                HighbdVPredictor4x4, HighbdVPredictor8x8, HighbdVPredictor16x16, HighbdVPredictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdHPredictor4x4, HighbdHPredictor8x8, HighbdHPredictor16x16, HighbdHPredictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdD45Predictor4x4, HighbdD45Predictor8x8, HighbdD45Predictor16x16, HighbdD45Predictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdD135Predictor4x4, HighbdD135Predictor8x8, HighbdD135Predictor16x16,
-                HighbdD135Predictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdD117Predictor4x4, HighbdD117Predictor8x8, HighbdD117Predictor16x16,
-                HighbdD117Predictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdD153Predictor4x4, HighbdD153Predictor8x8, HighbdD153Predictor16x16,
-                HighbdD153Predictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdD207Predictor4x4, HighbdD207Predictor8x8, HighbdD207Predictor16x16,
-                HighbdD207Predictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdD63Predictor4x4, HighbdD63Predictor8x8, HighbdD63Predictor16x16, HighbdD63Predictor32x32
-            },
-            new IntraHighPredFn[]
-            {
-                HighbdTmPredictor4x4, HighbdTmPredictor8x8, HighbdTmPredictor16x16, HighbdTmPredictor32x32
-            }
-        };
-
-        private static readonly unsafe IntraHighPredFn[][][] DcPredHigh =
-        {
-            new[]
-            {
-                new IntraHighPredFn[]
-                {
-                    HighbdDc128Predictor4x4, HighbdDc128Predictor8x8, HighbdDc128Predictor16x16,
-                    HighbdDc128Predictor32x32
-                },
-                new IntraHighPredFn[]
-                {
-                    HighbdDcTopPredictor4x4, HighbdDcTopPredictor8x8, HighbdDcTopPredictor16x16,
-                    HighbdDcTopPredictor32x32
-                }
-            },
-            new[]
-            {
-                new IntraHighPredFn[]
-                {
-                    HighbdDcLeftPredictor4x4, HighbdDcLeftPredictor8x8, HighbdDcLeftPredictor16x16,
-                    HighbdDcLeftPredictor32x32
-                },
-                new IntraHighPredFn[]
-                {
-                    HighbdDcPredictor4x4, HighbdDcPredictor8x8, HighbdDcPredictor16x16,
-                    HighbdDcPredictor32x32
-                }
-            }
-        };
+        private static readonly unsafe IntraHighPredFn[][] _predHigh =
+        [
+            [null, null, null, null],
+            [
+                HighbdVPredictor4X4, HighbdVPredictor8X8, HighbdVPredictor16X16, HighbdVPredictor32X32
+            ],
+            [
+                HighbdHPredictor4X4, HighbdHPredictor8X8, HighbdHPredictor16X16, HighbdHPredictor32X32
+            ],
+            [
+                HighbdD45Predictor4X4, HighbdD45Predictor8X8, HighbdD45Predictor16X16, HighbdD45Predictor32X32
+            ],
+            [
+                HighbdD135Predictor4X4, HighbdD135Predictor8X8, HighbdD135Predictor16X16,
+                HighbdD135Predictor32X32
+            ],
+            [
+                HighbdD117Predictor4X4, HighbdD117Predictor8X8, HighbdD117Predictor16X16,
+                HighbdD117Predictor32X32
+            ],
+            [
+                HighbdD153Predictor4X4, HighbdD153Predictor8X8, HighbdD153Predictor16X16,
+                HighbdD153Predictor32X32
+            ],
+            [
+                HighbdD207Predictor4X4, HighbdD207Predictor8X8, HighbdD207Predictor16X16,
+                HighbdD207Predictor32X32
+            ],
+            [
+                HighbdD63Predictor4X4, HighbdD63Predictor8X8, HighbdD63Predictor16X16, HighbdD63Predictor32X32
+            ],
+            [
+                HighbdTmPredictor4X4, HighbdTmPredictor8X8, HighbdTmPredictor16X16, HighbdTmPredictor32X32
+            ]
+        ];
+
+        private static readonly unsafe IntraHighPredFn[][][] _dcPredHigh =
+        [
+            [
+                [
+                    HighbdDc128Predictor4X4, HighbdDc128Predictor8X8, HighbdDc128Predictor16X16,
+                    HighbdDc128Predictor32X32
+                ],
+                [
+                    HighbdDcTopPredictor4X4, HighbdDcTopPredictor8X8, HighbdDcTopPredictor16X16,
+                    HighbdDcTopPredictor32X32
+                ]
+            ],
+            [
+                [
+                    HighbdDcLeftPredictor4X4, HighbdDcLeftPredictor8X8, HighbdDcLeftPredictor16X16,
+                    HighbdDcLeftPredictor32X32
+                ],
+                [
+                    HighbdDcPredictor4X4, HighbdDcPredictor8X8, HighbdDcPredictor16X16,
+                    HighbdDcPredictor32X32
+                ]
+            ]
+        ];
 
         private static unsafe void BuildIntraPredictorsHigh(
             ref MacroBlockD xd,
@@ -371,11 +351,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             // Predict
             if (mode == PredictionMode.DcPred)
             {
-                DcPredHigh[leftAvailable][upAvailable][(int)txSize](dst, dstStride, constAboveRow, leftCol, xd.Bd);
+                _dcPredHigh[leftAvailable][upAvailable][(int)txSize](dst, dstStride, constAboveRow, leftCol, xd.Bd);
             }
             else
             {
-                PredHigh[(int)mode][(int)txSize](dst, dstStride, constAboveRow, leftCol, xd.Bd);
+                _predHigh[(int)mode][(int)txSize](dst, dstStride, constAboveRow, leftCol, xd.Bd);
             }
         }
 
@@ -588,11 +568,11 @@ namespace Ryujinx.Graphics.Nvdec.Vp9
             // Predict
             if (mode == PredictionMode.DcPred)
             {
-                DcPred[leftAvailable][upAvailable][(int)txSize](dst, dstStride, constAboveRow, leftCol);
+                _dcPred[leftAvailable][upAvailable][(int)txSize](dst, dstStride, constAboveRow, leftCol);
             }
             else
             {
-                Pred[(int)mode][(int)txSize](dst, dstStride, constAboveRow, leftCol);
+                _pred[(int)mode][(int)txSize](dst, dstStride, constAboveRow, leftCol);
             }
         }
 

+ 13 - 13
src/Ryujinx.Graphics.Nvdec.Vp9/Types/BlockSize.cs

@@ -2,19 +2,19 @@
 {
     internal enum BlockSize
     {
-        Block4x4,
-        Block4x8,
-        Block8x4,
-        Block8x8,
-        Block8x16,
-        Block16x8,
-        Block16x16,
-        Block16x32,
-        Block32x16,
-        Block32x32,
-        Block32x64,
-        Block64x32,
-        Block64x64,
+        Block4X4,
+        Block4X8,
+        Block8X4,
+        Block8X8,
+        Block8X16,
+        Block16X8,
+        Block16X16,
+        Block16X32,
+        Block32X16,
+        Block32X32,
+        Block32X64,
+        Block64X32,
+        Block64X64,
         BlockSizes,
         BlockInvalid = BlockSizes
     }

+ 2 - 2
src/Ryujinx.Graphics.Nvdec.Vp9/Types/LoopFilterMask.cs

@@ -15,10 +15,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
     {
         public Array4<ulong> LeftY;
         public Array4<ulong> AboveY;
-        public ulong Int4x4Y;
+        public ulong Int4X4Y;
         public Array4<ushort> LeftUv;
         public Array4<ushort> AboveUv;
-        public ushort Int4x4Uv;
+        public ushort Int4X4Uv;
         public Array64<byte> LflY;
     }
 }

+ 8 - 8
src/Ryujinx.Graphics.Nvdec.Vp9/Types/ModeInfo.cs

@@ -29,12 +29,12 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
         public PredictionMode GetYMode(int block)
         {
-            return SbType < BlockSize.Block8x8 ? Bmi[block].Mode : Mode;
+            return SbType < BlockSize.Block8X8 ? Bmi[block].Mode : Mode;
         }
 
         public TxSize GetUvTxSize(ref MacroBlockDPlane pd)
         {
-            Debug.Assert(SbType < BlockSize.Block8x8 ||
+            Debug.Assert(SbType < BlockSize.Block8X8 ||
                          Luts.SsSizeLookup[(int)SbType][pd.SubsamplingX][pd.SubsamplingY] != BlockSize.BlockInvalid);
             return Luts.UvTxsizeLookup[(int)SbType][(int)TxSize][pd.SubsamplingX][pd.SubsamplingY];
         }
@@ -49,17 +49,17 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
             return RefFrame[1] > Constants.IntraFrame;
         }
 
-        private static readonly int[][] IdxNColumnToSubblock =
-        {
-            new[] { 1, 2 }, new[] { 1, 3 }, new[] { 3, 2 }, new[] { 3, 3 }
-        };
+        private static readonly int[][] _idxNColumnToSubblock =
+        [
+            [1, 2], [1, 3], [3, 2], [3, 3]
+        ];
 
         // This function returns either the appropriate sub block or block's mv
         // on whether the block_size < 8x8 and we have check_sub_blocks set.
         public Mv GetSubBlockMv(int whichMv, int searchCol, int blockIdx)
         {
-            return blockIdx >= 0 && SbType < BlockSize.Block8x8
-                ? Bmi[IdxNColumnToSubblock[blockIdx][searchCol == 0 ? 1 : 0]].Mv[whichMv]
+            return blockIdx >= 0 && SbType < BlockSize.Block8X8
+                ? Bmi[_idxNColumnToSubblock[blockIdx][searchCol == 0 ? 1 : 0]].Mv[whichMv]
                 : Mv[whichMv];
         }
 

+ 5 - 5
src/Ryujinx.Graphics.Nvdec.Vp9/Types/Mv.cs

@@ -10,8 +10,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
         public short Row;
         public short Col;
 
-        private static ReadOnlySpan<byte> LogInBase2 => new byte[]
-        {
+        private static ReadOnlySpan<byte> LogInBase2 =>
+        [
             0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5,
             5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
             6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
@@ -42,12 +42,12 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
             9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
             9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
             9, 9, 9, 9, 9, 9, 9, 9, 9, 10
-        };
+        ];
 
         public bool UseHp()
         {
-            const int kMvRefThresh = 64; // Threshold for use of high-precision 1/8 mv
-            return Math.Abs(Row) < kMvRefThresh && Math.Abs(Col) < kMvRefThresh;
+            const int KMvRefThresh = 64; // Threshold for use of high-precision 1/8 mv
+            return Math.Abs(Row) < KMvRefThresh && Math.Abs(Col) < KMvRefThresh;
         }
 
         public static bool JointVertical(MvJointType type)

+ 80 - 91
src/Ryujinx.Graphics.Nvdec.Vp9/Types/ScaleFactors.cs

@@ -38,96 +38,85 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
             int h,
             int bd);
 
-        private static readonly unsafe ConvolveFn[][][] PredictX16Y16 =
-        {
-            new[]
-            {
-                new ConvolveFn[] { ConvolveCopy, ConvolveAvg },
-                new ConvolveFn[] { Convolve8Vert, Convolve8AvgVert }
-            },
-            new[]
-            {
-                new ConvolveFn[] { Convolve8Horiz, Convolve8AvgHoriz },
-                new ConvolveFn[] { Convolve8, Convolve8Avg }
-            }
-        };
+        private static readonly unsafe ConvolveFn[][][] _predictX16Y16 =
+        [
+            [
+                [ConvolveCopy, ConvolveAvg],
+                [Convolve8Vert, Convolve8AvgVert]
+            ],
+            [
+                [Convolve8Horiz, Convolve8AvgHoriz],
+                [Convolve8, Convolve8Avg]
+            ]
+        ];
 
-        private static readonly unsafe ConvolveFn[][][] PredictX16 =
-        {
-            new[]
-            {
-                new ConvolveFn[] { ScaledVert, ScaledAvgVert }, new ConvolveFn[] { ScaledVert, ScaledAvgVert }
-            },
-            new[] { new ConvolveFn[] { Scaled2D, ScaledAvg2D }, new ConvolveFn[] { Scaled2D, ScaledAvg2D } }
-        };
+        private static readonly unsafe ConvolveFn[][][] _predictX16 =
+        [
+            [
+                [ScaledVert, ScaledAvgVert], [ScaledVert, ScaledAvgVert]
+            ],
+            [[Scaled2D, ScaledAvg2D], [Scaled2D, ScaledAvg2D]]
+        ];
 
-        private static readonly unsafe ConvolveFn[][][] PredictY16 =
-        {
-            new[] { new ConvolveFn[] { ScaledHoriz, ScaledAvgHoriz }, new ConvolveFn[] { Scaled2D, ScaledAvg2D } },
-            new[] { new ConvolveFn[] { ScaledHoriz, ScaledAvgHoriz }, new ConvolveFn[] { Scaled2D, ScaledAvg2D } }
-        };
+        private static readonly unsafe ConvolveFn[][][] _predictY16 =
+        [
+            [[ScaledHoriz, ScaledAvgHoriz], [Scaled2D, ScaledAvg2D]],
+            [[ScaledHoriz, ScaledAvgHoriz], [Scaled2D, ScaledAvg2D]]
+        ];
 
-        private static readonly unsafe ConvolveFn[][][] Predict =
-        {
-            new[] { new ConvolveFn[] { Scaled2D, ScaledAvg2D }, new ConvolveFn[] { Scaled2D, ScaledAvg2D } },
-            new[] { new ConvolveFn[] { Scaled2D, ScaledAvg2D }, new ConvolveFn[] { Scaled2D, ScaledAvg2D } }
-        };
+        private static readonly unsafe ConvolveFn[][][] _predict =
+        [
+            [[Scaled2D, ScaledAvg2D], [Scaled2D, ScaledAvg2D]],
+            [[Scaled2D, ScaledAvg2D], [Scaled2D, ScaledAvg2D]]
+        ];
 
-        private static readonly unsafe HighbdConvolveFn[][][] HighbdPredictX16Y16 =
-        {
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolveCopy, HighbdConvolveAvg },
-                new HighbdConvolveFn[] { HighbdConvolve8Vert, HighbdConvolve8AvgVert }
-            },
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8Horiz, HighbdConvolve8AvgHoriz },
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg }
-            }
-        };
+        private static readonly unsafe HighbdConvolveFn[][][] _highbdPredictX16Y16 =
+        [
+            [
+                [HighbdConvolveCopy, HighbdConvolveAvg],
+                [HighbdConvolve8Vert, HighbdConvolve8AvgVert]
+            ],
+            [
+                [HighbdConvolve8Horiz, HighbdConvolve8AvgHoriz],
+                [HighbdConvolve8, HighbdConvolve8Avg]
+            ]
+        ];
 
-        private static readonly unsafe HighbdConvolveFn[][][] HighbdPredictX16 =
-        {
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8Vert, HighbdConvolve8AvgVert },
-                new HighbdConvolveFn[] { HighbdConvolve8Vert, HighbdConvolve8AvgVert }
-            },
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg },
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg }
-            }
-        };
+        private static readonly unsafe HighbdConvolveFn[][][] _highbdPredictX16 =
+        [
+            [
+                [HighbdConvolve8Vert, HighbdConvolve8AvgVert],
+                [HighbdConvolve8Vert, HighbdConvolve8AvgVert]
+            ],
+            [
+                [HighbdConvolve8, HighbdConvolve8Avg],
+                [HighbdConvolve8, HighbdConvolve8Avg]
+            ]
+        ];
 
-        private static readonly unsafe HighbdConvolveFn[][][] HighbdPredictY16 =
-        {
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8Horiz, HighbdConvolve8AvgHoriz },
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg }
-            },
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8Horiz, HighbdConvolve8AvgHoriz },
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg }
-            }
-        };
+        private static readonly unsafe HighbdConvolveFn[][][] _highbdPredictY16 =
+        [
+            [
+                [HighbdConvolve8Horiz, HighbdConvolve8AvgHoriz],
+                [HighbdConvolve8, HighbdConvolve8Avg]
+            ],
+            [
+                [HighbdConvolve8Horiz, HighbdConvolve8AvgHoriz],
+                [HighbdConvolve8, HighbdConvolve8Avg]
+            ]
+        ];
 
-        private static readonly unsafe HighbdConvolveFn[][][] HighbdPredict =
-        {
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg },
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg }
-            },
-            new[]
-            {
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg },
-                new HighbdConvolveFn[] { HighbdConvolve8, HighbdConvolve8Avg }
-            }
-        };
+        private static readonly unsafe HighbdConvolveFn[][][] _highbdPredict =
+        [
+            [
+                [HighbdConvolve8, HighbdConvolve8Avg],
+                [HighbdConvolve8, HighbdConvolve8Avg]
+            ],
+            [
+                [HighbdConvolve8, HighbdConvolve8Avg],
+                [HighbdConvolve8, HighbdConvolve8Avg]
+            ]
+        ];
 
         public int XScaleFp; // Horizontal fixed point scale factor
         public int YScaleFp; // Vertical fixed point scale factor
@@ -166,13 +155,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 if (YStepQ4 == 16)
                 {
                     // No scaling in either direction.
-                    PredictX16Y16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
+                    _predictX16Y16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
                         h);
                 }
                 else
                 {
                     // No scaling in x direction. Must always scale in the y direction.
-                    PredictX16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
+                    _predictX16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
                         h);
                 }
             }
@@ -181,13 +170,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 if (YStepQ4 == 16)
                 {
                     // No scaling in the y direction. Must always scale in the x direction.
-                    PredictY16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
+                    _predictY16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
                         h);
                 }
                 else
                 {
                     // Must always scale in both directions.
-                    Predict[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w, h);
+                    _predict[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w, h);
                 }
             }
         }
@@ -215,13 +204,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 if (YStepQ4 == 16)
                 {
                     // No scaling in either direction.
-                    HighbdPredictX16Y16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY,
+                    _highbdPredictX16Y16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY,
                         ys, w, h, bd);
                 }
                 else
                 {
                     // No scaling in x direction. Must always scale in the y direction.
-                    HighbdPredictX16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys,
+                    _highbdPredictX16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys,
                         w, h, bd);
                 }
             }
@@ -230,13 +219,13 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 if (YStepQ4 == 16)
                 {
                     // No scaling in the y direction. Must always scale in the x direction.
-                    HighbdPredictY16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys,
+                    _highbdPredictY16[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys,
                         w, h, bd);
                 }
                 else
                 {
                     // Must always scale in both directions.
-                    HighbdPredict[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
+                    _highbdPredict[horiz][vert][avg](src, srcStride, dst, dstStride, kernel, subpelX, xs, subpelY, ys, w,
                         h, bd);
                 }
             }

+ 7 - 7
src/Ryujinx.Graphics.Nvdec.Vp9/Types/Segmentation.cs

@@ -16,8 +16,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
         public const int PredictionProbs = 3;
 
-        private static readonly int[] SegFeatureDataSigned = { 1, 1, 0, 0 };
-        private static readonly int[] SegFeatureDataMax = { QuantCommon.MaxQ, Vp9.LoopFilter.MaxLoopFilter, 3, 0 };
+        private static readonly int[] _segFeatureDataSigned = [1, 1, 0, 0];
+        private static readonly int[] _segFeatureDataMax = [QuantCommon.MaxQ, Vp9.LoopFilter.MaxLoopFilter, 3, 0];
 
         public bool Enabled;
         public bool UpdateMap;
@@ -48,21 +48,21 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
         internal static int FeatureDataMax(SegLvlFeatures featureId)
         {
-            return SegFeatureDataMax[(int)featureId];
+            return _segFeatureDataMax[(int)featureId];
         }
 
         internal static int IsSegFeatureSigned(SegLvlFeatures featureId)
         {
-            return SegFeatureDataSigned[(int)featureId];
+            return _segFeatureDataSigned[(int)featureId];
         }
 
         internal void SetSegData(int segmentId, SegLvlFeatures featureId, int segData)
         {
-            Debug.Assert(segData <= SegFeatureDataMax[(int)featureId]);
+            Debug.Assert(segData <= _segFeatureDataMax[(int)featureId]);
             if (segData < 0)
             {
-                Debug.Assert(SegFeatureDataSigned[(int)featureId] != 0);
-                Debug.Assert(-segData <= SegFeatureDataMax[(int)featureId]);
+                Debug.Assert(_segFeatureDataSigned[(int)featureId] != 0);
+                Debug.Assert(-segData <= _segFeatureDataMax[(int)featureId]);
             }
 
             FeatureData[segmentId][(int)featureId] = (short)segData;

+ 17 - 17
src/Ryujinx.Graphics.Nvdec.Vp9/Types/Surface.cs

@@ -65,23 +65,23 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
         public Surface(int width, int height)
         {
-            const int border = 32;
-            const int ssX = 1;
-            const int ssY = 1;
-            const bool highbd = false;
+            const int Border = 32;
+            const int SsX = 1;
+            const int SsY = 1;
+            const bool Highbd = false;
 
             int alignedWidth = (width + 7) & ~7;
             int alignedHeight = (height + 7) & ~7;
-            int yStride = (alignedWidth + (2 * border) + 31) & ~31;
-            int yplaneSize = (alignedHeight + (2 * border)) * yStride;
-            int uvWidth = alignedWidth >> ssX;
-            int uvHeight = alignedHeight >> ssY;
-            int uvStride = yStride >> ssX;
-            int uvBorderW = border >> ssX;
-            int uvBorderH = border >> ssY;
+            int yStride = (alignedWidth + (2 * Border) + 31) & ~31;
+            int yplaneSize = (alignedHeight + (2 * Border)) * yStride;
+            int uvWidth = alignedWidth >> SsX;
+            int uvHeight = alignedHeight >> SsY;
+            int uvStride = yStride >> SsX;
+            int uvBorderW = Border >> SsX;
+            int uvBorderH = Border >> SsY;
             int uvplaneSize = (uvHeight + (2 * uvBorderH)) * uvStride;
 
-            int frameSize = (highbd ? 2 : 1) * (yplaneSize + (2 * uvplaneSize));
+            int frameSize = (Highbd ? 2 : 1) * (yplaneSize + (2 * uvplaneSize));
 
             nint pointer = Marshal.AllocHGlobal(frameSize);
             _pointer = pointer;
@@ -90,8 +90,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
             AlignedWidth = alignedWidth;
             AlignedHeight = alignedHeight;
             Stride = yStride;
-            UvWidth = (width + ssX) >> ssX;
-            UvHeight = (height + ssY) >> ssY;
+            UvWidth = (width + SsX) >> SsX;
+            UvHeight = (height + SsY) >> SsY;
             UvAlignedWidth = uvWidth;
             UvAlignedHeight = uvHeight;
             UvStride = uvStride;
@@ -101,7 +101,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 return new ArrayPtr<byte>(pointer + start + border, size - border);
             }
 
-            YBuffer = NewPlane(0, yplaneSize, (border * yStride) + border);
+            YBuffer = NewPlane(0, yplaneSize, (Border * yStride) + Border);
             UBuffer = NewPlane(yplaneSize, uvplaneSize, (uvBorderH * uvStride) + uvBorderW);
             VBuffer = NewPlane(yplaneSize + uvplaneSize, uvplaneSize, (uvBorderH * uvStride) + uvBorderW);
         }
@@ -146,8 +146,8 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
             if (cb != null)
             {
-                const int alignAddrExtraSize = 31;
-                ulong externalFrameSize = frameSize + alignAddrExtraSize;
+                const int AlignAddrExtraSize = 31;
+                ulong externalFrameSize = frameSize + AlignAddrExtraSize;
 
                 Debug.Assert(!fb.IsNull);
 

+ 4 - 4
src/Ryujinx.Graphics.Nvdec.Vp9/Types/TxMode.cs

@@ -2,10 +2,10 @@
 {
     public enum TxMode
     {
-        Only4x4, // Only 4x4 transform used
-        Allow8x8, // Allow block transform size up to 8x8
-        Allow16x16, // Allow block transform size up to 16x16
-        Allow32x32, // Allow block transform size up to 32x32
+        Only4X4, // Only 4x4 transform used
+        Allow8X8, // Allow block transform size up to 8x8
+        Allow16X16, // Allow block transform size up to 16x16
+        Allow32X32, // Allow block transform size up to 32x32
         TxModeSelect, // Transform specified for each block
         TxModes
     }

+ 4 - 4
src/Ryujinx.Graphics.Nvdec.Vp9/Types/TxSize.cs

@@ -2,10 +2,10 @@
 {
     public enum TxSize
     {
-        Tx4x4, // 4x4 transform
-        Tx8x8, // 8x8 transform
-        Tx16x16, // 16x16 transform
-        Tx32x32, // 32x32 transform
+        Tx4X4, // 4x4 transform
+        Tx8X8, // 8x8 transform
+        Tx16X16, // 16x16 transform
+        Tx32X32, // 32x32 transform
         TxSizes
     }
 }

+ 14 - 14
src/Ryujinx.Graphics.Nvdec.Vp9/Types/Vp9Common.cs

@@ -845,30 +845,30 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
             if (TxMode == TxMode.TxModeSelect)
             {
-                Array1<Array2<uint>> branchCt8x8P = new();
-                Array2<Array2<uint>> branchCt16x16P = new();
-                Array3<Array2<uint>> branchCt32x32P = new();
+                Array1<Array2<uint>> branchCt8X8P = new();
+                Array2<Array2<uint>> branchCt16X16P = new();
+                Array3<Array2<uint>> branchCt32X32P = new();
 
                 for (int i = 0; i < EntropyMode.TxSizeContexts; ++i)
                 {
-                    EntropyMode.TxCountsToBranchCounts8x8(counts.Tx8x8[i].AsSpan(), ref branchCt8x8P);
+                    EntropyMode.TxCountsToBranchCounts8X8(counts.Tx8x8[i].AsSpan(), ref branchCt8X8P);
                     for (int j = 0; j < (int)TxSize.TxSizes - 3; ++j)
                     {
-                        fc.Tx8x8Prob[i][j] = Prob.ModeMvMergeProbs(preFc.Tx8x8Prob[i][j], ref branchCt8x8P[j]);
+                        fc.Tx8x8Prob[i][j] = Prob.ModeMvMergeProbs(preFc.Tx8x8Prob[i][j], ref branchCt8X8P[j]);
                     }
 
-                    EntropyMode.TxCountsToBranchCounts16x16(counts.Tx16x16[i].AsSpan(), ref branchCt16x16P);
+                    EntropyMode.TxCountsToBranchCounts16X16(counts.Tx16x16[i].AsSpan(), ref branchCt16X16P);
                     for (int j = 0; j < (int)TxSize.TxSizes - 2; ++j)
                     {
                         fc.Tx16x16Prob[i][j] =
-                            Prob.ModeMvMergeProbs(preFc.Tx16x16Prob[i][j], ref branchCt16x16P[j]);
+                            Prob.ModeMvMergeProbs(preFc.Tx16x16Prob[i][j], ref branchCt16X16P[j]);
                     }
 
-                    EntropyMode.TxCountsToBranchCounts32x32(counts.Tx32x32[i].AsSpan(), ref branchCt32x32P);
+                    EntropyMode.TxCountsToBranchCounts32X32(counts.Tx32x32[i].AsSpan(), ref branchCt32X32P);
                     for (int j = 0; j < (int)TxSize.TxSizes - 1; ++j)
                     {
                         fc.Tx32x32Prob[i][j] =
-                            Prob.ModeMvMergeProbs(preFc.Tx32x32Prob[i][j], ref branchCt32x32P[j]);
+                            Prob.ModeMvMergeProbs(preFc.Tx32x32Prob[i][j], ref branchCt32X32P[j]);
                     }
                 }
             }
@@ -900,7 +900,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 countSat = Entropy.CoefCountSat;
             }
 
-            for (t = (int)TxSize.Tx4x4; t <= (int)TxSize.Tx32x32; t++)
+            for (t = (int)TxSize.Tx4X4; t <= (int)TxSize.Tx32X32; t++)
             {
                 AdaptCoefProbs(t, countSat, updateFactor);
             }
@@ -990,10 +990,10 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
 
         public void DefaultCoefProbs()
         {
-            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx4x4], Entropy.DefaultCoefProbs4x4);
-            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx8x8], Entropy.DefaultCoefProbs8x8);
-            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx16x16], Entropy.DefaultCoefProbs16x16);
-            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx32x32], Entropy.DefaultCoefProbs32x32);
+            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx4X4], Entropy.DefaultCoefProbs4X4);
+            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx8X8], Entropy.DefaultCoefProbs8X8);
+            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx16X16], Entropy.DefaultCoefProbs16X16);
+            Entropy.CopyProbs(ref Fc.Value.CoefProbs[(int)TxSize.Tx32X32], Entropy.DefaultCoefProbs32X32);
         }
     }
 }

+ 24 - 24
src/Ryujinx.Graphics.Nvdec.Vp9/Types/Vp9Decoder.cs

@@ -62,38 +62,38 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                 }
             }
 
-            byte[][] KfPartitionProbs =
-            {
+            byte[][] kfPartitionProbs =
+            [
                 // 8x8 . 4x4
-                new byte[] { 158, 97, 94 }, // a/l both not split
-                new byte[] { 93, 24, 99 }, // a split, l not split
-                new byte[] { 85, 119, 44 }, // l split, a not split
-                new byte[] { 62, 59, 67 }, // a/l both split
+                [158, 97, 94], // a/l both not split
+                [93, 24, 99], // a split, l not split
+                [85, 119, 44], // l split, a not split
+                [62, 59, 67], // a/l both split
 
                 // 16x16 . 8x8
-                new byte[] { 149, 53, 53 }, // a/l both not split
-                new byte[] { 94, 20, 48 }, // a split, l not split
-                new byte[] { 83, 53, 24 }, // l split, a not split
-                new byte[] { 52, 18, 18 }, // a/l both split
+                [149, 53, 53], // a/l both not split
+                [94, 20, 48], // a split, l not split
+                [83, 53, 24], // l split, a not split
+                [52, 18, 18], // a/l both split
 
                 // 32x32 . 16x16
-                new byte[] { 150, 40, 39 }, // a/l both not split
-                new byte[] { 78, 12, 26 }, // a split, l not split
-                new byte[] { 67, 33, 11 }, // l split, a not split
-                new byte[] { 24, 7, 5 }, // a/l both split
+                [150, 40, 39], // a/l both not split
+                [78, 12, 26], // a split, l not split
+                [67, 33, 11], // l split, a not split
+                [24, 7, 5], // a/l both split
 
                 // 64x64 . 32x32
-                new byte[] { 174, 35, 49 }, // a/l both not split
-                new byte[] { 68, 11, 27 }, // a split, l not split
-                new byte[] { 57, 15, 9 }, // l split, a not split
-                new byte[] { 12, 3, 3 } // a/l both split
-            };
+                [174, 35, 49], // a/l both not split
+                [68, 11, 27], // a split, l not split
+                [57, 15, 9], // l split, a not split
+                [12, 3, 3] // a/l both split
+            ];
 
-            for (int i = 0; i < KfPartitionProbs.Length; i++)
+            for (int i = 0; i < kfPartitionProbs.Length; i++)
             {
-                for (int j = 0; j < KfPartitionProbs[i].Length; j++)
+                for (int j = 0; j < kfPartitionProbs[i].Length; j++)
                 {
-                    cm.Fc.Value.KfPartitionProb[i][j] = KfPartitionProbs[i][j];
+                    cm.Fc.Value.KfPartitionProb[i][j] = kfPartitionProbs[i][j];
                 }
             }
 
@@ -281,7 +281,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
             Array8<uint> frameSizes = new();
             int frameCount = 0;
 
-            res = Types.Decoder.ParseSuperframeIndex(data, (ulong)data.Length, ref frameSizes, out frameCount);
+            res = Decoder.ParseSuperframeIndex(data, (ulong)data.Length, ref frameSizes, out frameCount);
             if (res != CodecErr.Ok)
             {
                 return res;
@@ -322,7 +322,7 @@ namespace Ryujinx.Graphics.Nvdec.Vp9.Types
                     // Account for suboptimal termination by the encoder.
                     while (dataStart.Length != 0)
                     {
-                        byte marker = Types.Decoder.ReadMarker(dataStart);
+                        byte marker = Decoder.ReadMarker(dataStart);
                         if (marker != 0)
                         {
                             break;

Some files were not shown because too many files changed in this diff