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
erwin coumans
ef224370ab
implement compound versus compound BVH acceleration (quantized tree-versus-tree, using subtrees and quantization) on host
2013-08-16 08:58:52 -07:00
erwin coumans
b32ae0c75c
move some files to shared folders
...
use b3Aabb for compound vs compound on host (for testing, towards BVH)
2013-08-14 17:48:12 -07:00
erwincoumans
678f634699
fix compound collision (host side)
2013-08-11 20:02:07 -07:00
erwincoumans
ac23dbc4be
contact normal should point from B to A (to be consistent with Bullet 2.x)
...
stringify: pre-allocate bigger buffer (10MB, workaround)
2013-08-10 12:08:15 -07:00
erwincoumans
d158507c03
remove m_localPosA for now (it breaks NVIDIA OpenCL, copy of structs > 128 bytes)
2013-08-08 13:28:23 -07:00
erwincoumans
3bf003ace1
change lcpp Lua preprocessor, to keep #defines and comments, remove empty lines
...
remove duplicate data in b3Contact4 (now in btContact4Data shared between CPU/C++ and OpenCL)
OpenCL kernels use #include "Bullet3Collision/NarrowPhaseCollision/shared/b3Contact4Data.h"
Increase number of batches back to 250 (from 50), need to fix this hard coded number (see https://github.com/erwincoumans/bullet3/issues/12 )
Work towards GJK/EPA, in addition to SAT/clipping (early on)
2013-08-08 12:24:09 -07:00
erwincoumans
18eed5b067
further work towards sharing structures/code between C++ and OpenCL
...
(could break the build in C++/OpenCL)
2013-08-03 10:13:13 -07:00
erwincoumans
906415429c
added (and stripped) a simple C/C++ preprocessor (written in Lua), so the stringifier can handle the #include directive,
...
and embed the included files directly in the stringified files.
We need this, because we start sharing struct definitions and code between C/C++ and OpenCL (and potentially other languages)
preprocessor is from http://github.com/willsteel/lcpp
2013-08-01 21:05:19 -07:00
erwincoumans
34de49d8a4
add gjk/epa (host only), possibly improve convex-convex with many edge-edge tests
...
more preparation towards persistent/incremental contact cache
2013-07-31 23:22:43 -07:00
erwincoumans
7992ff816b
use int4 for broadphase pair, it allows to store persistent information in the future
...
(contact cache, applied impulse/warm starting info etc)
2013-07-31 09:58:15 -07:00
erwincoumans
1c0fc6bc2d
report when compound pair capacity is exceeded (and avoid crash)
...
add tetrahedron, reorganized demos
2013-07-30 17:00:50 -07:00
erwin coumans
2793a174c6
added fracture scene .bullet file (doesn't work well yet)
...
added tetrahedral mesh test scene
expose b3Config as member variable for demos.
move a 'glFlush' out of the innerloop (render performance)
SSE -> SSE2 in premake
fix crash in broadphase (when no aabb's exist)
2013-07-30 12:37:16 -07:00
erwincoumans
c05c4b00bb
fix linux build
...
w
2013-07-21 08:43:45 -07:00
erwin coumans
310d31f3d5
tweaks to demos, add middle-mouse support,
2013-07-21 00:36:00 -07:00
erwin coumans
5991eef749
add GPU incremental 3d sap (not enabled by default)
2013-07-20 21:16:24 -07:00
erwincoumans
01fbe80f8f
use int instead of void to avoid 64bit error
2013-07-19 07:10:38 -07:00
erwincoumans
733f9027fb
Deterministic simulation for concave and compound collision shapes: added childShapeA/B to b3Contact4 + sort on them
...
Use tetrahedra instead of barrel for convex demo (until performance for edge-edge is improved)
Increased #overlapping pair capacity from 12 to 16 / objec
2013-07-17 22:42:50 -07:00
erwincoumans
ab125fbb6d
implement GPU breakable constraints
...
add GPU fixed constraint
fix performance issue with concave meshes (didn't clear the number of concave-convex pairs, so it increased every frame)
2013-07-17 16:11:54 -07:00
erwincoumans
3beae80a73
prepare for GPU fixed constraint (not done yet)
2013-07-16 19:05:07 -07:00
erwincoumans
20f9e41ff0
remove some debug printf's from kernel (stringify doesn't handle it properly)
2013-07-15 10:36:02 -07:00
erwincoumans
a5d00c8219
add some clFinish for better profile timings
...
improved parallel batching, don't try to write for static objects,
this fixed a bug, when the hash of a static object was identical with hash of dynamic objects, causing it to be assigned a bogus 100+i batching number
The parallel batching is still not enabled, because we need to measure the batching size (todo)
2013-07-15 10:22:40 -07:00
erwincoumans
05ed1fdbcf
revert to useNewBatchingKernel, the other one is broken (need to figure out why)
2013-07-15 01:06:04 -07:00