Bullet 2.73 SP1 released: fast btCudaBroadphase, SSE solver

Open source Bullet Physics SDK release information
Post Reply
bullet_team
Posts: 16
Joined: Mon Oct 28, 2013 12:18 am

Bullet 2.73 SP1 released: fast btCudaBroadphase, SSE solver

Post by bullet_team » Sun Nov 16, 2008 8:42 am

Bullet 2.73 SP1 has been released, from SVN revision r1554 (Updated December 2, 2008)

http://code.google.com/p/bullet/downloads/list
  • *** NEW *** SP1 release fixes several issues related to contact/compounds and adds a SIMD/SSE constraint solver
  • Improved CUDA broadphase support. See Bullet/Extras/CUDA and CDTestFramework for a benchmark. It has an excellent worst case, and for large amount of objects it outperform SAP and btDbvt hands down.
  • Improved ray test and convex sweep test performance using broadphase acceleration structure
  • Added btGhostObject. This helps character controller, explosions, triggers and other local collision queries and short ray tests. It is now used by the btKinematicCharacterController.
  • Improved CMake support with 'install', VERSION info and OSX 'framework' support, thanks to ejtttje
  • IBM Cell SDK 3.1 build support, thanks to emgruett, Joczhen and danieltracy
  • Improved btHeightfieldTerrainShape support and new Demos/TerrainDemo
  • Compound shape export to BulletColladaConverter, thanks to JamesH for the report.
  • Several fixes thanks to Ole K, related to inertia tensor computation, avoiding non-determinism and more.
  • Added Extras/IFF binary chunk serialization library as preparation for in-game native platform serialization (with planned COLLADA physics conversion)
  • Added SCE Physics Effects box-box collision detection for SPU/BulletMultiThreaded version, thanks to Sony Computer Entertainment Japan (SCEI)
  • Moved BulletMultiThreaded and GIMPACT from Extras to /src/BulletMultiThreaded /src/BulletCollision/Gimpact for better integration
  • Removed btPoint3 -> it was a typedef to btVector3. So please find and replace all btPoint3 -> btVector3
  • Add CProfileManager::dumpAll() to dump detailed performance statistics to console using printf. Add this call after stepSimulation().
  • Reduced default memory pool allocation (from 40Mb -> 3Mb), helpful for iPhone developers.
Image
btCudaBroadphase. Even for 8192 objects with little motion coherence: CUDA (btCudaBroadphase) 6ms, OPCODE Array SAP 37ms, Bullet dynamic AABB tree (btDbvtBroadphase): 12ms. The best case for 8192 for the CUDA broadphase is 4ms, where as SAP, btDbvt are practically 0ms.

Thanks to everyone for feedback, bug fixes and improvements.
See also ChangeLog
Feedback is welcome,
Thanks,
Erwin

nadro
Posts: 17
Joined: Tue Jul 03, 2007 10:37 am

Re: Bullet 2.73 released: btGhostObject, btCudaBroadphase

Post by nadro » Thu Nov 20, 2008 2:58 pm

In this release CharacterDemo crash at startup. I also see problems with acces to btRigidBody from my classes. With 2.72 all works properly. I was compiled it via VC2008EE, and I tested on Vista x64 and Windows XP, on both systems I have errors. In Debug mode CharacterDemo is ok.

EDIT -> this was fixed, please download Bullet 2.73 again

nadro
Posts: 17
Joined: Tue Jul 03, 2007 10:37 am

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by nadro » Sun Nov 23, 2008 12:18 pm

Hi, I found source of my second problem in this release:

Code: Select all

Rev 1493: /src/LinearMath/btQuadWord.h
#ifndef USE_LIBSPE2
ATTRIBUTE_ALIGNED16(class) btQuadWordStorage
#else
class btQuadWordStorage
#endif
In small size test application eg. Bullet demos etc. all works ok, but in my game engine I have problem. When I try get access to Body and return some values eg. position, sometimes I don't have properly value. Example:

Code: Select all

class Entity
{
...
btRigidBody* getBody()
{
cout << Body->getCenterOfMassPosition().getY(); // works ok
return Body;
}
...
};
but, when sometimes I get this Body, example:

Code: Select all

cout << World->getEntityManager()->getEntity(0)->getBody()->getCenterOfMassPosition().getY(); // value is wrong
When I use 'class btQuadWordStorage' instead 'ATTRIBUTE_ALIGNED16(class) btQuadWordStorage' all is ok. I use VS2008EE. Maybe 'ATTRIBUTE_ALIGNED16(class) btQuadWordStorage' shouldn't default parameter?

bram
Posts: 45
Joined: Sun Nov 23, 2008 4:43 pm

2.73 and iPhone

Post by bram » Sun Nov 23, 2008 4:49 pm

I used Cmake -G Xcode
With this I could build most OSX demos with Xcode.

When I selected iPhone architecture in Xcode, I could only build the libraries.
The demos, and libGLUI failed.

E.g. libGLUI gave me:
OpenGL/gl.h no such file or directory.

Isn't Bullet supposed to have out-of-box iphone support?

thx,

Bram

User avatar
Erwin Coumans
Site Admin
Posts: 4150
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: 2.73 and iPhone

Post by Erwin Coumans » Mon Nov 24, 2008 3:47 am

bram wrote: Isn't Bullet supposed to have out-of-box iphone support?
Bullet library compiles out-of-the box, but libglui not yet indeed. So for demos/graphics on iPhone we provide the Oolong Engine. Just open Oolong Engine2/Examples/Physics/FallingCubes/FallingCubes.xcodeproj and configure your iPhone developer license.

The Oolong Engine includes the updated Bullet 2.73 library, and uses the same Zlib license:
http://oolongengine.googlecode.com

Hope this helps,
Erwin

User avatar
Erwin Coumans
Site Admin
Posts: 4150
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by Erwin Coumans » Mon Nov 24, 2008 4:26 am

nadro wrote: When I use 'class btQuadWordStorage' instead 'ATTRIBUTE_ALIGNED16(class) btQuadWordStorage' all is ok. I use VS2008EE. Maybe 'ATTRIBUTE_ALIGNED16(class) btQuadWordStorage' shouldn't default parameter?
We are preparing for SIMD support, but if it causes problems we could remove ATTRIBUTE_ALIGNED16 in a future release.
How do you allocate a btRigidBody exactly?

Can you try to add this at line 76 of btRigidBody.h and see if that helps?

Code: Select all

 	BT_DECLARE_ALIGNED_ALLOCATOR(); 
Thanks for the report,
Erwin

simesgreen
Posts: 2
Joined: Fri Nov 30, 2007 12:28 pm

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by simesgreen » Mon Nov 24, 2008 11:38 am

Hi Erwin,

Nice work on the new CUDA broadphase - it's good see somebody using the code from our CUDA SDK for something useful!

There are a lot of ways you could optimize this code. Have you tried doing the scan using CUDPP? It might be a bit faster than doing it on the CPU (avoids the transfers).

Cheers,

Simon.

nadro
Posts: 17
Joined: Tue Jul 03, 2007 10:37 am

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by nadro » Mon Nov 24, 2008 1:48 pm

Hi,

Code: Select all

BT_DECLARE_ALIGNED_ALLOCATOR(); 
don't solve this problem.
How do you allocate a btRigidBody exactly?
I create class "CollisionPack" with CollisionShape, Body, Mass etc. and next I use it for my Entity class. When Entity is create I apply position, rotation and add Body from "CollisionPack" to physic world by 'addRigidBody'

User avatar
rponomarev
Posts: 56
Joined: Sat Mar 08, 2008 12:37 am

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by rponomarev » Tue Nov 25, 2008 12:15 am

simesgreen wrote:Hi Erwin,

Nice work on the new CUDA broadphase - it's good see somebody using the code from our CUDA SDK for something useful!

There are a lot of ways you could optimize this code. Have you tried doing the scan using CUDPP? It might be a bit faster than doing it on the CPU (avoids the transfers).

Cheers,

Simon.
Hello Simon,

Thanks for the reply.
I plan to move more code to the CUDA side and the scan is definitely one of the candidates.
However I don't expect a big perfomance gain from it - now scan takes only a small (~1%) amount of time.
I will optimize the time-consuming code code first

Thanks again,
Roman Ponomarev

Enrico
Posts: 42
Joined: Thu May 17, 2007 9:34 am
Location: Stuttgart, Germany
Contact:

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by Enrico » Tue Nov 25, 2008 1:38 pm

Hi,

you have left some errors in the 2.73 package:
/data/bullet-2.73/Demos/ConstraintDemo/ConstraintDemo.cpp:35:1: warning: "M_PI" redefined
In file included from /data/bullet-2.73/src/LinearMath/btScalar.h:20,
from /data/bullet-2.73/src/LinearMath/btQuadWord.h:19,
from /data/bullet-2.73/src/LinearMath/btVector3.h:20,
from /data/bullet-2.73/src/BulletCollision/CollisionDispatch/btCollisionWorld.h:71,
from /data/bullet-2.73/src/btBulletCollisionCommon.h:22,
from /data/bullet-2.73/src/btBulletDynamicsCommon.h:20,
from /data/bullet-2.73/Demos/ConstraintDemo/ConstraintDemo.cpp:19:
/usr/include/math.h:355:1: warning: this is the location of the previous definition
/data/bullet-2.73/Demos/ConstraintDemo/ConstraintDemo.cpp:36:1: warning: "M_PI_2" redefined
/usr/include/math.h:356:1: warning: this is the location of the previous definition
M_PI is usually defined in math.h, so there is no need to define it anyway again...

Running on Red Hat 5 x86_64:
./autogen.sh
running aclocal
running libtool
libtool worked.
running automake
configure.ac: installing `./missing'
Demos/AllBulletDemos/Makefile.am: installing `./depcomp'
Extras/Makefile.am: installing `./compile'
src/Makefile.am:293: whitespace following trailing backslash
Makefile.am: installing `./COPYING'
running autoheader
running autoconf
configure.ac:120: error: possibly undefined macro: _AC_SRCDIRS
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autogen.sh complete
Then executing ./configure:
checking how to create a directory tree... mkdir -p
checking for install... /usr/bin/install -c
checking for doxygen... doxygen
checking for dot... dot
checking for perl5... no
checking for perl... perl
checking for perl5... (cached) perl
checking for TemplateToolkit... no
checking for ttree... no
checking how to disable C++ exceptions... -fno-exceptions
./configure: line 23155: syntax error near unexpected token `"."'
./configure: line 23155: ` _AC_SRCDIRS(".")'
cmake build compiles so far...

diehard
Posts: 3
Joined: Fri May 30, 2008 2:11 am

Re: Bullet 2.73 released: fast btCudaBroadphase

Post by diehard » Wed Nov 26, 2008 2:42 pm

Hey Erwin Coumans,
Please recognized another nice iPhone engine using Bullet, called sio2:
http://sio2interactive.com/

Join their development group for Bullet support:
http://code.google.com/p/sio2/

lika147
Posts: 1
Joined: Fri Jul 08, 2011 9:01 am

Re: Bullet 2.73 SP1 released: fast btCudaBroadphase, SSE sol

Post by lika147 » Fri Jul 08, 2011 9:04 am

In this release CharacterDemo crash at startup. I also see problems with acces to btRigidBody from my classes. With 2.72 all works properly. I was compiled it internet marketing tips VC2008EE, and I tested on Vista x64 and Windows XP, on both systems I have errors. In Debug mode CharacterDemo is ok.

Post Reply