/ src / Ryujinx.Graphics.Gpu / Engine / GPFifo / CompressedMethod.cs
CompressedMethod.cs
 1  // This file was auto-generated from NVIDIA official Maxwell definitions.
 2  
 3  namespace Ryujinx.Graphics.Gpu.Engine.GPFifo
 4  {
 5      enum TertOp
 6      {
 7          Grp0IncMethod = 0,
 8          Grp0SetSubDevMask = 1,
 9          Grp0StoreSubDevMask = 2,
10          Grp0UseSubDevMask = 3,
11          Grp2NonIncMethod = Grp0IncMethod,
12      }
13  
14      enum SecOp
15      {
16          Grp0UseTert = 0,
17          IncMethod = 1,
18          Grp2UseTert = 2,
19          NonIncMethod = 3,
20          ImmdDataMethod = 4,
21          OneInc = 5,
22          Reserved6 = 6,
23          EndPbSegment = 7,
24      }
25  
26      struct CompressedMethod
27      {
28  #pragma warning disable CS0649 // Field is never assigned to
29          public uint Method;
30  #pragma warning restore CS0649
31          public readonly int MethodAddressOld => (int)((Method >> 2) & 0x7FF);
32          public readonly int MethodAddress => (int)(Method & 0xFFF);
33          public readonly int SubdeviceMask => (int)((Method >> 4) & 0xFFF);
34          public readonly int MethodSubchannel => (int)((Method >> 13) & 0x7);
35          public readonly TertOp TertOp => (TertOp)((Method >> 16) & 0x3);
36          public readonly int MethodCountOld => (int)((Method >> 18) & 0x7FF);
37          public readonly int MethodCount => (int)((Method >> 16) & 0x1FFF);
38          public readonly int ImmdData => (int)((Method >> 16) & 0x1FFF);
39          public readonly SecOp SecOp => (SecOp)((Method >> 29) & 0x7);
40      }
41  }