From d13de109a5867ee2acf22cd0b5f3f150adcf6310 Mon Sep 17 00:00:00 2001 From: erwin coumans Date: Sun, 10 Nov 2013 23:19:51 -0800 Subject: [PATCH] work towards re-enabling GPU grid broadphase (in addition to GPU sap bp) --- .../GpuDemos/rigidbody/GpuRigidBodyDemo.cpp | 2 +- .../b3GpuGridBroadphase.cpp | 29 ++++++++++++++++--- .../kernels/gridBroadphase.cl | 12 ++++---- .../RigidBody/b3GpuPgsJacobiSolver.cpp | 1 + 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp b/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp index 838ebcb5a..f2c9f4915 100644 --- a/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp +++ b/Demos3/GpuDemos/rigidbody/GpuRigidBodyDemo.cpp @@ -115,7 +115,7 @@ void GpuRigidBodyDemo::initPhysics(const ConstructionInfo& ci) m_data->m_config.m_maxConvexBodies = b3Max(m_data->m_config.m_maxConvexBodies,ci.arraySizeX*ci.arraySizeY*ci.arraySizeZ+10); m_data->m_config.m_maxConvexShapes = m_data->m_config.m_maxConvexBodies; - int maxPairsPerBody = 128; + int maxPairsPerBody = 16; m_data->m_config.m_maxBroadphasePairs = maxPairsPerBody*m_data->m_config.m_maxConvexBodies; m_data->m_config.m_maxContactCapacity = m_data->m_config.m_maxBroadphasePairs; diff --git a/src/Bullet3OpenCL/BroadphaseCollision/b3GpuGridBroadphase.cpp b/src/Bullet3OpenCL/BroadphaseCollision/b3GpuGridBroadphase.cpp index 354434f43..97c730b2d 100644 --- a/src/Bullet3OpenCL/BroadphaseCollision/b3GpuGridBroadphase.cpp +++ b/src/Bullet3OpenCL/BroadphaseCollision/b3GpuGridBroadphase.cpp @@ -115,8 +115,21 @@ void b3GpuGridBroadphase::createLargeProxy(const b3Vector3& aabbMin, const b3Ve void b3GpuGridBroadphase::calculateOverlappingPairs(int maxPairs) { + B3_PROFILE("b3GpuGridBroadphase::calculateOverlappingPairs"); + /* calculateOverlappingPairsHost(maxPairs); - return; + { + + b3AlignedObjectArray cpuPairs; + m_gpuPairs.copyToHost(cpuPairs); + printf("host m_gpuPairs.size()=%d\n",m_gpuPairs.size()); + for (int i=0;i pairsCpu; m_gpuPairs.resize(actualCount); - //m_gpuPairs.copyToHost(pairsCpu); - //printf("?!?\n"); + /* + b3AlignedObjectArray pairsCpu; + m_gpuPairs.copyToHost(pairsCpu); + + printf("m_gpuPairs.size()=%d\n",m_gpuPairs.size()); + for (int i=0;i