BulletMultiThreeded SpuGatheringCollisionDispatcher: minor change in batch size of scheduled pairs: use 128 by default, unless the number of pairs is less then (total amount of tasks * batch size)
This commit is contained in:
@@ -178,14 +178,21 @@ void SpuGatheringCollisionDispatcher::dispatchAllCollisionPairs(btOverlappingPai
|
|||||||
|
|
||||||
//send one big batch
|
//send one big batch
|
||||||
int numTotalPairs = pairCache->getNumOverlappingPairs();
|
int numTotalPairs = pairCache->getNumOverlappingPairs();
|
||||||
|
|
||||||
btBroadphasePair* pairPtr = pairCache->getOverlappingPairArrayPtr();
|
btBroadphasePair* pairPtr = pairCache->getOverlappingPairArrayPtr();
|
||||||
int i;
|
int i;
|
||||||
{
|
{
|
||||||
|
int pairRange = SPU_BATCHSIZE_BROADPHASE_PAIRS;
|
||||||
|
if (numTotalPairs < (m_spuCollisionTaskProcess->getNumTasks()*SPU_BATCHSIZE_BROADPHASE_PAIRS))
|
||||||
|
{
|
||||||
|
pairRange = (numTotalPairs/m_spuCollisionTaskProcess->getNumTasks())+1;
|
||||||
|
}
|
||||||
|
|
||||||
BT_PROFILE("addWorkToTask");
|
BT_PROFILE("addWorkToTask");
|
||||||
for (i=0;i<numTotalPairs;)
|
for (i=0;i<numTotalPairs;)
|
||||||
{
|
{
|
||||||
//Performance Hint: tweak this number during benchmarking
|
//Performance Hint: tweak this number during benchmarking
|
||||||
static const int pairRange = SPU_BATCHSIZE_BROADPHASE_PAIRS;
|
|
||||||
int endIndex = (i+pairRange) < numTotalPairs ? i+pairRange : numTotalPairs;
|
int endIndex = (i+pairRange) < numTotalPairs ? i+pairRange : numTotalPairs;
|
||||||
m_spuCollisionTaskProcess->addWorkToTask(pairPtr,i,endIndex);
|
m_spuCollisionTaskProcess->addWorkToTask(pairPtr,i,endIndex);
|
||||||
i = endIndex;
|
i = endIndex;
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ subject to the following restrictions:
|
|||||||
///Too big value might render some SPUs are idle, while a few other SPUs are doing all work.
|
///Too big value might render some SPUs are idle, while a few other SPUs are doing all work.
|
||||||
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 8
|
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 8
|
||||||
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 16
|
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 16
|
||||||
#define SPU_BATCHSIZE_BROADPHASE_PAIRS 64
|
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 64
|
||||||
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 128
|
#define SPU_BATCHSIZE_BROADPHASE_PAIRS 128
|
||||||
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 256
|
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 256
|
||||||
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 512
|
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 512
|
||||||
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 1024
|
//#define SPU_BATCHSIZE_BROADPHASE_PAIRS 1024
|
||||||
|
|||||||
Reference in New Issue
Block a user