InlineToMemoryClassState.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. // This file was auto-generated from NVIDIA official Maxwell definitions.
  2. namespace Ryujinx.Graphics.Gpu.Engine.InlineToMemory
  3. {
  4. /// <summary>
  5. /// Notify type.
  6. /// </summary>
  7. enum NotifyType
  8. {
  9. WriteOnly = 0,
  10. WriteThenAwaken = 1,
  11. }
  12. /// <summary>
  13. /// Width in GOBs of the destination texture.
  14. /// </summary>
  15. enum SetDstBlockSizeWidth
  16. {
  17. OneGob = 0,
  18. }
  19. /// <summary>
  20. /// Height in GOBs of the destination texture.
  21. /// </summary>
  22. enum SetDstBlockSizeHeight
  23. {
  24. OneGob = 0,
  25. TwoGobs = 1,
  26. FourGobs = 2,
  27. EightGobs = 3,
  28. SixteenGobs = 4,
  29. ThirtytwoGobs = 5,
  30. }
  31. /// <summary>
  32. /// Depth in GOBs of the destination texture.
  33. /// </summary>
  34. enum SetDstBlockSizeDepth
  35. {
  36. OneGob = 0,
  37. TwoGobs = 1,
  38. FourGobs = 2,
  39. EightGobs = 3,
  40. SixteenGobs = 4,
  41. ThirtytwoGobs = 5,
  42. }
  43. /// <summary>
  44. /// Memory layout of the destination texture.
  45. /// </summary>
  46. enum LaunchDmaDstMemoryLayout
  47. {
  48. Blocklinear = 0,
  49. Pitch = 1,
  50. }
  51. /// <summary>
  52. /// DMA completion type.
  53. /// </summary>
  54. enum LaunchDmaCompletionType
  55. {
  56. FlushDisable = 0,
  57. FlushOnly = 1,
  58. ReleaseSemaphore = 2,
  59. }
  60. /// <summary>
  61. /// DMA interrupt type.
  62. /// </summary>
  63. enum LaunchDmaInterruptType
  64. {
  65. None = 0,
  66. Interrupt = 1,
  67. }
  68. /// <summary>
  69. /// DMA semaphore structure size.
  70. /// </summary>
  71. enum LaunchDmaSemaphoreStructSize
  72. {
  73. FourWords = 0,
  74. OneWord = 1,
  75. }
  76. /// <summary>
  77. /// DMA semaphore reduction operation.
  78. /// </summary>
  79. enum LaunchDmaReductionOp
  80. {
  81. RedAdd = 0,
  82. RedMin = 1,
  83. RedMax = 2,
  84. RedInc = 3,
  85. RedDec = 4,
  86. RedAnd = 5,
  87. RedOr = 6,
  88. RedXor = 7,
  89. }
  90. /// <summary>
  91. /// DMA semaphore reduction format.
  92. /// </summary>
  93. enum LaunchDmaReductionFormat
  94. {
  95. Unsigned32 = 0,
  96. Signed32 = 1,
  97. }
  98. /// <summary>
  99. /// Inline-to-Memory class state.
  100. /// </summary>
  101. unsafe struct InlineToMemoryClassState
  102. {
  103. #pragma warning disable CS0649
  104. public uint SetObject;
  105. public int SetObjectClassId => (int)((SetObject >> 0) & 0xFFFF);
  106. public int SetObjectEngineId => (int)((SetObject >> 16) & 0x1F);
  107. public fixed uint Reserved04[63];
  108. public uint NoOperation;
  109. public uint SetNotifyA;
  110. public int SetNotifyAAddressUpper => (int)((SetNotifyA >> 0) & 0xFF);
  111. public uint SetNotifyB;
  112. public uint Notify;
  113. public NotifyType NotifyType => (NotifyType)(Notify);
  114. public uint WaitForIdle;
  115. public fixed uint Reserved114[7];
  116. public uint SetGlobalRenderEnableA;
  117. public int SetGlobalRenderEnableAOffsetUpper => (int)((SetGlobalRenderEnableA >> 0) & 0xFF);
  118. public uint SetGlobalRenderEnableB;
  119. public uint SetGlobalRenderEnableC;
  120. public int SetGlobalRenderEnableCMode => (int)((SetGlobalRenderEnableC >> 0) & 0x7);
  121. public uint SendGoIdle;
  122. public uint PmTrigger;
  123. public uint PmTriggerWfi;
  124. public fixed uint Reserved148[2];
  125. public uint SetInstrumentationMethodHeader;
  126. public uint SetInstrumentationMethodData;
  127. public fixed uint Reserved158[10];
  128. public uint LineLengthIn;
  129. public uint LineCount;
  130. public uint OffsetOutUpper;
  131. public int OffsetOutUpperValue => (int)((OffsetOutUpper >> 0) & 0xFF);
  132. public uint OffsetOut;
  133. public uint PitchOut;
  134. public uint SetDstBlockSize;
  135. public SetDstBlockSizeWidth SetDstBlockSizeWidth => (SetDstBlockSizeWidth)((SetDstBlockSize >> 0) & 0xF);
  136. public SetDstBlockSizeHeight SetDstBlockSizeHeight => (SetDstBlockSizeHeight)((SetDstBlockSize >> 4) & 0xF);
  137. public SetDstBlockSizeDepth SetDstBlockSizeDepth => (SetDstBlockSizeDepth)((SetDstBlockSize >> 8) & 0xF);
  138. public uint SetDstWidth;
  139. public uint SetDstHeight;
  140. public uint SetDstDepth;
  141. public uint SetDstLayer;
  142. public uint SetDstOriginBytesX;
  143. public int SetDstOriginBytesXV => (int)((SetDstOriginBytesX >> 0) & 0xFFFFF);
  144. public uint SetDstOriginSamplesY;
  145. public int SetDstOriginSamplesYV => (int)((SetDstOriginSamplesY >> 0) & 0xFFFF);
  146. public uint LaunchDma;
  147. public LaunchDmaDstMemoryLayout LaunchDmaDstMemoryLayout => (LaunchDmaDstMemoryLayout)((LaunchDma >> 0) & 0x1);
  148. public LaunchDmaCompletionType LaunchDmaCompletionType => (LaunchDmaCompletionType)((LaunchDma >> 4) & 0x3);
  149. public LaunchDmaInterruptType LaunchDmaInterruptType => (LaunchDmaInterruptType)((LaunchDma >> 8) & 0x3);
  150. public LaunchDmaSemaphoreStructSize LaunchDmaSemaphoreStructSize => (LaunchDmaSemaphoreStructSize)((LaunchDma >> 12) & 0x1);
  151. public bool LaunchDmaReductionEnable => (LaunchDma & 0x2) != 0;
  152. public LaunchDmaReductionOp LaunchDmaReductionOp => (LaunchDmaReductionOp)((LaunchDma >> 13) & 0x7);
  153. public LaunchDmaReductionFormat LaunchDmaReductionFormat => (LaunchDmaReductionFormat)((LaunchDma >> 2) & 0x3);
  154. public bool LaunchDmaSysmembarDisable => (LaunchDma & 0x40) != 0;
  155. public uint LoadInlineData;
  156. public fixed uint Reserved1B8[9];
  157. public uint SetI2mSemaphoreA;
  158. public int SetI2mSemaphoreAOffsetUpper => (int)((SetI2mSemaphoreA >> 0) & 0xFF);
  159. public uint SetI2mSemaphoreB;
  160. public uint SetI2mSemaphoreC;
  161. public fixed uint Reserved1E8[2];
  162. public uint SetI2mSpareNoop00;
  163. public uint SetI2mSpareNoop01;
  164. public uint SetI2mSpareNoop02;
  165. public uint SetI2mSpareNoop03;
  166. public fixed uint Reserved200[3200];
  167. public MmeShadowScratch SetMmeShadowScratch;
  168. #pragma warning restore CS0649
  169. }
  170. }