summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoader_Position.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2023-01-12 16:35:57 -0800
committerPokechu22 <Pokechu022@gmail.com>2023-01-13 15:38:00 -0800
commit3910bdd68b227bbf62c9822d173879e4dee3ccb3 (patch)
tree596bc70ef82211df2504bbc8374887fb7735dc1a /Source/Core/VideoCommon/VertexLoader_Position.cpp
parent16c0593a52ddaf3a5bde17a2f56f46b9618e5928 (diff)
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).
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoader_Position.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexLoader_Position.cpp2
1 files changed, 1 insertions, 1 deletions
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);
}