using Ryujinx.Graphics.GAL; using Ryujinx.Graphics.Gpu.Engine.Threed; namespace Ryujinx.Graphics.Gpu.Shader { /// /// State used by the . /// struct GpuChannelGraphicsState { // New fields should be added to the end of the struct to keep disk shader cache compatibility. /// /// Early Z force enable. /// public readonly bool EarlyZForce; /// /// Primitive topology of current draw. /// public readonly PrimitiveTopology Topology; /// /// Tessellation mode. /// public readonly TessMode TessellationMode; /// /// Indicates whenever the viewport transform is disabled. /// public readonly bool ViewportTransformDisable; /// /// Depth mode zero to one or minus one to one. /// public readonly bool DepthMode; /// /// Indicates if the point size is set on the shader or is fixed. /// public readonly bool ProgramPointSizeEnable; /// /// Point size if not set from shader. /// public readonly float PointSize; /// /// Creates a new GPU graphics state. /// /// Early Z force enable /// Primitive topology /// Tessellation mode /// Indicates whenever the viewport transform is disabled /// Depth mode zero to one or minus one to one /// Indicates if the point size is set on the shader or is fixed /// Point size if not set from shader public GpuChannelGraphicsState( bool earlyZForce, PrimitiveTopology topology, TessMode tessellationMode, bool viewportTransformDisable, bool depthMode, bool programPointSizeEnable, float pointSize) { EarlyZForce = earlyZForce; Topology = topology; TessellationMode = tessellationMode; ViewportTransformDisable = viewportTransformDisable; DepthMode = depthMode; ProgramPointSizeEnable = programPointSizeEnable; PointSize = pointSize; } } }