| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981 |
- using Ryujinx.Common.Memory;
- using Ryujinx.Graphics.GAL;
- using Ryujinx.Graphics.Gpu.Engine.InlineToMemory;
- using Ryujinx.Graphics.Gpu.Engine.Types;
- using Ryujinx.Graphics.Gpu.Image;
- using Ryujinx.Graphics.Shader;
- using System;
- namespace Ryujinx.Graphics.Gpu.Engine.Threed
- {
- /// <summary>
- /// Shader stage name.
- /// </summary>
- enum ShaderType
- {
- Vertex,
- TessellationControl,
- TessellationEvaluation,
- Geometry,
- Fragment
- }
- /// <summary>
- /// Tessellation mode.
- /// </summary>
- struct TessMode
- {
- #pragma warning disable CS0649
- public uint Packed;
- #pragma warning restore CS0649
- /// <summary>
- /// Unpacks the tessellation abstract patch type.
- /// </summary>
- /// <returns>Abtract patch type</returns>
- public TessPatchType UnpackPatchType()
- {
- return (TessPatchType)(Packed & 3);
- }
- /// <summary>
- /// Unpacks the spacing between tessellated vertices of the patch.
- /// </summary>
- /// <returns>Spacing between tessellated vertices</returns>
- public TessSpacing UnpackSpacing()
- {
- return (TessSpacing)((Packed >> 4) & 3);
- }
- /// <summary>
- /// Unpacks the primitive winding order.
- /// </summary>
- /// <returns>True if clockwise, false if counter-clockwise</returns>
- public bool UnpackCw()
- {
- return (Packed & (1 << 8)) != 0;
- }
- }
- /// <summary>
- /// Transform feedback buffer state.
- /// </summary>
- struct TfBufferState
- {
- #pragma warning disable CS0649
- public Boolean32 Enable;
- public GpuVa Address;
- public int Size;
- public int Offset;
- public uint Padding0;
- public uint Padding1;
- public uint Padding2;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Transform feedback state.
- /// </summary>
- struct TfState
- {
- #pragma warning disable CS0649
- public int BufferIndex;
- public int VaryingsCount;
- public int Stride;
- public uint Padding;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Render target color buffer state.
- /// </summary>
- struct RtColorState
- {
- #pragma warning disable CS0649
- public GpuVa Address;
- public int WidthOrStride;
- public int Height;
- public ColorFormat Format;
- public MemoryLayout MemoryLayout;
- public int Depth;
- public int LayerSize;
- public int BaseLayer;
- public int Unknown0x24;
- public int Padding0;
- public int Padding1;
- public int Padding2;
- public int Padding3;
- public int Padding4;
- public int Padding5;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Viewport transform parameters, for viewport transformation.
- /// </summary>
- struct ViewportTransform
- {
- #pragma warning disable CS0649
- public float ScaleX;
- public float ScaleY;
- public float ScaleZ;
- public float TranslateX;
- public float TranslateY;
- public float TranslateZ;
- public uint Swizzle;
- public uint SubpixelPrecisionBias;
- #pragma warning restore CS0649
- /// <summary>
- /// Unpacks viewport swizzle of the position X component.
- /// </summary>
- /// <returns>Swizzle enum value</returns>
- public ViewportSwizzle UnpackSwizzleX()
- {
- return (ViewportSwizzle)(Swizzle & 7);
- }
- /// <summary>
- /// Unpacks viewport swizzle of the position Y component.
- /// </summary>
- /// <returns>Swizzle enum value</returns>
- public ViewportSwizzle UnpackSwizzleY()
- {
- return (ViewportSwizzle)((Swizzle >> 4) & 7);
- }
- /// <summary>
- /// Unpacks viewport swizzle of the position Z component.
- /// </summary>
- /// <returns>Swizzle enum value</returns>
- public ViewportSwizzle UnpackSwizzleZ()
- {
- return (ViewportSwizzle)((Swizzle >> 8) & 7);
- }
- /// <summary>
- /// Unpacks viewport swizzle of the position W component.
- /// </summary>
- /// <returns>Swizzle enum value</returns>
- public ViewportSwizzle UnpackSwizzleW()
- {
- return (ViewportSwizzle)((Swizzle >> 12) & 7);
- }
- }
- /// <summary>
- /// Viewport extents for viewport clipping, also includes depth range.
- /// </summary>
- struct ViewportExtents
- {
- #pragma warning disable CS0649
- public ushort X;
- public ushort Width;
- public ushort Y;
- public ushort Height;
- public float DepthNear;
- public float DepthFar;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Draw state for non-indexed draws.
- /// </summary>
- struct VertexBufferDrawState
- {
- #pragma warning disable CS0649
- public int First;
- public int Count;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Color buffer clear color.
- /// </summary>
- struct ClearColors
- {
- #pragma warning disable CS0649
- public float Red;
- public float Green;
- public float Blue;
- public float Alpha;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Depth bias (also called polygon offset) parameters.
- /// </summary>
- struct DepthBiasState
- {
- #pragma warning disable CS0649
- public Boolean32 PointEnable;
- public Boolean32 LineEnable;
- public Boolean32 FillEnable;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Scissor state.
- /// </summary>
- struct ScissorState
- {
- #pragma warning disable CS0649
- public Boolean32 Enable;
- public ushort X1;
- public ushort X2;
- public ushort Y1;
- public ushort Y2;
- public uint Padding;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Stencil test masks for back tests.
- /// </summary>
- struct StencilBackMasks
- {
- #pragma warning disable CS0649
- public int FuncRef;
- public int Mask;
- public int FuncMask;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Render target depth-stencil buffer state.
- /// </summary>
- struct RtDepthStencilState
- {
- #pragma warning disable CS0649
- public GpuVa Address;
- public ZetaFormat Format;
- public MemoryLayout MemoryLayout;
- public int LayerSize;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Screen scissor state.
- /// </summary>
- struct ScreenScissorState
- {
- #pragma warning disable CS0649
- public ushort X;
- public ushort Width;
- public ushort Y;
- public ushort Height;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Vertex attribute vector and component size.
- /// </summary>
- enum VertexAttribSize
- {
- Size32x4 = 1,
- Size32x3 = 2,
- Size16x4 = 3,
- Size32x2 = 4,
- Size16x3 = 5,
- Size8x4 = 0xa,
- Size16x2 = 0xf,
- Size32 = 0x12,
- Size8x3 = 0x13,
- Size8x2 = 0x18,
- Size16 = 0x1b,
- Size8 = 0x1d,
- Rgb10A2 = 0x30,
- Rg11B10 = 0x31
- }
- /// <summary>
- /// Vertex attribute component type.
- /// </summary>
- enum VertexAttribType
- {
- Snorm = 1,
- Unorm = 2,
- Sint = 3,
- Uint = 4,
- Uscaled = 5,
- Sscaled = 6,
- Float = 7
- }
- /// <summary>
- /// Vertex buffer attribute state.
- /// </summary>
- struct VertexAttribState
- {
- #pragma warning disable CS0649
- public uint Attribute;
- #pragma warning restore CS0649
- /// <summary>
- /// Unpacks the index of the vertex buffer this attribute belongs to.
- /// </summary>
- /// <returns>Vertex buffer index</returns>
- public int UnpackBufferIndex()
- {
- return (int)(Attribute & 0x1f);
- }
- /// <summary>
- /// Unpacks the attribute constant flag.
- /// </summary>
- /// <returns>True if the attribute is constant, false otherwise</returns>
- public bool UnpackIsConstant()
- {
- return (Attribute & 0x40) != 0;
- }
- /// <summary>
- /// Unpacks the offset, in bytes, of the attribute on the vertex buffer.
- /// </summary>
- /// <returns>Attribute offset in bytes</returns>
- public int UnpackOffset()
- {
- return (int)((Attribute >> 7) & 0x3fff);
- }
- /// <summary>
- /// Unpacks the Maxwell attribute format integer.
- /// </summary>
- /// <returns>Attribute format integer</returns>
- public uint UnpackFormat()
- {
- return Attribute & 0x3fe00000;
- }
- /// <summary>
- /// Unpacks the Maxwell attribute size.
- /// </summary>
- /// <returns>Attribute size</returns>
- public VertexAttribSize UnpackSize()
- {
- return (VertexAttribSize)((Attribute >> 21) & 0x3f);
- }
- /// <summary>
- /// Unpacks the Maxwell attribute component type.
- /// </summary>
- /// <returns>Attribute component type</returns>
- public VertexAttribType UnpackType()
- {
- return (VertexAttribType)((Attribute >> 27) & 7);
- }
- }
- /// <summary>
- /// Render target draw buffers control.
- /// </summary>
- struct RtControl
- {
- #pragma warning disable CS0649
- public uint Packed;
- #pragma warning restore CS0649
- /// <summary>
- /// Unpacks the number of active draw buffers.
- /// </summary>
- /// <returns>Number of active draw buffers</returns>
- public int UnpackCount()
- {
- return (int)(Packed & 0xf);
- }
- /// <summary>
- /// Unpacks the color attachment index for a given draw buffer.
- /// </summary>
- /// <param name="index">Index of the draw buffer</param>
- /// <returns>Attachment index</returns>
- public int UnpackPermutationIndex(int index)
- {
- return (int)((Packed >> (4 + index * 3)) & 7);
- }
- }
- /// <summary>
- /// 3D, 2D or 1D texture size.
- /// </summary>
- struct Size3D
- {
- #pragma warning disable CS0649
- public int Width;
- public int Height;
- public int Depth;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Stencil front test state and masks.
- /// </summary>
- struct StencilTestState
- {
- #pragma warning disable CS0649
- public Boolean32 Enable;
- public StencilOp FrontSFail;
- public StencilOp FrontDpFail;
- public StencilOp FrontDpPass;
- public CompareOp FrontFunc;
- public int FrontFuncRef;
- public int FrontFuncMask;
- public int FrontMask;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Screen Y control register.
- /// </summary>
- [Flags]
- enum YControl
- {
- NegateY = 1 << 0,
- TriangleRastFlip = 1 << 4
- }
- /// <summary>
- /// Condition for conditional rendering.
- /// </summary>
- enum Condition
- {
- Never,
- Always,
- ResultNonZero,
- Equal,
- NotEqual
- }
- /// <summary>
- /// Texture or sampler pool state.
- /// </summary>
- struct PoolState
- {
- #pragma warning disable CS0649
- public GpuVa Address;
- public int MaximumId;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Stencil back test state.
- /// </summary>
- struct StencilBackTestState
- {
- #pragma warning disable CS0649
- public Boolean32 TwoSided;
- public StencilOp BackSFail;
- public StencilOp BackDpFail;
- public StencilOp BackDpPass;
- public CompareOp BackFunc;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Primitive restart state.
- /// </summary>
- struct PrimitiveRestartState
- {
- #pragma warning disable CS0649
- public Boolean32 Enable;
- public int Index;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// GPU index buffer state.
- /// This is used on indexed draws.
- /// </summary>
- struct IndexBufferState
- {
- #pragma warning disable CS0649
- public GpuVa Address;
- public GpuVa EndAddress;
- public IndexType Type;
- public int First;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Face culling and orientation parameters.
- /// </summary>
- struct FaceState
- {
- #pragma warning disable CS0649
- public Boolean32 CullEnable;
- public FrontFace FrontFace;
- public Face CullFace;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// View volume clip control.
- /// </summary>
- [Flags]
- enum ViewVolumeClipControl
- {
- ForceDepthRangeZeroToOne = 1 << 0,
- DepthClampDisabled = 1 << 11
- }
- /// <summary>
- /// Logical operation state.
- /// </summary>
- struct LogicalOpState
- {
- #pragma warning disable CS0649
- public Boolean32 Enable;
- public LogicalOp LogicalOp;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Render target color buffer mask.
- /// This defines which color channels are written to the color buffer.
- /// </summary>
- struct RtColorMask
- {
- #pragma warning disable CS0649
- public uint Packed;
- #pragma warning restore CS0649
- /// <summary>
- /// Unpacks red channel enable.
- /// </summary>
- /// <returns>True to write the new red channel color, false to keep the old value</returns>
- public bool UnpackRed()
- {
- return (Packed & 0x1) != 0;
- }
- /// <summary>
- /// Unpacks green channel enable.
- /// </summary>
- /// <returns>True to write the new green channel color, false to keep the old value</returns>
- public bool UnpackGreen()
- {
- return (Packed & 0x10) != 0;
- }
- /// <summary>
- /// Unpacks blue channel enable.
- /// </summary>
- /// <returns>True to write the new blue channel color, false to keep the old value</returns>
- public bool UnpackBlue()
- {
- return (Packed & 0x100) != 0;
- }
- /// <summary>
- /// Unpacks alpha channel enable.
- /// </summary>
- /// <returns>True to write the new alpha channel color, false to keep the old value</returns>
- public bool UnpackAlpha()
- {
- return (Packed & 0x1000) != 0;
- }
- }
- /// <summary>
- /// Vertex buffer state.
- /// </summary>
- struct VertexBufferState
- {
- #pragma warning disable CS0649
- public uint Control;
- public GpuVa Address;
- public int Divisor;
- #pragma warning restore CS0649
- /// <summary>
- /// Vertex buffer stride, defined as the number of bytes occupied by each vertex in memory.
- /// </summary>
- /// <returns>Vertex buffer stride</returns>
- public int UnpackStride()
- {
- return (int)(Control & 0xfff);
- }
- /// <summary>
- /// Vertex buffer enable.
- /// </summary>
- /// <returns>True if the vertex buffer is enabled, false otherwise</returns>
- public bool UnpackEnable()
- {
- return (Control & (1 << 12)) != 0;
- }
- }
- /// <summary>
- /// Color buffer blending parameters, shared by all color buffers.
- /// </summary>
- struct BlendStateCommon
- {
- #pragma warning disable CS0649
- public Boolean32 SeparateAlpha;
- public BlendOp ColorOp;
- public BlendFactor ColorSrcFactor;
- public BlendFactor ColorDstFactor;
- public BlendOp AlphaOp;
- public BlendFactor AlphaSrcFactor;
- public uint Unknown0x1354;
- public BlendFactor AlphaDstFactor;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Color buffer blending parameters.
- /// </summary>
- struct BlendState
- {
- #pragma warning disable CS0649
- public Boolean32 SeparateAlpha;
- public BlendOp ColorOp;
- public BlendFactor ColorSrcFactor;
- public BlendFactor ColorDstFactor;
- public BlendOp AlphaOp;
- public BlendFactor AlphaSrcFactor;
- public BlendFactor AlphaDstFactor;
- public uint Padding;
- #pragma warning restore CS0649
- }
- /// <summary>
- /// Graphics shader stage state.
- /// </summary>
- struct ShaderState
- {
- #pragma warning disable CS0649
- public uint Control;
- public uint Offset;
- public uint Unknown0x8;
- public int MaxRegisters;
- public ShaderType Type;
- public uint Unknown0x14;
- public uint Unknown0x18;
- public uint Unknown0x1c;
- public uint Unknown0x20;
- public uint Unknown0x24;
- public uint Unknown0x28;
- public uint Unknown0x2c;
- public uint Unknown0x30;
- public uint Unknown0x34;
- public uint Unknown0x38;
- public uint Unknown0x3c;
- #pragma warning restore CS0649
- /// <summary>
- /// Unpacks shader enable information.
- /// Must be ignored for vertex shaders, those are always enabled.
- /// </summary>
- /// <returns>True if the stage is enabled, false otherwise</returns>
- public bool UnpackEnable()
- {
- return (Control & 1) != 0;
- }
- }
- /// <summary>
- /// Uniform buffer state for the uniform buffer currently being modified.
- /// </summary>
- struct UniformBufferState
- {
- #pragma warning disable CS0649
- public int Size;
- public GpuVa Address;
- public int Offset;
- #pragma warning restore CS0649
- }
- unsafe struct ThreedClassState : IShadowState
- {
- #pragma warning disable CS0649
- public uint SetObject;
- public int SetObjectClassId => (int)((SetObject >> 0) & 0xFFFF);
- public int SetObjectEngineId => (int)((SetObject >> 16) & 0x1F);
- public fixed uint Reserved04[63];
- public uint NoOperation;
- public uint SetNotifyA;
- public int SetNotifyAAddressUpper => (int)((SetNotifyA >> 0) & 0xFF);
- public uint SetNotifyB;
- public uint Notify;
- public NotifyType NotifyType => (NotifyType)(Notify);
- public uint WaitForIdle;
- public uint LoadMmeInstructionRamPointer;
- public uint LoadMmeInstructionRam;
- public uint LoadMmeStartAddressRamPointer;
- public uint LoadMmeStartAddressRam;
- public uint SetMmeShadowRamControl;
- public SetMmeShadowRamControlMode SetMmeShadowRamControlMode => (SetMmeShadowRamControlMode)((SetMmeShadowRamControl >> 0) & 0x3);
- public fixed uint Reserved128[2];
- public uint SetGlobalRenderEnableA;
- public int SetGlobalRenderEnableAOffsetUpper => (int)((SetGlobalRenderEnableA >> 0) & 0xFF);
- public uint SetGlobalRenderEnableB;
- public uint SetGlobalRenderEnableC;
- public int SetGlobalRenderEnableCMode => (int)((SetGlobalRenderEnableC >> 0) & 0x7);
- public uint SendGoIdle;
- public uint PmTrigger;
- public uint PmTriggerWfi;
- public fixed uint Reserved148[2];
- public uint SetInstrumentationMethodHeader;
- public uint SetInstrumentationMethodData;
- public fixed uint Reserved158[10];
- public uint LineLengthIn;
- public uint LineCount;
- public uint OffsetOutUpper;
- public int OffsetOutUpperValue => (int)((OffsetOutUpper >> 0) & 0xFF);
- public uint OffsetOut;
- public uint PitchOut;
- public uint SetDstBlockSize;
- public SetDstBlockSizeWidth SetDstBlockSizeWidth => (SetDstBlockSizeWidth)((SetDstBlockSize >> 0) & 0xF);
- public SetDstBlockSizeHeight SetDstBlockSizeHeight => (SetDstBlockSizeHeight)((SetDstBlockSize >> 4) & 0xF);
- public SetDstBlockSizeDepth SetDstBlockSizeDepth => (SetDstBlockSizeDepth)((SetDstBlockSize >> 8) & 0xF);
- public uint SetDstWidth;
- public uint SetDstHeight;
- public uint SetDstDepth;
- public uint SetDstLayer;
- public uint SetDstOriginBytesX;
- public int SetDstOriginBytesXV => (int)((SetDstOriginBytesX >> 0) & 0xFFFFF);
- public uint SetDstOriginSamplesY;
- public int SetDstOriginSamplesYV => (int)((SetDstOriginSamplesY >> 0) & 0xFFFF);
- public uint LaunchDma;
- public LaunchDmaDstMemoryLayout LaunchDmaDstMemoryLayout => (LaunchDmaDstMemoryLayout)((LaunchDma >> 0) & 0x1);
- public LaunchDmaCompletionType LaunchDmaCompletionType => (LaunchDmaCompletionType)((LaunchDma >> 4) & 0x3);
- public LaunchDmaInterruptType LaunchDmaInterruptType => (LaunchDmaInterruptType)((LaunchDma >> 8) & 0x3);
- public LaunchDmaSemaphoreStructSize LaunchDmaSemaphoreStructSize => (LaunchDmaSemaphoreStructSize)((LaunchDma >> 12) & 0x1);
- public bool LaunchDmaReductionEnable => (LaunchDma & 0x2) != 0;
- public LaunchDmaReductionOp LaunchDmaReductionOp => (LaunchDmaReductionOp)((LaunchDma >> 13) & 0x7);
- public LaunchDmaReductionFormat LaunchDmaReductionFormat => (LaunchDmaReductionFormat)((LaunchDma >> 2) & 0x3);
- public bool LaunchDmaSysmembarDisable => (LaunchDma & 0x40) != 0;
- public uint LoadInlineData;
- public fixed uint Reserved1B8[22];
- public Boolean32 EarlyZForce;
- public fixed uint Reserved214[45];
- public uint SyncpointAction;
- public fixed uint Reserved2CC[21];
- public TessMode TessMode;
- public Array4<float> TessOuterLevel;
- public Array2<float> TessInnerLevel;
- public fixed uint Reserved33C[16];
- public Boolean32 RasterizeEnable;
- public Array4<TfBufferState> TfBufferState;
- public fixed uint Reserved400[192];
- public Array4<TfState> TfState;
- public fixed uint Reserved740[1];
- public Boolean32 TfEnable;
- public fixed uint Reserved748[46];
- public Array8<RtColorState> RtColorState;
- public Array16<ViewportTransform> ViewportTransform;
- public Array16<ViewportExtents> ViewportExtents;
- public fixed uint ReservedD00[29];
- public VertexBufferDrawState VertexBufferDrawState;
- public uint DepthMode;
- public ClearColors ClearColors;
- public float ClearDepthValue;
- public fixed uint ReservedD94[3];
- public uint ClearStencilValue;
- public fixed uint ReservedDA4[2];
- public PolygonMode PolygonModeFront;
- public PolygonMode PolygonModeBack;
- public Boolean32 PolygonSmoothEnable;
- public fixed uint ReservedDB8[2];
- public DepthBiasState DepthBiasState;
- public int PatchVertices;
- public fixed uint ReservedDD0[4];
- public uint TextureBarrier;
- public uint WatchdogTimer;
- public Boolean32 PrimitiveRestartDrawArrays;
- public fixed uint ReservedDEC[5];
- public Array16<ScissorState> ScissorState;
- public fixed uint ReservedF00[21];
- public StencilBackMasks StencilBackMasks;
- public fixed uint ReservedF60[5];
- public uint InvalidateTextures;
- public fixed uint ReservedF78[1];
- public uint TextureBarrierTiled;
- public fixed uint ReservedF80[4];
- public Boolean32 RtColorMaskShared;
- public fixed uint ReservedF94[19];
- public RtDepthStencilState RtDepthStencilState;
- public ScreenScissorState ScreenScissorState;
- public fixed uint ReservedFFC[33];
- public int DrawTextureDstX;
- public int DrawTextureDstY;
- public int DrawTextureDstWidth;
- public int DrawTextureDstHeight;
- public long DrawTextureDuDx;
- public long DrawTextureDvDy;
- public int DrawTextureSamplerId;
- public int DrawTextureTextureId;
- public int DrawTextureSrcX;
- public int DrawTextureSrcY;
- public fixed uint Reserved10B0[18];
- public uint ClearFlags;
- public fixed uint Reserved10FC[25];
- public Array32<VertexAttribState> VertexAttribState;
- public fixed uint Reserved11E0[15];
- public RtControl RtControl;
- public fixed uint Reserved1220[2];
- public Size3D RtDepthStencilSize;
- public SamplerIndex SamplerIndex;
- public fixed uint Reserved1238[37];
- public Boolean32 DepthTestEnable;
- public fixed uint Reserved12D0[4];
- public Boolean32 AlphaToCoverageDitherEnable;
- public Boolean32 BlendIndependent;
- public Boolean32 DepthWriteEnable;
- public Boolean32 AlphaTestEnable;
- public fixed uint Reserved12F0[5];
- public uint VbElementU8;
- public uint Reserved1308;
- public CompareOp DepthTestFunc;
- public float AlphaTestRef;
- public CompareOp AlphaTestFunc;
- public uint Reserved1318;
- public ColorF BlendConstant;
- public fixed uint Reserved132C[4];
- public BlendStateCommon BlendStateCommon;
- public Boolean32 BlendEnableCommon;
- public Array8<Boolean32> BlendEnable;
- public StencilTestState StencilTestState;
- public fixed uint Reserved13A0[3];
- public YControl YControl;
- public float LineWidthSmooth;
- public float LineWidthAliased;
- public fixed uint Reserved13B8[27];
- public uint InvalidateSamplerCacheNoWfi;
- public uint InvalidateTextureHeaderCacheNoWfi;
- public fixed uint Reserved142C[2];
- public uint FirstVertex;
- public uint FirstInstance;
- public fixed uint Reserved143C[53];
- public uint ClipDistanceEnable;
- public uint Reserved1514;
- public float PointSize;
- public uint Reserved151C;
- public Boolean32 PointSpriteEnable;
- public fixed uint Reserved1524[3];
- public uint ResetCounter;
- public Boolean32 MultisampleEnable;
- public Boolean32 RtDepthStencilEnable;
- public uint MultisampleControl;
- public fixed uint Reserved1540[4];
- public GpuVa RenderEnableAddress;
- public Condition RenderEnableCondition;
- public PoolState SamplerPoolState;
- public uint Reserved1568;
- public float DepthBiasFactor;
- public Boolean32 LineSmoothEnable;
- public PoolState TexturePoolState;
- public fixed uint Reserved1580[5];
- public StencilBackTestState StencilBackTestState;
- public fixed uint Reserved15A8[5];
- public float DepthBiasUnits;
- public fixed uint Reserved15C0[4];
- public TextureMsaaMode RtMsaaMode;
- public fixed uint Reserved15D4[5];
- public uint VbElementU32;
- public uint Reserved15EC;
- public uint VbElementU16;
- public fixed uint Reserved15F4[4];
- public uint PointCoordReplace;
- public GpuVa ShaderBaseAddress;
- public uint Reserved1610;
- public uint DrawEnd;
- public uint DrawBegin;
- public fixed uint Reserved161C[10];
- public PrimitiveRestartState PrimitiveRestartState;
- public fixed uint Reserved164C[95];
- public IndexBufferState IndexBufferState;
- public uint IndexBufferCount;
- public uint DrawIndexedSmall;
- public uint DrawIndexedSmall2;
- public uint Reserved17EC;
- public uint DrawIndexedSmallIncInstance;
- public uint DrawIndexedSmallIncInstance2;
- public fixed uint Reserved17F8[33];
- public float DepthBiasClamp;
- public Array16<Boolean32> VertexBufferInstanced;
- public fixed uint Reserved18C0[20];
- public Boolean32 VertexProgramPointSize;
- public uint Reserved1914;
- public FaceState FaceState;
- public fixed uint Reserved1924[2];
- public uint ViewportTransformEnable;
- public fixed uint Reserved1930[3];
- public ViewVolumeClipControl ViewVolumeClipControl;
- public fixed uint Reserved1940[2];
- public Boolean32 PrimitiveTypeOverrideEnable;
- public fixed uint Reserved194C[9];
- public PrimitiveTypeOverride PrimitiveTypeOverride;
- public fixed uint Reserved1974[20];
- public LogicalOpState LogicOpState;
- public uint Reserved19CC;
- public uint Clear;
- public fixed uint Reserved19D4[11];
- public Array8<RtColorMask> RtColorMask;
- public fixed uint Reserved1A20[56];
- public GpuVa SemaphoreAddress;
- public int SemaphorePayload;
- public uint SemaphoreControl;
- public fixed uint Reserved1B10[60];
- public Array16<VertexBufferState> VertexBufferState;
- public fixed uint Reserved1D00[64];
- public Array8<BlendState> BlendState;
- public Array16<GpuVa> VertexBufferEndAddress;
- public fixed uint Reserved1F80[32];
- public Array6<ShaderState> ShaderState;
- public fixed uint Reserved2180[96];
- public uint SetFalcon00;
- public uint SetFalcon01;
- public uint SetFalcon02;
- public uint SetFalcon03;
- public uint SetFalcon04;
- public uint SetFalcon05;
- public uint SetFalcon06;
- public uint SetFalcon07;
- public uint SetFalcon08;
- public uint SetFalcon09;
- public uint SetFalcon10;
- public uint SetFalcon11;
- public uint SetFalcon12;
- public uint SetFalcon13;
- public uint SetFalcon14;
- public uint SetFalcon15;
- public uint SetFalcon16;
- public uint SetFalcon17;
- public uint SetFalcon18;
- public uint SetFalcon19;
- public uint SetFalcon20;
- public uint SetFalcon21;
- public uint SetFalcon22;
- public uint SetFalcon23;
- public uint SetFalcon24;
- public uint SetFalcon25;
- public uint SetFalcon26;
- public uint SetFalcon27;
- public uint SetFalcon28;
- public uint SetFalcon29;
- public uint SetFalcon30;
- public uint SetFalcon31;
- public UniformBufferState UniformBufferState;
- public Array16<uint> UniformBufferUpdateData;
- public fixed uint Reserved23D0[16];
- public uint UniformBufferBindVertex;
- public fixed uint Reserved2414[7];
- public uint UniformBufferBindTessControl;
- public fixed uint Reserved2434[7];
- public uint UniformBufferBindTessEvaluation;
- public fixed uint Reserved2454[7];
- public uint UniformBufferBindGeometry;
- public fixed uint Reserved2474[7];
- public uint UniformBufferBindFragment;
- public fixed uint Reserved2494[93];
- public uint TextureBufferIndex;
- public fixed uint Reserved260C[125];
- public Array4<Array32<uint>> TfVaryingLocations;
- public fixed uint Reserved2A00[640];
- public MmeShadowScratch SetMmeShadowScratch;
- #pragma warning restore CS0649
- }
- }
|