- threading: adding btSequentialImpulseConstraintSolverMt - task scheduler: added parallelSum so that parallel solver can compute residuals - CommonRigidBodyMTBase: add slider for solver least squares residual and allow multithreading without needing OpenMP, TBB, or PPL - taskScheduler: don't wait for workers to sleep/signal at the end of each parallel block - parallel solver: convertContacts split into an allocContactConstraints and setupContactConstraints stage, the latter of which is done in parallel - parallel solver: rolling friction is now interleaved along with normal friction - parallel solver: batchified split impulse solving + some cleanup - parallel solver: sorting batches from largest to smallest - parallel solver: added parallel batch creation - parallel solver: added warmstartingWriteBackContacts func + other cleanup - task scheduler: truncate low bits to preserve determinism with parallelSum - parallel solver: reducing dynamic mem allocs and trying to parallelize more of the batch setup - parallel solver: parallelize updating constraint batch ids for merging - parallel solver: adding debug visualization - task scheduler: make TBB task scheduler parallelSum deterministic - parallel solver: split batch gen code into separate file; allow selection of batch gen method - task scheduler: add sleepWorkerThreadsHint() at end of simulation - parallel solver: added grain size per phase - task Scheduler: fix for strange threading issue; also no need for main thread to wait for workers to sleep - base constraint solver: break out joint setup into separate function for profiling/overriding - parallel solver: allow different batching method for contacts vs joints - base constraint solver: add convertJoint and convertBodies to make it possible to parallelize joint and body conversion - parallel solver: convert joints and bodies in parallel now - parallel solver: speed up batch creation with run-length encoding - parallel solver: batch gen: run-length expansion in parallel; collect constraint info in parallel - parallel solver: adding spatial grid batching method - parallel solver: enhancements to spatial grid batching - sequential solver: moving code for writing back into functions that derived classes can call - parallel solver: do write back of bodies and joints in parallel - parallel solver: removed all batching methods except for spatial grid (others were ineffective) - parallel solver: added 2D or 3D grid batching options; and a bit of cleanup - move btDefaultTaskScheduler into LinearMath project
80 lines
2.2 KiB
CMake
80 lines
2.2 KiB
CMake
|
|
INCLUDE_DIRECTORIES(
|
|
${BULLET_PHYSICS_SOURCE_DIR}/src
|
|
)
|
|
|
|
SET(LinearMath_SRCS
|
|
btAlignedAllocator.cpp
|
|
btConvexHull.cpp
|
|
btConvexHullComputer.cpp
|
|
btGeometryUtil.cpp
|
|
btPolarDecomposition.cpp
|
|
btQuickprof.cpp
|
|
btSerializer.cpp
|
|
btSerializer64.cpp
|
|
btThreads.cpp
|
|
btVector3.cpp
|
|
TaskScheduler/btTaskScheduler.cpp
|
|
TaskScheduler/btThreadSupportPosix.cpp
|
|
TaskScheduler/btThreadSupportWin32.cpp
|
|
)
|
|
|
|
SET(LinearMath_HDRS
|
|
btAabbUtil2.h
|
|
btAlignedAllocator.h
|
|
btAlignedObjectArray.h
|
|
btConvexHull.h
|
|
btConvexHullComputer.h
|
|
btDefaultMotionState.h
|
|
btGeometryUtil.h
|
|
btGrahamScan2dConvexHull.h
|
|
btHashMap.h
|
|
btIDebugDraw.h
|
|
btList.h
|
|
btMatrix3x3.h
|
|
btMinMax.h
|
|
btMotionState.h
|
|
btPolarDecomposition.h
|
|
btPoolAllocator.h
|
|
btQuadWord.h
|
|
btQuaternion.h
|
|
btQuickprof.h
|
|
btRandom.h
|
|
btScalar.h
|
|
btSerializer.h
|
|
btStackAlloc.h
|
|
btThreads.h
|
|
btTransform.h
|
|
btTransformUtil.h
|
|
btVector3.h
|
|
TaskScheduler/btThreadSupportInterface.h
|
|
)
|
|
|
|
ADD_LIBRARY(LinearMath ${LinearMath_SRCS} ${LinearMath_HDRS})
|
|
SET_TARGET_PROPERTIES(LinearMath PROPERTIES VERSION ${BULLET_VERSION})
|
|
SET_TARGET_PROPERTIES(LinearMath PROPERTIES SOVERSION ${BULLET_VERSION})
|
|
|
|
IF (INSTALL_LIBS)
|
|
IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES)
|
|
#FILES_MATCHING requires CMake 2.6
|
|
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5)
|
|
IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
|
|
INSTALL(TARGETS LinearMath DESTINATION .)
|
|
ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
|
|
INSTALL(TARGETS LinearMath
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX})
|
|
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN
|
|
".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE)
|
|
ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
|
|
ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5)
|
|
|
|
IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
|
|
SET_TARGET_PROPERTIES(LinearMath PROPERTIES FRAMEWORK true)
|
|
SET_TARGET_PROPERTIES(LinearMath PROPERTIES PUBLIC_HEADER "${LinearMath_HDRS}")
|
|
ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
|
|
ENDIF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES)
|
|
ENDIF (INSTALL_LIBS)
|