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