aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs46
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSScene.cs4
2 files changed, 47 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs b/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs
index 6db5f5e..2a820be 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs
@@ -1221,6 +1221,50 @@ private sealed class BulletConstraintXNA : BulletConstraint
1221 //BSParam.TerrainImplementation = 0; 1221 //BSParam.TerrainImplementation = 0;
1222 world.SetGravity(new IndexedVector3(0,0,p.gravity)); 1222 world.SetGravity(new IndexedVector3(0,0,p.gravity));
1223 1223
1224 // Turn off Pooling since globals and pooling are bad for threading.
1225 BulletGlobals.VoronoiSimplexSolverPool.SetPoolingEnabled(false);
1226 BulletGlobals.SubSimplexConvexCastPool.SetPoolingEnabled(false);
1227 BulletGlobals.ManifoldPointPool.SetPoolingEnabled(false);
1228 BulletGlobals.CastResultPool.SetPoolingEnabled(false);
1229 BulletGlobals.SphereShapePool.SetPoolingEnabled(false);
1230 BulletGlobals.DbvtNodePool.SetPoolingEnabled(false);
1231 BulletGlobals.SingleRayCallbackPool.SetPoolingEnabled(false);
1232 BulletGlobals.SubSimplexClosestResultPool.SetPoolingEnabled(false);
1233 BulletGlobals.GjkPairDetectorPool.SetPoolingEnabled(false);
1234 BulletGlobals.DbvtTreeColliderPool.SetPoolingEnabled(false);
1235 BulletGlobals.SingleSweepCallbackPool.SetPoolingEnabled(false);
1236 BulletGlobals.BroadphaseRayTesterPool.SetPoolingEnabled(false);
1237 BulletGlobals.ClosestNotMeConvexResultCallbackPool.SetPoolingEnabled(false);
1238 BulletGlobals.GjkEpaPenetrationDepthSolverPool.SetPoolingEnabled(false);
1239 BulletGlobals.ContinuousConvexCollisionPool.SetPoolingEnabled(false);
1240 BulletGlobals.DbvtStackDataBlockPool.SetPoolingEnabled(false);
1241
1242 BulletGlobals.BoxBoxCollisionAlgorithmPool.SetPoolingEnabled(false);
1243 BulletGlobals.CompoundCollisionAlgorithmPool.SetPoolingEnabled(false);
1244 BulletGlobals.ConvexConcaveCollisionAlgorithmPool.SetPoolingEnabled(false);
1245 BulletGlobals.ConvexConvexAlgorithmPool.SetPoolingEnabled(false);
1246 BulletGlobals.ConvexPlaneAlgorithmPool.SetPoolingEnabled(false);
1247 BulletGlobals.SphereBoxCollisionAlgorithmPool.SetPoolingEnabled(false);
1248 BulletGlobals.SphereSphereCollisionAlgorithmPool.SetPoolingEnabled(false);
1249 BulletGlobals.SphereTriangleCollisionAlgorithmPool.SetPoolingEnabled(false);
1250 BulletGlobals.GImpactCollisionAlgorithmPool.SetPoolingEnabled(false);
1251 BulletGlobals.GjkEpaSolver2MinkowskiDiffPool.SetPoolingEnabled(false);
1252 BulletGlobals.PersistentManifoldPool.SetPoolingEnabled(false);
1253 BulletGlobals.ManifoldResultPool.SetPoolingEnabled(false);
1254 BulletGlobals.GJKPool.SetPoolingEnabled(false);
1255 BulletGlobals.GIM_ShapeRetrieverPool.SetPoolingEnabled(false);
1256 BulletGlobals.TriangleShapePool.SetPoolingEnabled(false);
1257 BulletGlobals.SphereTriangleDetectorPool.SetPoolingEnabled(false);
1258 BulletGlobals.CompoundLeafCallbackPool.SetPoolingEnabled(false);
1259 BulletGlobals.GjkConvexCastPool.SetPoolingEnabled(false);
1260 BulletGlobals.LocalTriangleSphereCastCallbackPool.SetPoolingEnabled(false);
1261 BulletGlobals.BridgeTriangleRaycastCallbackPool.SetPoolingEnabled(false);
1262 BulletGlobals.BridgeTriangleConcaveRaycastCallbackPool.SetPoolingEnabled(false);
1263 BulletGlobals.BridgeTriangleConvexcastCallbackPool.SetPoolingEnabled(false);
1264 BulletGlobals.MyNodeOverlapCallbackPool.SetPoolingEnabled(false);
1265 BulletGlobals.ClosestRayResultCallbackPool.SetPoolingEnabled(false);
1266 BulletGlobals.DebugDrawcallbackPool.SetPoolingEnabled(false);
1267
1224 return world; 1268 return world;
1225 } 1269 }
1226 //m_constraint.ptr, ConstraintParams.BT_CONSTRAINT_STOP_CFM, cfm, ConstraintParamAxis.AXIS_ALL 1270 //m_constraint.ptr, ConstraintParams.BT_CONSTRAINT_STOP_CFM, cfm, ConstraintParamAxis.AXIS_ALL
@@ -1914,7 +1958,7 @@ private sealed class BulletConstraintXNA : BulletConstraint
1914 heightMap, scaleFactor, 1958 heightMap, scaleFactor,
1915 minHeight, maxHeight, upAxis, 1959 minHeight, maxHeight, upAxis,
1916 false); 1960 false);
1917 terrainShape.SetMargin(collisionMargin + 0.5f); 1961 terrainShape.SetMargin(collisionMargin);
1918 terrainShape.SetUseDiamondSubdivision(true); 1962 terrainShape.SetUseDiamondSubdivision(true);
1919 terrainShape.SetUserPointer(id); 1963 terrainShape.SetUserPointer(id);
1920 return new BulletShapeXNA(terrainShape, BSPhysicsShapeType.SHAPE_TERRAIN); 1964 return new BulletShapeXNA(terrainShape, BSPhysicsShapeType.SHAPE_TERRAIN);
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
index 88d50b4..c92c9b9 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
@@ -946,7 +946,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
946 946
947 private void ProcessRegularTaints() 947 private void ProcessRegularTaints()
948 { 948 {
949 if (_taintOperations.Count > 0) // save allocating new list if there is nothing to process 949 if (m_initialized && _taintOperations.Count > 0) // save allocating new list if there is nothing to process
950 { 950 {
951 // swizzle a new list into the list location so we can process what's there 951 // swizzle a new list into the list location so we can process what's there
952 List<TaintCallbackEntry> oldList; 952 List<TaintCallbackEntry> oldList;
@@ -989,7 +989,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
989 // Taints that happen after the normal taint processing but before the simulation step. 989 // Taints that happen after the normal taint processing but before the simulation step.
990 private void ProcessPostTaintTaints() 990 private void ProcessPostTaintTaints()
991 { 991 {
992 if (_postTaintOperations.Count > 0) 992 if (m_initialized && _postTaintOperations.Count > 0)
993 { 993 {
994 Dictionary<string, TaintCallbackEntry> oldList; 994 Dictionary<string, TaintCallbackEntry> oldList;
995 lock (_taintLock) 995 lock (_taintLock)