VertexLoader: do not prepare for vertices if we need to skip them

This commit is contained in:
Pierre Bourdon 2014-08-04 19:51:42 -07:00
parent 99dc069b9a
commit 16f180524c
2 changed files with 8 additions and 7 deletions

View File

@ -10,7 +10,6 @@
#include "Core/Host.h" #include "Core/Host.h"
#include "VideoCommon/BPMemory.h"
#include "VideoCommon/DataReader.h" #include "VideoCommon/DataReader.h"
#include "VideoCommon/LookUpTables.h" #include "VideoCommon/LookUpTables.h"
#include "VideoCommon/PixelEngine.h" #include "VideoCommon/PixelEngine.h"
@ -840,12 +839,6 @@ void VertexLoader::ConvertVertices ( int count )
void VertexLoader::RunVertices(const VAT& vat, int primitive, int const count) void VertexLoader::RunVertices(const VAT& vat, int primitive, int const count)
{ {
if (bpmem.genMode.cullmode == 3 && primitive < 5)
{
// if cull mode is none, ignore triangles and quads
DataSkip(count * m_VertexSize);
return;
}
SetupRunVertices(vat, primitive, count); SetupRunVertices(vat, primitive, count);
ConvertVertices(count); ConvertVertices(count);
} }

View File

@ -9,6 +9,7 @@
#include "Core/HW/Memmap.h" #include "Core/HW/Memmap.h"
#include "VideoCommon/BPMemory.h"
#include "VideoCommon/IndexGenerator.h" #include "VideoCommon/IndexGenerator.h"
#include "VideoCommon/Statistics.h" #include "VideoCommon/Statistics.h"
#include "VideoCommon/VertexLoader.h" #include "VideoCommon/VertexLoader.h"
@ -145,6 +146,13 @@ void RunVertices(int vtx_attr_group, int primitive, int count)
return; return;
VertexLoader* loader = RefreshLoader(vtx_attr_group); 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. // If the native vertex format changed, force a flush.
NativeVertexFormat* required_vtx_fmt = GetNativeVertexFormat( NativeVertexFormat* required_vtx_fmt = GetNativeVertexFormat(
loader->GetNativeVertexDeclaration(), loader->GetNativeVertexDeclaration(),