diff options
| author | gdk <gab.dark.100@gmail.com> | 2019-10-26 14:50:52 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | 8cba252b238ee6cf6599ad2fc57793e6f76c5e2e (patch) | |
| tree | 5ee98eb374a46e210d4a960f5e1d58b42b3f27eb /Ryujinx.Graphics.Gpu/Engine/MethodClear.cs | |
| parent | 1b7d95519569639135a68e7ebda5148f3263217c (diff) | |
Add per-source type memory change tracking, simplified state change tracking, other fixes
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/MethodClear.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/MethodClear.cs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/MethodClear.cs b/Ryujinx.Graphics.Gpu/Engine/MethodClear.cs index 2072f3fc..b50a1766 100644 --- a/Ryujinx.Graphics.Gpu/Engine/MethodClear.cs +++ b/Ryujinx.Graphics.Gpu/Engine/MethodClear.cs @@ -7,7 +7,9 @@ namespace Ryujinx.Graphics.Gpu.Engine { private void Clear(int argument) { - UpdateState(); + UpdateRenderTargetStateIfNeeded(); + + _textureManager.CommitGraphicsBindings(); bool clearDepth = (argument & 1) != 0; bool clearStencil = (argument & 2) != 0; @@ -18,7 +20,7 @@ namespace Ryujinx.Graphics.Gpu.Engine if (componentMask != 0) { - ClearColors clearColor = _context.State.GetClearColors(); + var clearColor = _context.State.Get<ClearColors>(MethodOffset.ClearColors); ColorF color = new ColorF( clearColor.Red, @@ -26,22 +28,19 @@ namespace Ryujinx.Graphics.Gpu.Engine clearColor.Blue, clearColor.Alpha); - _context.Renderer.Pipeline.ClearRenderTargetColor( - index, - componentMask, - color); + _context.Renderer.Pipeline.ClearRenderTargetColor(index, componentMask, color); } if (clearDepth || clearStencil) { - float depthValue = _context.State.GetClearDepthValue(); - int stencilValue = _context.State.GetClearStencilValue(); + float depthValue = _context.State.Get<float>(MethodOffset.ClearDepthValue); + int stencilValue = _context.State.Get<int> (MethodOffset.ClearStencilValue); int stencilMask = 0; if (clearStencil) { - stencilMask = _context.State.GetStencilTestState().FrontMask; + stencilMask = _context.State.Get<StencilTestState>(MethodOffset.StencilTestState).FrontMask; } _context.Renderer.Pipeline.ClearRenderTargetDepthStencil( |
