aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-12-21 15:08:12 -0300
committerGitHub <noreply@github.com>2022-12-21 19:08:12 +0100
commitcb70e7bb30e8ecf5bcdd58b976f2ed5ea8cff947 (patch)
tree7728b4f08c47ae7113590e9c20b85454ba091ad8 /Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
parentc200a7b7c668acc733a0c20df865662b86859746 (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.cs13
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);
}