optimization: only call solveGroup if there is some work: avoid virtual function call, its overhead can be excessive

based on 3000 body benchmark
This commit is contained in:
ejcoumans
2008-01-18 07:10:08 +00:00
parent c0055bdb4a
commit f12f04fb97

View File

@@ -595,7 +595,11 @@ void btDiscreteDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo)
}
}
m_solver->solveGroup( bodies,numBodies,manifolds, numManifolds,startConstraint,numCurConstraints,m_solverInfo,m_debugDrawer,m_stackAlloc,m_dispatcher);
///only call solveGroup if there is some work: avoid virtual function call, its overhead can be excessive
if (numManifolds + numCurConstraints)
{
m_solver->solveGroup( bodies,numBodies,manifolds, numManifolds,startConstraint,numCurConstraints,m_solverInfo,m_debugDrawer,m_stackAlloc,m_dispatcher);
}
}
}