Hi,
I'm currently modifying some uppercase7lowercase to compile bullet in blender under linux (with scons). Just in case you are interested in a patch or something...
(bandoler)
Linux build
-
- Posts: 4
- Joined: Thu Jul 07, 2005 8:39 am
I've just compiled blender and run the blends that you ship with the win distribution. They seem to work fine. The one with the spheres seems to have a problem because it is terribly slow, and the one with the cubes has a fall-through problem sometimes...
I haven't tried to build standalone demos though.
(b)
I haven't tried to build standalone demos though.
(b)
-
- Posts: 4
- Joined: Thu Jul 07, 2005 8:39 am
Valgrinding
I've run blender with bullet in linux using valgrind to catch memory errors.
It plots a lot of messages like the following (many are repeated from these).
Maybe it helps. I trust valgrind quite a lot...
(bandoler)
It plots a lot of messages like the following (many are repeated from these).
Code: Select all
==13435== Use of uninitialised value of size 4
==13435== at 0x8604A3B: RigidBody::updateInertiaTensor() (SimdQuadWord.h:48)
==13435== by 0x86042DC: RigidBody::RigidBody(MassProps const&, float, float) (RigidBody.cpp:27)
==13435== by 0x85F5C69: CcdPhysicsController::CcdPhysicsController(CcdConstructionInfo const&) (CcdPhysicsController.cpp:34)
==13435== by 0x859B4C6: KX_BulletPhysicsController::KX_BulletPhysicsController(CcdConstructionInfo const&, bool) (KX_BulletPhysicsController.cpp:13)
==13435== by 0x8593B46: KX_ConvertBulletObject(KX_GameObject*, RAS_MeshObject*, KX_Scene*, PHY_ShapeProps*, PHY_MaterialProps*, KX_ObjectProperties*) (KX_ConvertPhysicsObjects.cpp:1007)
==13435== by 0x8548954: BL_CreatePhysicsObjectNew(KX_GameObject*, Object*, RAS_MeshObject*, KX_Scene*, int, e_PhysicsEngine, KX_BlenderSceneConverter*) (BL_BlenderDataConversion.cpp:821)
==13435== by 0x854A2D4: BL_ConvertBlenderObjects(Main*, STR_String const&, KX_Scene*, KX_KetsjiEngine*, e_PhysicsEngine, _object*, SCA_IInputDevice*, RAS_IRenderTools*, RAS_ICanvas*, KX_BlenderSceneConverter*, bool) (BL_BlenderDataConversion.cpp:1309)
==13435== by 0x8541776: KX_BlenderSceneConverter::ConvertScene(STR_String const&, KX_Scene*, _object*, SCA_IInputDevice*, RAS_IRenderTools*, RAS_ICanvas*) (KX_BlenderSceneConverter.cpp:257)
==13435== by 0x853A46E: StartKetsjiShell (BL_KetsjiEmbedStart.cpp:282)
==13435== by 0x826C3E3: start_game (space.c:478)
==13435== by 0x826EE3D: winqreadview3dspace (space.c:1517)
==13435== by 0x827B305: scrarea_do_winhandle (spacetypes.c:144)
==13435==
==13435== Conditional jump or move depends on uninitialised value(s)
==13435== at 0x8607E83: ManifoldResult::AddContactPoint(SimdVector3 const&, SimdVector3 const&, float) (SimdTransform.h:185)
==13435== by 0x860AAAD: GjkPairDetector::GetClosestPoints(DiscreteCollisionDetectorInterface::ClosestPointInput const&, DiscreteCollisionDetectorInterface::Result&) (GjkPairDetector.cpp:174)
==13435== by 0x860791F: ConvexConvexAlgorithm::ProcessCollision(BroadphaseProxy*, BroadphaseProxy*, float, int, bool) (ConvexConvexAlgorithm.cpp:182)
==13435== by 0x85FBD5B: SimpleBroadphase::DispatchAllCollisionPairs(Dispatcher&, DispatcherInfo&) (SimpleBroadphase.cpp:237)
==13435== by 0x85F7AAD: CcdPhysicsEnvironment::proceedDeltaTime(double, float) (CcdPhysicsEnvironment.cpp:328)
==13435== by 0x858693D: KX_KetsjiEngine::NextFrame() (KX_KetsjiEngine.cpp:391)
==13435== by 0x853A50B: StartKetsjiShell (BL_KetsjiEmbedStart.cpp:304)
==13435== by 0x826C3E3: start_game (space.c:478)
==13435== by 0x826EE3D: winqreadview3dspace (space.c:1517)
==13435== by 0x827B305: scrarea_do_winhandle (spacetypes.c:144)
==13435== by 0x81D78CA: scrarea_dispatch_events (editscreen.c:563)
==13435== by 0x81D8BA6: screen_dispatch_events (editscreen.c:1122)
==13435==
==13435== Conditional jump or move depends on uninitialised value(s)
==13435== at 0x8608133: ManifoldResult::AddContactPoint(SimdVector3 const&, SimdVector3 const&, float) (SimdTransform.h:185)
==13435== by 0x860AAAD: GjkPairDetector::GetClosestPoints(DiscreteCollisionDetectorInterface::ClosestPointInput const&, DiscreteCollisionDetectorInterface::Result&) (GjkPairDetector.cpp:174)
==13435== by 0x860791F: ConvexConvexAlgorithm::ProcessCollision(BroadphaseProxy*, BroadphaseProxy*, float, int, bool) (ConvexConvexAlgorithm.cpp:182)
==13435== by 0x85FBD5B: SimpleBroadphase::DispatchAllCollisionPairs(Dispatcher&, DispatcherInfo&) (SimpleBroadphase.cpp:237)
==13435== by 0x85F7AAD: CcdPhysicsEnvironment::proceedDeltaTime(double, float) (CcdPhysicsEnvironment.cpp:328)
==13435== by 0x858693D: KX_KetsjiEngine::NextFrame() (KX_KetsjiEngine.cpp:391)
==13435== by 0x853A50B: StartKetsjiShell (BL_KetsjiEmbedStart.cpp:304)
==13435== by 0x826C3E3: start_game (space.c:478)
==13435== by 0x826EE3D: winqreadview3dspace (space.c:1517)
==13435== by 0x827B305: scrarea_do_winhandle (spacetypes.c:144)
==13435== by 0x81D78CA: scrarea_dispatch_events (editscreen.c:563)
==13435== by 0x81D8BA6: screen_dispatch_events (editscreen.c:1122)
==13435==
==13435== Use of uninitialised value of size 4
==13435== at 0x860CB29: VoronoiSimplexSolver::UpdateClosestVectorAndPoints() (SimdQuadWord.h:62)
==13435== by 0x860D089: VoronoiSimplexSolver::closest(SimdVector3&) (VoronoiSimplexSolver.cpp:234)
==13435== by 0x860A82B: GjkPairDetector::GetClosestPoints(DiscreteCollisionDetectorInterface::ClosestPointInput const&, DiscreteCollisionDetectorInterface::Result&) (GjkPairDetector.cpp:92)
==13435== by 0x860791F: ConvexConvexAlgorithm::ProcessCollision(BroadphaseProxy*, BroadphaseProxy*, float, int, bool) (ConvexConvexAlgorithm.cpp:182)
==13435== by 0x85FBD5B: SimpleBroadphase::DispatchAllCollisionPairs(Dispatcher&, DispatcherInfo&) (SimpleBroadphase.cpp:237)
==13435== by 0x85F7AAD: CcdPhysicsEnvironment::proceedDeltaTime(double, float) (CcdPhysicsEnvironment.cpp:328)
==13435== by 0x858693D: KX_KetsjiEngine::NextFrame() (KX_KetsjiEngine.cpp:391)
==13435== by 0x853A50B: StartKetsjiShell (BL_KetsjiEmbedStart.cpp:304)
==13435== by 0x826C3E3: start_game (space.c:478)
==13435== by 0x826EE3D: winqreadview3dspace (space.c:1517)
==13435== by 0x827B305: scrarea_do_winhandle (spacetypes.c:144)
==13435== by 0x81D78CA: scrarea_dispatch_events (editscreen.c:563)
(bandoler)
SimdQuadword default constructor
this seems to be 4th component which is usually not used, and not initialized by the default constructor.
For testing I initialized the values in the constructor,
could you do an update blender/extern/bullet/LinearMath/SimdQuadWord.h
and try it again ?
Hopefully it solves most of the uninitialized value's, and potentially even the random collision problem ?
Erwin
For testing I initialized the values in the constructor,
could you do an update blender/extern/bullet/LinearMath/SimdQuadWord.h
and try it again ?
Hopefully it solves most of the uninitialized value's, and potentially even the random collision problem ?
Erwin