diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2022-12-21 15:08:12 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-21 19:08:12 +0100 |
| commit | cb70e7bb30e8ecf5bcdd58b976f2ed5ea8cff947 (patch) | |
| tree | 7728b4f08c47ae7113590e9c20b85454ba091ad8 /Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs | |
| parent | c200a7b7c668acc733a0c20df865662b86859746 (diff) | |
Fix DrawArrays vertex buffer size (#4141)
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs b/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs index cd14259a..0f249512 100644 --- a/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs +++ b/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs @@ -142,6 +142,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed _drawState.FirstIndex = firstIndex; _drawState.IndexCount = indexCount; + _drawState.DrawFirstVertex = drawFirstVertex; + _drawState.DrawVertexCount = drawVertexCount; _currentSpecState.SetHasConstantBufferDrawParameters(false); engine.UpdateState(); @@ -163,10 +165,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed _instancedIndexCount = ibCount != 0 ? ibCount : indexCount; - var drawState = _state.State.VertexBufferDrawState; - - _instancedDrawStateFirst = drawState.First; - _instancedDrawStateCount = drawState.Count; + _instancedDrawStateFirst = drawFirstVertex; + _instancedDrawStateCount = drawVertexCount; _drawState.DrawIndexed = false; @@ -415,6 +415,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed bool oldDrawIndexed = _drawState.DrawIndexed; _drawState.DrawIndexed = false; + engine.ForceStateDirty(VertexBufferFirstMethodOffset * 4); DrawEnd(engine, 0, 0, firstVertex, vertexCount); @@ -526,8 +527,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed } else { - _state.State.VertexBufferDrawState.First = firstVertex; - _state.State.VertexBufferDrawState.Count = count; + _drawState.DrawFirstVertex = firstVertex; + _drawState.DrawVertexCount = count; engine.ForceStateDirty(VertexBufferFirstMethodOffset * 4); } |
