From 16f180524cc1526e04cd91f33f74ca56f190bc06 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Mon, 4 Aug 2014 19:51:42 -0700 Subject: VertexLoader: do not prepare for vertices if we need to skip them --- Source/Core/VideoCommon/VertexLoaderManager.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Source/Core/VideoCommon/VertexLoaderManager.cpp') diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp index d94af17360..b538684b90 100644 --- a/Source/Core/VideoCommon/VertexLoaderManager.cpp +++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp @@ -9,6 +9,7 @@ #include "Core/HW/Memmap.h" +#include "VideoCommon/BPMemory.h" #include "VideoCommon/IndexGenerator.h" #include "VideoCommon/Statistics.h" #include "VideoCommon/VertexLoader.h" @@ -145,6 +146,13 @@ void RunVertices(int vtx_attr_group, int primitive, int count) return; VertexLoader* loader = RefreshLoader(vtx_attr_group); + if (bpmem.genMode.cullmode == GenMode::CULL_ALL && primitive < 5) + { + // if cull mode is CULL_ALL, ignore triangles and quads + DataSkip(count * loader->GetVertexSize()); + return; + } + // If the native vertex format changed, force a flush. NativeVertexFormat* required_vtx_fmt = GetNativeVertexFormat( loader->GetNativeVertexDeclaration(), -- cgit v1.2.3