Commit Graph

135 Commits

Author SHA1 Message Date
erwincoumans
3e8b183587 Avoid breaking up the clipHullHull kernel, it ruins performance. Unfortunately, Mac OSX still requires it.
Use indices instead of copies for small/large aabbs in broadphase (grid / sap)
2014-01-29 15:20:20 -08:00
erwincoumans
ff051f87aa replace 'copy' step of large/small Aabbs by indices 2014-01-29 12:52:31 -08:00
erwin coumans
33ebebd1c9 allow PairBenchmark to select broadphase type, with cpu brute-force, gpu brute-force etc
fix issue in PairBench, related to index offset
allow to add a large AABB in PairBench, to see the effect on the broadphase pair search performance
2014-01-28 17:11:56 -08:00
Erwin Coumans
71f0537c6e add Bullet 2.x constraint solver tests for hinge, with large mass ratio
experiment with Midi controls in PairBenchmark to tune variables (will move it into a utility class, so every demo can easier use it in the future)
fix issue with broadphase, not initializing all pairs properly at pair array overflow
2014-01-28 10:25:04 -08:00
erwincoumans
7cdda65822 Experimenting with GUI in PairBench, still preliminary. Goal is to make it easier to add variables that can be tuned using GUI/gwen
Pre-compile PairBench OpenCL kernel
2014-01-26 11:27:20 -08:00
Erwin Coumans
1a507cca52 remove redundant/wrong glClear
always initialize mpr OpenCL kernels
add a second ragdoll to the demo
2014-01-16 19:18:06 -08:00
Erwin Coumans
0ed7b5c508 adding check on low number of vertices fixes Mac OSX crash 2014-01-16 15:53:53 -08:00
Erwin Coumans
edb0c72166 enable MPR OpenCL for Mac OSX 2014-01-16 14:24:18 -08:00
Erwin Coumans
f14ec7b870 split the unitsphere search in a separate kernel, m_findSeparatingAxisUnitSphereKernel, hopefully it works on Mac OSX OpenCL now. 2014-01-16 14:19:43 -08:00
Erwin Coumans
b53cc5edb8 disable Mpr on Mac OSX (need to split the kernel again...) 2014-01-15 11:24:35 -08:00
Erwin Coumans
472a4068fc Enable MPR by default
Add the contact point from MPR, in addition to SAT/clipping contacts. Added a new kernel to clear/reset the number of contacts in pairs (stored in the z component)
Always sample unit sphere directions, if there are more edge-edge combinations than unit sphere directions (162 by default)
Remember last running demo for Bullet 3 (and save it in a text file, Bullet
Enable the testFileFracture.bullet in the Bullet2FileDemo
2014-01-15 10:35:51 -08:00
erwin coumans
2e55d03fd9 more fixes towards working convex-convex, in case of (too) many edge-edge cases:
1) sample directions over a unit sphere and
2) add a contact, using mpr
add missing bullet.pc.cmake file (for old Bullet 2.x)
2014-01-09 16:22:34 -08:00
erwincoumans
ed73bce9da Move Bullet 2.x demos in a single demo 'AllBullet2Demos', for now only BasicDemo and FeatherstoneDemo is implemented. 2014-01-05 21:58:30 -08:00
erwincoumans
6f9a1c0da2 disable MPR until some issues are fixed (on an NVIDIA GPU, sat axis are not properly computed, resulting in instability) 2014-01-04 21:44:53 -08:00
Erwin Coumans
5eb8fd33ad enable MPR by default, needs more testing on various OpenCL configurations (OS, drive, GPU etc) 2014-01-04 21:33:16 -08:00
erwincoumans
271f458837 Ported Minkowski Portal Refinement mpr.c from libccd to OpenCL, for bettwe edge-edge performance (and additional contact point for degenerate/high detailed convex shapes)
Removed b3RigidBodyCL, replace by b3RigidBodyData and b3RigidBodyData_t shared between C++ host and OpenCL,
Same for b3InertiaCL -> b3InertiaData
2014-01-04 20:54:27 -08:00
erwin coumans
09ba86ea36 fix cpu version of findCompoundPairs, in order to fix Mac OSX OpenCL compound issues 2013-12-17 19:25:53 -08:00
Erwin Coumans
7bde13be62 fix issue (apparently closestFaceA/B can be -1, need to figure out how that can ever happen (it shouldn’t) 2013-12-17 16:50:50 -08:00
erwin coumans
7964f2d8c1 split OpenCL kernels: fatal error C1091: compiler limit: string exceeds 65535 bytes in length 2013-12-17 12:33:38 -08:00
Erwin Coumans
7e86932edf avoid out-of-bounds issue for some OpenCL kernel, hanging Mac OSX (should not happen, need to check why)
split kernel for debugging
2013-12-17 10:44:41 -08:00
erwin coumans
7b55ffd237 more rewriting to get this #@!#@!&*( Mac OSX GPU to work 2013-12-16 15:23:43 -08:00
erwin coumans
1dce953d76 one more debug option for a kernel, to fix a Mac OSX issue (one more to go...) 2013-12-16 12:36:22 -08:00
erwincoumans
fc474a0e62 more debugging to fix Mac OSX OpenCL issue on certain GPUs. 2013-12-16 10:53:38 -08:00
erwin coumans
9ebef9552b implement 'new contact reduction' kernel on CPU , for debugging 2013-12-14 10:54:25 -08:00
erwin coumans
d24b1eaae9 better host check code, to determine failing OpenCL kernels on certain (Apple) platforms 2013-12-13 13:27:00 -08:00
erwin coumans
571b14787a implement clipFacesAndFindContactsCPU, to track down OpenCL issue on Mac OSX 2013-12-13 10:05:07 -08:00
erwin coumans
3fe969c4ee b3Solver -> pass pointer to source instead of 0 (was left over from a debugging session), thanks to David for the report
Break up clipHullHullConcaveConvexKernel into multiple stages, so it might 'fit' in Apple's OpenCL implementation
Implemented bvhTraversalKernel and findConcaveSeparatingAxis on CPU (debugging, possible future CPU version)
2013-12-13 07:52:41 -08:00
erwin coumans
c155e126d0 move parts of collision pipeline to shared header files (work-in-progress) 2013-12-12 11:03:55 -08:00
erwin coumans
beb9e98cd3 expose the gUseLargeBatches as command-line argument --use_large_batches 2013-11-21 09:15:52 -08:00
erwin coumans
8a7ad65177 added a variation of the constraint solver, that works on CPU OpenCL (oneBigBatch), one stage (batching) happens on CPU for this mode 2013-11-21 09:15:42 -08:00
erwincoumans
1d5c651753 Use more shared data structures in src\Bullet3OpenCL\NarrowphaseCollision\kernels\satClipHullContacts.cl
Revert default error func (was broken)
2013-11-19 17:52:59 -08:00
erwin coumans
26dfaa441e add some command-line options
--use_jacobi
--allow_opencl_cpu

b3LauncherCL constructor takes string, to make it easier to determine failing OpenCL kernel
b3SetCustomErrorMessageFunc, printf error and exit(0)
2013-11-19 13:42:53 -08:00
erwincoumans
a78cbcf354 Accidently left some very slow copyToHost in the batching code, removing it makes it faster :-) 2013-11-12 09:03:30 -08:00
erwincoumans
5ce0b3938f Re-introduce GPU parallel Jacobi solver, called btGpuJacobiContactSolver. There are still some issues, but for basic scene's it works.
To avoid confusion, rename GPU contact solver to btGpuContactSolver, and constraint (non-contact) solver to btPgsConstraintSolver.
2013-11-11 21:15:06 -08:00
erwincoumans
ef6be5370d more work towards hybrid of GPU grid and sap broadphase, separating small, large (moving) and static objects
re-enable 'useNewBatchingKernel', it is slower but more robust
2013-11-11 02:19:04 -08:00
erwin coumans
d13de109a5 work towards re-enabling GPU grid broadphase (in addition to GPU sap bp) 2013-11-10 23:19:51 -08:00
erwincoumans
b0c43520e3 more work towards re-enabling grid broadphase. 2013-11-10 22:00:35 -08:00
erwincoumans
ad8585f184 prepare for btGpuGridBroadphase 2013-11-10 14:15:23 -08:00
erwincoumans
a6bc61ad1a tweaked the particle demo a little bit 2013-11-08 23:21:01 -08:00
erwincoumans
768ea211a6 add a waiting message, during startup of a demo.
fix an OpenCL kernel, broken in previous commit.
2013-11-07 16:47:18 -08:00
erwin coumans
e85bae5fe3 share more data structures and code between OpenCL kernels and C/C++ code on CPU (non-OpenCL)
integrateSingleTransform
fix bug in registerRigidBody (could lead to random crashes, especially when performing picking/adding rigid bodies afterwards)
2013-11-07 15:49:57 -08:00
erwin coumans
e20cb22832 share more data structures and code between OpenCL and C/C++ on CPU:
move the setConstraint4/b3ConvertConstraint4 to shared code.
2013-11-07 12:46:01 -08:00
erwin coumans
a9a758dd54 share more code between OpenCL kernels and C++ by moving kernel data structures/code to the 'shared' folders 2013-11-06 19:57:36 -08:00
erwin coumans
fcd5541b04 fix BasicGpuDemo compilation 2013-09-17 14:46:11 -07:00
erwincoumans
181a323631 move b3RaycastInfo.h so it can be used without OpenCL dependency
add b3Assert to make sure m_maxShapeCapacityInBytes is not exceeded in GLInstancingRenderer
prepare for CpuSoftClothDemo
2013-09-02 22:31:48 -07:00
erwin coumans
a6d9cf382f more work towards cpu pipeline, sharing OpenCL kernel code 2013-08-30 16:30:22 -07:00
erwincoumans
0ccb6922a8 more work towards CPU version 2013-08-30 08:06:46 -07:00
erwin coumans
2c019d579f reduce memory allocation, lack of GPU memory totally destroys performance on my GTX 650M on the Macbook retina
add some keys to toggle gui drawing and shadows
2013-08-22 23:15:37 -07:00
erwincoumans
677722bba3 support compound versus compound collision shape acceleration on GPU, using aabb tree versus aabb tree.
Remove constructor from b3Vector3,  to make it a POD type, so it can go into a union (and more compatible with OpenCL float4)
Use b3MakeVector3 instead of constructor
Share some code between C++ and GPU in a shared file: see b3TransformAabb2 in src/Bullet3Collision/BroadPhaseCollision/shared/b3Aabb.h
Improve PairBench a bit, show timings and #overlapping pairs.
Increase shadowmap default size to 8192x8192 (hope the GPU supports it)
2013-08-20 03:19:59 -07:00
erwincoumans
41ba48b10d fix compound-compound tree/tree collision on the host side (still need to implement it for all cases, and on GPU/OpenCL) 2013-08-16 10:33:38 -07:00