aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/Methods.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Methods.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/Methods.cs19
1 files changed, 18 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Methods.cs b/Ryujinx.Graphics.Gpu/Engine/Methods.cs
index 39b3d13c..96741cd6 100644
--- a/Ryujinx.Graphics.Gpu/Engine/Methods.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/Methods.cs
@@ -223,12 +223,17 @@ namespace Ryujinx.Graphics.Gpu.Engine
UpdateTexturePoolState(state);
}
- // Input assembler state.
+ // Rasterizer state.
if (state.QueryModified(MethodOffset.VertexAttribState))
{
UpdateVertexAttribState(state);
}
+ if (state.QueryModified(MethodOffset.LineWidthSmooth, MethodOffset.LineSmoothEnable))
+ {
+ UpdateLineState(state);
+ }
+
if (state.QueryModified(MethodOffset.PointSize,
MethodOffset.VertexProgramPointSize,
MethodOffset.PointSpriteEnable,
@@ -717,6 +722,18 @@ namespace Ryujinx.Graphics.Gpu.Engine
}
/// <summary>
+ /// Updates host line width based on guest GPU state.
+ /// </summary>
+ /// <param name="state">Current GPU state</param>
+ private void UpdateLineState(GpuState state)
+ {
+ float width = state.Get<float>(MethodOffset.LineWidthSmooth);
+ bool smooth = state.Get<Boolean32>(MethodOffset.LineSmoothEnable);
+
+ _context.Renderer.Pipeline.SetLineParameters(width, smooth);
+ }
+
+ /// <summary>
/// Updates host point size based on guest GPU state.
/// </summary>
/// <param name="state">Current GPU state</param>