From 3910bdd68b227bbf62c9822d173879e4dee3ccb3 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 12 Jan 2023 16:35:57 -0800 Subject: [PATCH] VertexLoader: Don't write position_cache if vertex is skipped This is the behavior in the x64 and ARM64 vertex loaders. I don't know if it makes sense (the whole skipped vertex system seems jank, but several games behave incorrectly without it). --- Source/Core/VideoCommon/VertexLoader_Position.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/VertexLoader_Position.cpp b/Source/Core/VideoCommon/VertexLoader_Position.cpp index 42ebf4985f..946dacdde1 100644 --- a/Source/Core/VideoCommon/VertexLoader_Position.cpp +++ b/Source/Core/VideoCommon/VertexLoader_Position.cpp @@ -62,7 +62,7 @@ void Pos_ReadIndex(VertexLoader* loader) for (int i = 0; i < N; ++i) { const float value = PosScale(Common::FromBigEndian(data[i]), scale); - if (loader->m_remaining < 3) + if (loader->m_remaining < 3 && !loader->m_vertexSkip) VertexLoaderManager::position_cache[loader->m_remaining][i] = value; DataWrite(value); }