TwodClassState.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. // This file was auto-generated from NVIDIA official Maxwell definitions.
  2. using Ryujinx.Common.Memory;
  3. namespace Ryujinx.Graphics.Gpu.Engine.Twod
  4. {
  5. /// <summary>
  6. /// Notify type.
  7. /// </summary>
  8. enum NotifyType
  9. {
  10. WriteOnly = 0,
  11. WriteThenAwaken = 1,
  12. }
  13. /// <summary>
  14. /// Format of the destination texture.
  15. /// </summary>
  16. enum SetDstFormatV
  17. {
  18. A8r8g8b8 = 207,
  19. A8rl8gl8bl8 = 208,
  20. A2r10g10b10 = 223,
  21. A8b8g8r8 = 213,
  22. A8bl8gl8rl8 = 214,
  23. A2b10g10r10 = 209,
  24. X8r8g8b8 = 230,
  25. X8rl8gl8bl8 = 231,
  26. X8b8g8r8 = 249,
  27. X8bl8gl8rl8 = 250,
  28. R5g6b5 = 232,
  29. A1r5g5b5 = 233,
  30. X1r5g5b5 = 248,
  31. Y8 = 243,
  32. Y16 = 238,
  33. Y32 = 255,
  34. Z1r5g5b5 = 251,
  35. O1r5g5b5 = 252,
  36. Z8r8g8b8 = 253,
  37. O8r8g8b8 = 254,
  38. Y18x8 = 28,
  39. Rf16 = 242,
  40. Rf32 = 229,
  41. Rf32Gf32 = 203,
  42. Rf16Gf16Bf16Af16 = 202,
  43. Rf16Gf16Bf16X16 = 206,
  44. Rf32Gf32Bf32Af32 = 192,
  45. Rf32Gf32Bf32X32 = 195,
  46. R16G16B16A16 = 198,
  47. Rn16Gn16Bn16An16 = 199,
  48. Bf10gf11rf11 = 224,
  49. An8bn8gn8rn8 = 215,
  50. Rf16Gf16 = 222,
  51. R16G16 = 218,
  52. Rn16Gn16 = 219,
  53. G8r8 = 234,
  54. Gn8rn8 = 235,
  55. Rn16 = 239,
  56. Rn8 = 244,
  57. A8 = 247,
  58. }
  59. /// <summary>
  60. /// Memory layout of the destination texture.
  61. /// </summary>
  62. enum SetDstMemoryLayoutV
  63. {
  64. Blocklinear = 0,
  65. Pitch = 1,
  66. }
  67. /// <summary>
  68. /// Height in GOBs of the destination texture.
  69. /// </summary>
  70. enum SetDstBlockSizeHeight
  71. {
  72. OneGob = 0,
  73. TwoGobs = 1,
  74. FourGobs = 2,
  75. EightGobs = 3,
  76. SixteenGobs = 4,
  77. ThirtytwoGobs = 5,
  78. }
  79. /// <summary>
  80. /// Depth in GOBs of the destination texture.
  81. /// </summary>
  82. enum SetDstBlockSizeDepth
  83. {
  84. OneGob = 0,
  85. TwoGobs = 1,
  86. FourGobs = 2,
  87. EightGobs = 3,
  88. SixteenGobs = 4,
  89. ThirtytwoGobs = 5,
  90. }
  91. /// <summary>
  92. /// Format of the source texture.
  93. /// </summary>
  94. enum SetSrcFormatV
  95. {
  96. A8r8g8b8 = 207,
  97. A8rl8gl8bl8 = 208,
  98. A2r10g10b10 = 223,
  99. A8b8g8r8 = 213,
  100. A8bl8gl8rl8 = 214,
  101. A2b10g10r10 = 209,
  102. X8r8g8b8 = 230,
  103. X8rl8gl8bl8 = 231,
  104. X8b8g8r8 = 249,
  105. X8bl8gl8rl8 = 250,
  106. R5g6b5 = 232,
  107. A1r5g5b5 = 233,
  108. X1r5g5b5 = 248,
  109. Y8 = 243,
  110. Ay8 = 29,
  111. Y16 = 238,
  112. Y32 = 255,
  113. Z1r5g5b5 = 251,
  114. O1r5g5b5 = 252,
  115. Z8r8g8b8 = 253,
  116. O8r8g8b8 = 254,
  117. Y18x8 = 28,
  118. Rf16 = 242,
  119. Rf32 = 229,
  120. Rf32Gf32 = 203,
  121. Rf16Gf16Bf16Af16 = 202,
  122. Rf16Gf16Bf16X16 = 206,
  123. Rf32Gf32Bf32Af32 = 192,
  124. Rf32Gf32Bf32X32 = 195,
  125. R16G16B16A16 = 198,
  126. Rn16Gn16Bn16An16 = 199,
  127. Bf10gf11rf11 = 224,
  128. An8bn8gn8rn8 = 215,
  129. Rf16Gf16 = 222,
  130. R16G16 = 218,
  131. Rn16Gn16 = 219,
  132. G8r8 = 234,
  133. Gn8rn8 = 235,
  134. Rn16 = 239,
  135. Rn8 = 244,
  136. A8 = 247,
  137. }
  138. /// <summary>
  139. /// Memory layout of the source texture.
  140. /// </summary>
  141. enum SetSrcMemoryLayoutV
  142. {
  143. Blocklinear = 0,
  144. Pitch = 1,
  145. }
  146. /// <summary>
  147. /// Height in GOBs of the source texture.
  148. /// </summary>
  149. enum SetSrcBlockSizeHeight
  150. {
  151. OneGob = 0,
  152. TwoGobs = 1,
  153. FourGobs = 2,
  154. EightGobs = 3,
  155. SixteenGobs = 4,
  156. ThirtytwoGobs = 5,
  157. }
  158. /// <summary>
  159. /// Depth in GOBs of the source texture.
  160. /// </summary>
  161. enum SetSrcBlockSizeDepth
  162. {
  163. OneGob = 0,
  164. TwoGobs = 1,
  165. FourGobs = 2,
  166. EightGobs = 3,
  167. SixteenGobs = 4,
  168. ThirtytwoGobs = 5,
  169. }
  170. /// <summary>
  171. /// Texture data caches to invalidate.
  172. /// </summary>
  173. enum TwodInvalidateTextureDataCacheV
  174. {
  175. L1Only = 0,
  176. L2Only = 1,
  177. L1AndL2 = 2,
  178. }
  179. /// <summary>
  180. /// Sector promotion parameters.
  181. /// </summary>
  182. enum SetPixelsFromMemorySectorPromotionV
  183. {
  184. NoPromotion = 0,
  185. PromoteTo2V = 1,
  186. PromoteTo2H = 2,
  187. PromoteTo4 = 3,
  188. }
  189. /// <summary>
  190. /// Number of processing clusters.
  191. /// </summary>
  192. enum SetNumProcessingClustersV
  193. {
  194. All = 0,
  195. One = 1,
  196. }
  197. /// <summary>
  198. /// Color key format.
  199. /// </summary>
  200. enum SetColorKeyFormatV
  201. {
  202. A16r5g6b5 = 0,
  203. A1r5g5b5 = 1,
  204. A8r8g8b8 = 2,
  205. A2r10g10b10 = 3,
  206. Y8 = 4,
  207. Y16 = 5,
  208. Y32 = 6,
  209. }
  210. /// <summary>
  211. /// Color blit operation.
  212. /// </summary>
  213. enum SetOperationV
  214. {
  215. SrccopyAnd = 0,
  216. RopAnd = 1,
  217. BlendAnd = 2,
  218. Srccopy = 3,
  219. Rop = 4,
  220. SrccopyPremult = 5,
  221. BlendPremult = 6,
  222. }
  223. /// <summary>
  224. /// Texture pattern selection.
  225. /// </summary>
  226. enum SetPatternSelectV
  227. {
  228. Monochrome8x8 = 0,
  229. Monochrome64x1 = 1,
  230. Monochrome1x64 = 2,
  231. Color = 3,
  232. }
  233. /// <summary>
  234. /// Render enable override mode.
  235. /// </summary>
  236. enum SetRenderEnableOverrideMode
  237. {
  238. UseRenderEnable = 0,
  239. AlwaysRender = 1,
  240. NeverRender = 2,
  241. }
  242. /// <summary>
  243. /// Pixels from memory horizontal direction.
  244. /// </summary>
  245. enum SetPixelsFromMemoryDirectionHorizontal
  246. {
  247. HwDecides = 0,
  248. LeftToRight = 1,
  249. RightToLeft = 2,
  250. }
  251. /// <summary>
  252. /// Pixels from memory vertical direction.
  253. /// </summary>
  254. enum SetPixelsFromMemoryDirectionVertical
  255. {
  256. HwDecides = 0,
  257. TopToBottom = 1,
  258. BottomToTop = 2,
  259. }
  260. /// <summary>
  261. /// Color format of the monochrome pattern.
  262. /// </summary>
  263. enum SetMonochromePatternColorFormatV
  264. {
  265. A8x8r5g6b5 = 0,
  266. A1r5g5b5 = 1,
  267. A8r8g8b8 = 2,
  268. A8y8 = 3,
  269. A8x8y16 = 4,
  270. Y32 = 5,
  271. ByteExpand = 6,
  272. }
  273. /// <summary>
  274. /// Format of the monochrome pattern.
  275. /// </summary>
  276. enum SetMonochromePatternFormatV
  277. {
  278. Cga6M1 = 0,
  279. LeM1 = 1,
  280. }
  281. /// <summary>
  282. /// DMA semaphore reduction operation.
  283. /// </summary>
  284. enum MmeDmaReductionReductionOp
  285. {
  286. RedAdd = 0,
  287. RedMin = 1,
  288. RedMax = 2,
  289. RedInc = 3,
  290. RedDec = 4,
  291. RedAnd = 5,
  292. RedOr = 6,
  293. RedXor = 7,
  294. }
  295. /// <summary>
  296. /// DMA semaphore reduction format.
  297. /// </summary>
  298. enum MmeDmaReductionReductionFormat
  299. {
  300. Unsigned = 0,
  301. Signed = 1,
  302. }
  303. /// <summary>
  304. /// DMA semaphore reduction size.
  305. /// </summary>
  306. enum MmeDmaReductionReductionSize
  307. {
  308. FourBytes = 0,
  309. EightBytes = 1,
  310. }
  311. /// <summary>
  312. /// Data FIFO size.
  313. /// </summary>
  314. enum SetMmeDataFifoConfigFifoSize
  315. {
  316. Size0kb = 0,
  317. Size4kb = 1,
  318. Size8kb = 2,
  319. Size12kb = 3,
  320. Size16kb = 4,
  321. }
  322. /// <summary>
  323. /// Render solid primitive mode.
  324. /// </summary>
  325. enum RenderSolidPrimModeV
  326. {
  327. Points = 0,
  328. Lines = 1,
  329. Polyline = 2,
  330. Triangles = 3,
  331. Rects = 4,
  332. }
  333. /// <summary>
  334. /// Render solid primitive color format.
  335. /// </summary>
  336. enum SetRenderSolidPrimColorFormatV
  337. {
  338. Rf32Gf32Bf32Af32 = 192,
  339. Rf16Gf16Bf16Af16 = 202,
  340. Rf32Gf32 = 203,
  341. A8r8g8b8 = 207,
  342. A2r10g10b10 = 223,
  343. A8b8g8r8 = 213,
  344. A2b10g10r10 = 209,
  345. X8r8g8b8 = 230,
  346. X8b8g8r8 = 249,
  347. R5g6b5 = 232,
  348. A1r5g5b5 = 233,
  349. X1r5g5b5 = 248,
  350. Y8 = 243,
  351. Y16 = 238,
  352. Y32 = 255,
  353. Z1r5g5b5 = 251,
  354. O1r5g5b5 = 252,
  355. Z8r8g8b8 = 253,
  356. O8r8g8b8 = 254,
  357. }
  358. /// <summary>
  359. /// Pixels from CPU data type.
  360. /// </summary>
  361. enum SetPixelsFromCpuDataTypeV
  362. {
  363. Color = 0,
  364. Index = 1,
  365. }
  366. /// <summary>
  367. /// Pixels from CPU color format.
  368. /// </summary>
  369. enum SetPixelsFromCpuColorFormatV
  370. {
  371. A8r8g8b8 = 207,
  372. A2r10g10b10 = 223,
  373. A8b8g8r8 = 213,
  374. A2b10g10r10 = 209,
  375. X8r8g8b8 = 230,
  376. X8b8g8r8 = 249,
  377. R5g6b5 = 232,
  378. A1r5g5b5 = 233,
  379. X1r5g5b5 = 248,
  380. Y8 = 243,
  381. Y16 = 238,
  382. Y32 = 255,
  383. Z1r5g5b5 = 251,
  384. O1r5g5b5 = 252,
  385. Z8r8g8b8 = 253,
  386. O8r8g8b8 = 254,
  387. }
  388. /// <summary>
  389. /// Pixels from CPU palette index format.
  390. /// </summary>
  391. enum SetPixelsFromCpuIndexFormatV
  392. {
  393. I1 = 0,
  394. I4 = 1,
  395. I8 = 2,
  396. }
  397. /// <summary>
  398. /// Pixels from CPU monochrome format.
  399. /// </summary>
  400. enum SetPixelsFromCpuMonoFormatV
  401. {
  402. Cga6M1 = 0,
  403. LeM1 = 1,
  404. }
  405. /// <summary>
  406. /// Pixels from CPU wrap mode.
  407. /// </summary>
  408. enum SetPixelsFromCpuWrapV
  409. {
  410. WrapPixel = 0,
  411. WrapByte = 1,
  412. WrapDword = 2,
  413. }
  414. /// <summary>
  415. /// Pixels from CPU monochrome opacity.
  416. /// </summary>
  417. enum SetPixelsFromCpuMonoOpacityV
  418. {
  419. Transparent = 0,
  420. Opaque = 1,
  421. }
  422. /// <summary>
  423. /// Pixels from memory block shape.
  424. /// </summary>
  425. enum SetPixelsFromMemoryBlockShapeV
  426. {
  427. Auto = 0,
  428. Shape8x8 = 1,
  429. Shape16x4 = 2,
  430. }
  431. /// <summary>
  432. /// Pixels from memory origin.
  433. /// </summary>
  434. enum SetPixelsFromMemorySampleModeOrigin
  435. {
  436. Center = 0,
  437. Corner = 1,
  438. }
  439. /// <summary>
  440. /// Pixels from memory filter mode.
  441. /// </summary>
  442. enum SetPixelsFromMemorySampleModeFilter
  443. {
  444. Point = 0,
  445. Bilinear = 1,
  446. }
  447. /// <summary>
  448. /// Render solid primitive point coordinates.
  449. /// </summary>
  450. struct RenderSolidPrimPoint
  451. {
  452. #pragma warning disable CS0649
  453. public uint SetX;
  454. public uint Y;
  455. #pragma warning restore CS0649
  456. }
  457. /// <summary>
  458. /// 2D class state.
  459. /// </summary>
  460. unsafe struct TwodClassState : IShadowState
  461. {
  462. #pragma warning disable CS0649
  463. public uint SetObject;
  464. public int SetObjectClassId => (int)((SetObject >> 0) & 0xFFFF);
  465. public int SetObjectEngineId => (int)((SetObject >> 16) & 0x1F);
  466. public fixed uint Reserved04[63];
  467. public uint NoOperation;
  468. public uint SetNotifyA;
  469. public int SetNotifyAAddressUpper => (int)((SetNotifyA >> 0) & 0x1FFFFFF);
  470. public uint SetNotifyB;
  471. public uint Notify;
  472. public NotifyType NotifyType => (NotifyType)(Notify);
  473. public uint WaitForIdle;
  474. public uint LoadMmeInstructionRamPointer;
  475. public uint LoadMmeInstructionRam;
  476. public uint LoadMmeStartAddressRamPointer;
  477. public uint LoadMmeStartAddressRam;
  478. public uint SetMmeShadowRamControl;
  479. public SetMmeShadowRamControlMode SetMmeShadowRamControlMode => (SetMmeShadowRamControlMode)((SetMmeShadowRamControl >> 0) & 0x3);
  480. public fixed uint Reserved128[2];
  481. public uint SetGlobalRenderEnableA;
  482. public int SetGlobalRenderEnableAOffsetUpper => (int)((SetGlobalRenderEnableA >> 0) & 0xFF);
  483. public uint SetGlobalRenderEnableB;
  484. public uint SetGlobalRenderEnableC;
  485. public int SetGlobalRenderEnableCMode => (int)((SetGlobalRenderEnableC >> 0) & 0x7);
  486. public uint SendGoIdle;
  487. public uint PmTrigger;
  488. public fixed uint Reserved144[3];
  489. public uint SetInstrumentationMethodHeader;
  490. public uint SetInstrumentationMethodData;
  491. public fixed uint Reserved158[37];
  492. public uint SetMmeSwitchState;
  493. public bool SetMmeSwitchStateValid => (SetMmeSwitchState & 0x1) != 0;
  494. public int SetMmeSwitchStateSaveMacro => (int)((SetMmeSwitchState >> 4) & 0xFF);
  495. public int SetMmeSwitchStateRestoreMacro => (int)((SetMmeSwitchState >> 12) & 0xFF);
  496. public fixed uint Reserved1F0[4];
  497. public uint SetDstFormat;
  498. public SetDstFormatV SetDstFormatV => (SetDstFormatV)((SetDstFormat >> 0) & 0xFF);
  499. public uint SetDstMemoryLayout;
  500. public SetDstMemoryLayoutV SetDstMemoryLayoutV => (SetDstMemoryLayoutV)((SetDstMemoryLayout >> 0) & 0x1);
  501. public uint SetDstBlockSize;
  502. public SetDstBlockSizeHeight SetDstBlockSizeHeight => (SetDstBlockSizeHeight)((SetDstBlockSize >> 4) & 0x7);
  503. public SetDstBlockSizeDepth SetDstBlockSizeDepth => (SetDstBlockSizeDepth)((SetDstBlockSize >> 8) & 0x7);
  504. public uint SetDstDepth;
  505. public uint SetDstLayer;
  506. public uint SetDstPitch;
  507. public uint SetDstWidth;
  508. public uint SetDstHeight;
  509. public uint SetDstOffsetUpper;
  510. public int SetDstOffsetUpperV => (int)((SetDstOffsetUpper >> 0) & 0xFF);
  511. public uint SetDstOffsetLower;
  512. public uint FlushAndInvalidateRopMiniCache;
  513. public bool FlushAndInvalidateRopMiniCacheV => (FlushAndInvalidateRopMiniCache & 0x1) != 0;
  514. public uint SetSpareNoop06;
  515. public uint SetSrcFormat;
  516. public SetSrcFormatV SetSrcFormatV => (SetSrcFormatV)((SetSrcFormat >> 0) & 0xFF);
  517. public uint SetSrcMemoryLayout;
  518. public SetSrcMemoryLayoutV SetSrcMemoryLayoutV => (SetSrcMemoryLayoutV)((SetSrcMemoryLayout >> 0) & 0x1);
  519. public uint SetSrcBlockSize;
  520. public SetSrcBlockSizeHeight SetSrcBlockSizeHeight => (SetSrcBlockSizeHeight)((SetSrcBlockSize >> 4) & 0x7);
  521. public SetSrcBlockSizeDepth SetSrcBlockSizeDepth => (SetSrcBlockSizeDepth)((SetSrcBlockSize >> 8) & 0x7);
  522. public uint SetSrcDepth;
  523. public uint TwodInvalidateTextureDataCache;
  524. public TwodInvalidateTextureDataCacheV TwodInvalidateTextureDataCacheV => (TwodInvalidateTextureDataCacheV)((TwodInvalidateTextureDataCache >> 0) & 0x3);
  525. public uint SetSrcPitch;
  526. public uint SetSrcWidth;
  527. public uint SetSrcHeight;
  528. public uint SetSrcOffsetUpper;
  529. public int SetSrcOffsetUpperV => (int)((SetSrcOffsetUpper >> 0) & 0xFF);
  530. public uint SetSrcOffsetLower;
  531. public uint SetPixelsFromMemorySectorPromotion;
  532. public SetPixelsFromMemorySectorPromotionV SetPixelsFromMemorySectorPromotionV => (SetPixelsFromMemorySectorPromotionV)((SetPixelsFromMemorySectorPromotion >> 0) & 0x3);
  533. public uint SetSpareNoop12;
  534. public uint SetNumProcessingClusters;
  535. public SetNumProcessingClustersV SetNumProcessingClustersV => (SetNumProcessingClustersV)((SetNumProcessingClusters >> 0) & 0x1);
  536. public uint SetRenderEnableA;
  537. public int SetRenderEnableAOffsetUpper => (int)((SetRenderEnableA >> 0) & 0xFF);
  538. public uint SetRenderEnableB;
  539. public uint SetRenderEnableC;
  540. public int SetRenderEnableCMode => (int)((SetRenderEnableC >> 0) & 0x7);
  541. public uint SetSpareNoop08;
  542. public uint SetSpareNoop01;
  543. public uint SetSpareNoop11;
  544. public uint SetSpareNoop07;
  545. public uint SetClipX0;
  546. public uint SetClipY0;
  547. public uint SetClipWidth;
  548. public uint SetClipHeight;
  549. public uint SetClipEnable;
  550. public bool SetClipEnableV => (SetClipEnable & 0x1) != 0;
  551. public uint SetColorKeyFormat;
  552. public SetColorKeyFormatV SetColorKeyFormatV => (SetColorKeyFormatV)((SetColorKeyFormat >> 0) & 0x7);
  553. public uint SetColorKey;
  554. public uint SetColorKeyEnable;
  555. public bool SetColorKeyEnableV => (SetColorKeyEnable & 0x1) != 0;
  556. public uint SetRop;
  557. public int SetRopV => (int)((SetRop >> 0) & 0xFF);
  558. public uint SetBeta1;
  559. public uint SetBeta4;
  560. public int SetBeta4B => (int)((SetBeta4 >> 0) & 0xFF);
  561. public int SetBeta4G => (int)((SetBeta4 >> 8) & 0xFF);
  562. public int SetBeta4R => (int)((SetBeta4 >> 16) & 0xFF);
  563. public int SetBeta4A => (int)((SetBeta4 >> 24) & 0xFF);
  564. public uint SetOperation;
  565. public SetOperationV SetOperationV => (SetOperationV)((SetOperation >> 0) & 0x7);
  566. public uint SetPatternOffset;
  567. public int SetPatternOffsetX => (int)((SetPatternOffset >> 0) & 0x3F);
  568. public int SetPatternOffsetY => (int)((SetPatternOffset >> 8) & 0x3F);
  569. public uint SetPatternSelect;
  570. public SetPatternSelectV SetPatternSelectV => (SetPatternSelectV)((SetPatternSelect >> 0) & 0x3);
  571. public uint SetDstColorRenderToZetaSurface;
  572. public bool SetDstColorRenderToZetaSurfaceV => (SetDstColorRenderToZetaSurface & 0x1) != 0;
  573. public uint SetSpareNoop04;
  574. public uint SetSpareNoop15;
  575. public uint SetSpareNoop13;
  576. public uint SetSpareNoop03;
  577. public uint SetSpareNoop14;
  578. public uint SetSpareNoop02;
  579. public uint SetCompression;
  580. public bool SetCompressionEnable => (SetCompression & 0x1) != 0;
  581. public uint SetSpareNoop09;
  582. public uint SetRenderEnableOverride;
  583. public SetRenderEnableOverrideMode SetRenderEnableOverrideMode => (SetRenderEnableOverrideMode)((SetRenderEnableOverride >> 0) & 0x3);
  584. public uint SetPixelsFromMemoryDirection;
  585. public SetPixelsFromMemoryDirectionHorizontal SetPixelsFromMemoryDirectionHorizontal => (SetPixelsFromMemoryDirectionHorizontal)((SetPixelsFromMemoryDirection >> 0) & 0x3);
  586. public SetPixelsFromMemoryDirectionVertical SetPixelsFromMemoryDirectionVertical => (SetPixelsFromMemoryDirectionVertical)((SetPixelsFromMemoryDirection >> 4) & 0x3);
  587. public uint SetSpareNoop10;
  588. public uint SetMonochromePatternColorFormat;
  589. public SetMonochromePatternColorFormatV SetMonochromePatternColorFormatV => (SetMonochromePatternColorFormatV)((SetMonochromePatternColorFormat >> 0) & 0x7);
  590. public uint SetMonochromePatternFormat;
  591. public SetMonochromePatternFormatV SetMonochromePatternFormatV => (SetMonochromePatternFormatV)((SetMonochromePatternFormat >> 0) & 0x1);
  592. public uint SetMonochromePatternColor0;
  593. public uint SetMonochromePatternColor1;
  594. public uint SetMonochromePattern0;
  595. public uint SetMonochromePattern1;
  596. public Array64<uint> ColorPatternX8r8g8b8;
  597. public int ColorPatternX8r8g8b8B0(int i) => (int)((ColorPatternX8r8g8b8[i] >> 0) & 0xFF);
  598. public int ColorPatternX8r8g8b8G0(int i) => (int)((ColorPatternX8r8g8b8[i] >> 8) & 0xFF);
  599. public int ColorPatternX8r8g8b8R0(int i) => (int)((ColorPatternX8r8g8b8[i] >> 16) & 0xFF);
  600. public int ColorPatternX8r8g8b8Ignore0(int i) => (int)((ColorPatternX8r8g8b8[i] >> 24) & 0xFF);
  601. public Array32<uint> ColorPatternR5g6b5;
  602. public int ColorPatternR5g6b5B0(int i) => (int)((ColorPatternR5g6b5[i] >> 0) & 0x1F);
  603. public int ColorPatternR5g6b5G0(int i) => (int)((ColorPatternR5g6b5[i] >> 5) & 0x3F);
  604. public int ColorPatternR5g6b5R0(int i) => (int)((ColorPatternR5g6b5[i] >> 11) & 0x1F);
  605. public int ColorPatternR5g6b5B1(int i) => (int)((ColorPatternR5g6b5[i] >> 16) & 0x1F);
  606. public int ColorPatternR5g6b5G1(int i) => (int)((ColorPatternR5g6b5[i] >> 21) & 0x3F);
  607. public int ColorPatternR5g6b5R1(int i) => (int)((ColorPatternR5g6b5[i] >> 27) & 0x1F);
  608. public Array32<uint> ColorPatternX1r5g5b5;
  609. public int ColorPatternX1r5g5b5B0(int i) => (int)((ColorPatternX1r5g5b5[i] >> 0) & 0x1F);
  610. public int ColorPatternX1r5g5b5G0(int i) => (int)((ColorPatternX1r5g5b5[i] >> 5) & 0x1F);
  611. public int ColorPatternX1r5g5b5R0(int i) => (int)((ColorPatternX1r5g5b5[i] >> 10) & 0x1F);
  612. public bool ColorPatternX1r5g5b5Ignore0(int i) => (ColorPatternX1r5g5b5[i] & 0x8000) != 0;
  613. public int ColorPatternX1r5g5b5B1(int i) => (int)((ColorPatternX1r5g5b5[i] >> 16) & 0x1F);
  614. public int ColorPatternX1r5g5b5G1(int i) => (int)((ColorPatternX1r5g5b5[i] >> 21) & 0x1F);
  615. public int ColorPatternX1r5g5b5R1(int i) => (int)((ColorPatternX1r5g5b5[i] >> 26) & 0x1F);
  616. public bool ColorPatternX1r5g5b5Ignore1(int i) => (ColorPatternX1r5g5b5[i] & 0x80000000) != 0;
  617. public Array16<uint> ColorPatternY8;
  618. public int ColorPatternY8Y0(int i) => (int)((ColorPatternY8[i] >> 0) & 0xFF);
  619. public int ColorPatternY8Y1(int i) => (int)((ColorPatternY8[i] >> 8) & 0xFF);
  620. public int ColorPatternY8Y2(int i) => (int)((ColorPatternY8[i] >> 16) & 0xFF);
  621. public int ColorPatternY8Y3(int i) => (int)((ColorPatternY8[i] >> 24) & 0xFF);
  622. public uint SetRenderSolidPrimColor0;
  623. public uint SetRenderSolidPrimColor1;
  624. public uint SetRenderSolidPrimColor2;
  625. public uint SetRenderSolidPrimColor3;
  626. public uint SetMmeMemAddressA;
  627. public int SetMmeMemAddressAUpper => (int)((SetMmeMemAddressA >> 0) & 0x1FFFFFF);
  628. public uint SetMmeMemAddressB;
  629. public uint SetMmeDataRamAddress;
  630. public uint MmeDmaRead;
  631. public uint MmeDmaReadFifoed;
  632. public uint MmeDmaWrite;
  633. public uint MmeDmaReduction;
  634. public MmeDmaReductionReductionOp MmeDmaReductionReductionOp => (MmeDmaReductionReductionOp)((MmeDmaReduction >> 0) & 0x7);
  635. public MmeDmaReductionReductionFormat MmeDmaReductionReductionFormat => (MmeDmaReductionReductionFormat)((MmeDmaReduction >> 4) & 0x3);
  636. public MmeDmaReductionReductionSize MmeDmaReductionReductionSize => (MmeDmaReductionReductionSize)((MmeDmaReduction >> 8) & 0x1);
  637. public uint MmeDmaSysmembar;
  638. public bool MmeDmaSysmembarV => (MmeDmaSysmembar & 0x1) != 0;
  639. public uint MmeDmaSync;
  640. public uint SetMmeDataFifoConfig;
  641. public SetMmeDataFifoConfigFifoSize SetMmeDataFifoConfigFifoSize => (SetMmeDataFifoConfigFifoSize)((SetMmeDataFifoConfig >> 0) & 0x7);
  642. public fixed uint Reserved578[2];
  643. public uint RenderSolidPrimMode;
  644. public RenderSolidPrimModeV RenderSolidPrimModeV => (RenderSolidPrimModeV)((RenderSolidPrimMode >> 0) & 0x7);
  645. public uint SetRenderSolidPrimColorFormat;
  646. public SetRenderSolidPrimColorFormatV SetRenderSolidPrimColorFormatV => (SetRenderSolidPrimColorFormatV)((SetRenderSolidPrimColorFormat >> 0) & 0xFF);
  647. public uint SetRenderSolidPrimColor;
  648. public uint SetRenderSolidLineTieBreakBits;
  649. public bool SetRenderSolidLineTieBreakBitsXmajXincYinc => (SetRenderSolidLineTieBreakBits & 0x1) != 0;
  650. public bool SetRenderSolidLineTieBreakBitsXmajXdecYinc => (SetRenderSolidLineTieBreakBits & 0x10) != 0;
  651. public bool SetRenderSolidLineTieBreakBitsYmajXincYinc => (SetRenderSolidLineTieBreakBits & 0x100) != 0;
  652. public bool SetRenderSolidLineTieBreakBitsYmajXdecYinc => (SetRenderSolidLineTieBreakBits & 0x1000) != 0;
  653. public fixed uint Reserved590[20];
  654. public uint RenderSolidPrimPointXY;
  655. public int RenderSolidPrimPointXYX => (int)((RenderSolidPrimPointXY >> 0) & 0xFFFF);
  656. public int RenderSolidPrimPointXYY => (int)((RenderSolidPrimPointXY >> 16) & 0xFFFF);
  657. public fixed uint Reserved5E4[7];
  658. public Array64<RenderSolidPrimPoint> RenderSolidPrimPoint;
  659. public uint SetPixelsFromCpuDataType;
  660. public SetPixelsFromCpuDataTypeV SetPixelsFromCpuDataTypeV => (SetPixelsFromCpuDataTypeV)((SetPixelsFromCpuDataType >> 0) & 0x1);
  661. public uint SetPixelsFromCpuColorFormat;
  662. public SetPixelsFromCpuColorFormatV SetPixelsFromCpuColorFormatV => (SetPixelsFromCpuColorFormatV)((SetPixelsFromCpuColorFormat >> 0) & 0xFF);
  663. public uint SetPixelsFromCpuIndexFormat;
  664. public SetPixelsFromCpuIndexFormatV SetPixelsFromCpuIndexFormatV => (SetPixelsFromCpuIndexFormatV)((SetPixelsFromCpuIndexFormat >> 0) & 0x3);
  665. public uint SetPixelsFromCpuMonoFormat;
  666. public SetPixelsFromCpuMonoFormatV SetPixelsFromCpuMonoFormatV => (SetPixelsFromCpuMonoFormatV)((SetPixelsFromCpuMonoFormat >> 0) & 0x1);
  667. public uint SetPixelsFromCpuWrap;
  668. public SetPixelsFromCpuWrapV SetPixelsFromCpuWrapV => (SetPixelsFromCpuWrapV)((SetPixelsFromCpuWrap >> 0) & 0x3);
  669. public uint SetPixelsFromCpuColor0;
  670. public uint SetPixelsFromCpuColor1;
  671. public uint SetPixelsFromCpuMonoOpacity;
  672. public SetPixelsFromCpuMonoOpacityV SetPixelsFromCpuMonoOpacityV => (SetPixelsFromCpuMonoOpacityV)((SetPixelsFromCpuMonoOpacity >> 0) & 0x1);
  673. public fixed uint Reserved820[6];
  674. public uint SetPixelsFromCpuSrcWidth;
  675. public uint SetPixelsFromCpuSrcHeight;
  676. public uint SetPixelsFromCpuDxDuFrac;
  677. public uint SetPixelsFromCpuDxDuInt;
  678. public uint SetPixelsFromCpuDyDvFrac;
  679. public uint SetPixelsFromCpuDyDvInt;
  680. public uint SetPixelsFromCpuDstX0Frac;
  681. public uint SetPixelsFromCpuDstX0Int;
  682. public uint SetPixelsFromCpuDstY0Frac;
  683. public uint SetPixelsFromCpuDstY0Int;
  684. public uint PixelsFromCpuData;
  685. public fixed uint Reserved864[3];
  686. public uint SetBigEndianControl;
  687. public bool SetBigEndianControlX32Swap1 => (SetBigEndianControl & 0x1) != 0;
  688. public bool SetBigEndianControlX32Swap4 => (SetBigEndianControl & 0x2) != 0;
  689. public bool SetBigEndianControlX32Swap8 => (SetBigEndianControl & 0x4) != 0;
  690. public bool SetBigEndianControlX32Swap16 => (SetBigEndianControl & 0x8) != 0;
  691. public bool SetBigEndianControlX16Swap1 => (SetBigEndianControl & 0x10) != 0;
  692. public bool SetBigEndianControlX16Swap4 => (SetBigEndianControl & 0x20) != 0;
  693. public bool SetBigEndianControlX16Swap8 => (SetBigEndianControl & 0x40) != 0;
  694. public bool SetBigEndianControlX16Swap16 => (SetBigEndianControl & 0x80) != 0;
  695. public bool SetBigEndianControlX8Swap1 => (SetBigEndianControl & 0x100) != 0;
  696. public bool SetBigEndianControlX8Swap4 => (SetBigEndianControl & 0x200) != 0;
  697. public bool SetBigEndianControlX8Swap8 => (SetBigEndianControl & 0x400) != 0;
  698. public bool SetBigEndianControlX8Swap16 => (SetBigEndianControl & 0x800) != 0;
  699. public bool SetBigEndianControlI1X8Cga6Swap1 => (SetBigEndianControl & 0x1000) != 0;
  700. public bool SetBigEndianControlI1X8Cga6Swap4 => (SetBigEndianControl & 0x2000) != 0;
  701. public bool SetBigEndianControlI1X8Cga6Swap8 => (SetBigEndianControl & 0x4000) != 0;
  702. public bool SetBigEndianControlI1X8Cga6Swap16 => (SetBigEndianControl & 0x8000) != 0;
  703. public bool SetBigEndianControlI1X8LeSwap1 => (SetBigEndianControl & 0x10000) != 0;
  704. public bool SetBigEndianControlI1X8LeSwap4 => (SetBigEndianControl & 0x20000) != 0;
  705. public bool SetBigEndianControlI1X8LeSwap8 => (SetBigEndianControl & 0x40000) != 0;
  706. public bool SetBigEndianControlI1X8LeSwap16 => (SetBigEndianControl & 0x80000) != 0;
  707. public bool SetBigEndianControlI4Swap1 => (SetBigEndianControl & 0x100000) != 0;
  708. public bool SetBigEndianControlI4Swap4 => (SetBigEndianControl & 0x200000) != 0;
  709. public bool SetBigEndianControlI4Swap8 => (SetBigEndianControl & 0x400000) != 0;
  710. public bool SetBigEndianControlI4Swap16 => (SetBigEndianControl & 0x800000) != 0;
  711. public bool SetBigEndianControlI8Swap1 => (SetBigEndianControl & 0x1000000) != 0;
  712. public bool SetBigEndianControlI8Swap4 => (SetBigEndianControl & 0x2000000) != 0;
  713. public bool SetBigEndianControlI8Swap8 => (SetBigEndianControl & 0x4000000) != 0;
  714. public bool SetBigEndianControlI8Swap16 => (SetBigEndianControl & 0x8000000) != 0;
  715. public bool SetBigEndianControlOverride => (SetBigEndianControl & 0x10000000) != 0;
  716. public fixed uint Reserved874[3];
  717. public uint SetPixelsFromMemoryBlockShape;
  718. public SetPixelsFromMemoryBlockShapeV SetPixelsFromMemoryBlockShapeV => (SetPixelsFromMemoryBlockShapeV)((SetPixelsFromMemoryBlockShape >> 0) & 0x7);
  719. public uint SetPixelsFromMemoryCorralSize;
  720. public int SetPixelsFromMemoryCorralSizeV => (int)((SetPixelsFromMemoryCorralSize >> 0) & 0x3FF);
  721. public uint SetPixelsFromMemorySafeOverlap;
  722. public bool SetPixelsFromMemorySafeOverlapV => (SetPixelsFromMemorySafeOverlap & 0x1) != 0;
  723. public uint SetPixelsFromMemorySampleMode;
  724. public SetPixelsFromMemorySampleModeOrigin SetPixelsFromMemorySampleModeOrigin => (SetPixelsFromMemorySampleModeOrigin)((SetPixelsFromMemorySampleMode >> 0) & 0x1);
  725. public SetPixelsFromMemorySampleModeFilter SetPixelsFromMemorySampleModeFilter => (SetPixelsFromMemorySampleModeFilter)((SetPixelsFromMemorySampleMode >> 4) & 0x1);
  726. public fixed uint Reserved890[8];
  727. public uint SetPixelsFromMemoryDstX0;
  728. public uint SetPixelsFromMemoryDstY0;
  729. public uint SetPixelsFromMemoryDstWidth;
  730. public uint SetPixelsFromMemoryDstHeight;
  731. public uint SetPixelsFromMemoryDuDxFrac;
  732. public uint SetPixelsFromMemoryDuDxInt;
  733. public uint SetPixelsFromMemoryDvDyFrac;
  734. public uint SetPixelsFromMemoryDvDyInt;
  735. public uint SetPixelsFromMemorySrcX0Frac;
  736. public uint SetPixelsFromMemorySrcX0Int;
  737. public uint SetPixelsFromMemorySrcY0Frac;
  738. public uint PixelsFromMemorySrcY0Int;
  739. public uint SetFalcon00;
  740. public uint SetFalcon01;
  741. public uint SetFalcon02;
  742. public uint SetFalcon03;
  743. public uint SetFalcon04;
  744. public uint SetFalcon05;
  745. public uint SetFalcon06;
  746. public uint SetFalcon07;
  747. public uint SetFalcon08;
  748. public uint SetFalcon09;
  749. public uint SetFalcon10;
  750. public uint SetFalcon11;
  751. public uint SetFalcon12;
  752. public uint SetFalcon13;
  753. public uint SetFalcon14;
  754. public uint SetFalcon15;
  755. public uint SetFalcon16;
  756. public uint SetFalcon17;
  757. public uint SetFalcon18;
  758. public uint SetFalcon19;
  759. public uint SetFalcon20;
  760. public uint SetFalcon21;
  761. public uint SetFalcon22;
  762. public uint SetFalcon23;
  763. public uint SetFalcon24;
  764. public uint SetFalcon25;
  765. public uint SetFalcon26;
  766. public uint SetFalcon27;
  767. public uint SetFalcon28;
  768. public uint SetFalcon29;
  769. public uint SetFalcon30;
  770. public uint SetFalcon31;
  771. public fixed uint Reserved960[291];
  772. public uint MmeDmaWriteMethodBarrier;
  773. public bool MmeDmaWriteMethodBarrierV => (MmeDmaWriteMethodBarrier & 0x1) != 0;
  774. public fixed uint ReservedDF0[2436];
  775. public MmeShadowScratch SetMmeShadowScratch;
  776. #pragma warning restore CS0649
  777. }
  778. }