CompressedMethod.cs 1.2 KB

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