From bd13f302240ec3347df73cab9ff06e4845223923 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 22 Mar 2009 23:39:36 +0000 Subject: MSVC project files updated for ffmpeg 0.5 and armature. You must also update lib/windows. --- extern/bullet2/make/msvc_9_0/Bullet.vcproj | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'extern') diff --git a/extern/bullet2/make/msvc_9_0/Bullet.vcproj b/extern/bullet2/make/msvc_9_0/Bullet.vcproj index 6ec064913a5..3130835fdc8 100644 --- a/extern/bullet2/make/msvc_9_0/Bullet.vcproj +++ b/extern/bullet2/make/msvc_9_0/Bullet.vcproj @@ -444,6 +444,10 @@ + + -- cgit v1.2.3 From da39179afd3e66caef8d0d29b67291c7d71af0dc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 08:33:45 +0000 Subject: [#17963] NearSensor segmentation fault bugfix in bullet Caused by using the index from closestAxis4 before checking its -1 --- .../BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'extern') diff --git a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp index d4e29882d37..eecf927ee10 100644 --- a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp +++ b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp @@ -172,6 +172,9 @@ int btPersistentManifold::addManifoldPoint(const btManifoldPoint& newPoint) #if MANIFOLD_CACHE_SIZE >= 4 //sort cache so best points come first, based on area insertIndex = sortCachedPoints(newPoint); + + if (insertIndex<0) + insertIndex=0; #else insertIndex = 0; #endif @@ -180,11 +183,7 @@ int btPersistentManifold::addManifoldPoint(const btManifoldPoint& newPoint) } else { m_cachedPoints++; - - } - if (insertIndex<0) - insertIndex=0; btAssert(m_pointCache[insertIndex].m_userPersistentData==0); m_pointCache[insertIndex] = newPoint; -- cgit v1.2.3 From c31f806c99e14ef54a06ea90f0f66d4d1b2572a1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 04:56:05 +0000 Subject: fix for [#18484] Bullet Crash (possibly because of overlapping rigid body balls) simple missing negative index check. --- .../src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'extern') diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index ea2e0ad2a2b..457e26b1dc0 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -725,9 +725,13 @@ void btDiscreteDynamicsWorld::calculateSimulationIslands() { if (colObj0->isActive() || colObj1->isActive()) { - - getSimulationIslandManager()->getUnionFind().unite((colObj0)->getIslandTag(), - (colObj1)->getIslandTag()); + if ((colObj0)->getIslandTag() != -1 && (colObj1)->getIslandTag() != -1) + { + + getSimulationIslandManager()->getUnionFind().unite((colObj0)->getIslandTag(), + (colObj1)->getIslandTag()); + } + } } } -- cgit v1.2.3 From 51b4145841293d4a695b7bbe88e90ebd98443fc8 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 7 Apr 2009 22:14:06 +0000 Subject: BGE Scenegraph and View frustrum culling improvement. This commit contains a number of performance improvements for the BGE in the Scenegraph (parent relation between objects in the scene) and view frustrum culling. The scenegraph improvement consists in avoiding position update if the object has not moved since last update and the removal of redundant updates and synchronization with the physics engine. The view frustrum culling improvement consists in using the DBVT broadphase facility of Bullet to build a tree of graphical objects in the scene. The elements of the tree are Aabb boxes (Aligned Axis Bounding Boxes) enclosing the objects. This provides good precision in closed and opened scenes. This new culling system is enabled by default but just in case, it can be disabled with a button in the World settings. There is no do_version in this commit but it will be added before the 2.49 release. For now you must manually enable the DBVT culling option in World settings when you open an old file. The above improvements speed up scenegraph and culling up to 5x. However, this performance improvement is only visible when you have hundreds or thousands of objects. The main interest of the DBVT tree is to allow easy occlusion culling and automatic LOD system. This will be the object of further improvements. --- .../src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'extern') diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index 457e26b1dc0..b6231a8fda6 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -350,12 +350,13 @@ int btDiscreteDynamicsWorld::stepSimulation( btScalar timeStep,int maxSubSteps, for (int i=0;i Date: Sun, 19 Apr 2009 16:35:20 +0000 Subject: Fix for libopenjpeg to enable win64 compile (is in their tracker and will most likely be included in next release) --- extern/libopenjpeg/opj_includes.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'extern') diff --git a/extern/libopenjpeg/opj_includes.h b/extern/libopenjpeg/opj_includes.h index 80d43df990f..3464cfcf9ed 100644 --- a/extern/libopenjpeg/opj_includes.h +++ b/extern/libopenjpeg/opj_includes.h @@ -88,6 +88,12 @@ Most compilers implement their own version of this keyword ... /* MSVC does not have lrintf */ #ifdef _MSC_VER +#ifdef _M_X64 +#include +static INLINE long lrintf(float f) { + return _mm_cvtss_si32(_mm_load_ss(&f)); +} +#else static INLINE long lrintf(float f){ int i; @@ -99,6 +105,7 @@ static INLINE long lrintf(float f){ return i; } #endif +#endif #include "j2k_lib.h" #include "opj_malloc.h" -- cgit v1.2.3