aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/OdeScene.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Move update of the final optional ODE total frame stat inside the OdeLock ↵Justin Clark-Casey (justincc)2012-06-291-3/+3
| | | | rather than outside to avoid a very occasional race condition with the stat collection thread
* refactor: rename _collisionEventPrim to m_collisionEventActors and ↵Justin Clark-Casey (justincc)2012-06-291-12/+12
| | | | | | _collisionEventPrimChanges to m_collisionEventActorsChanges to reflect their actual contents. These dictionaries handle all actor types, not just physical prims.
* Add optional total avatars, total prims and active prims stats to ODE plugin.Justin Clark-Casey (justincc)2012-06-011-0/+21
| | | | | These will act as a sanity check with the main scene stats, to show that physics scene entities are being managed properly. Total prims will not match scene total prims since physics total does not include phantom prims
* If OdeScene.Near() returns no collision contacts, then exit as early as ↵Justin Clark-Casey (justincc)2012-06-011-0/+4
| | | | possible. All subsequent code is only relevant if there are contacts.
* Add optional stat for the other collision time per frame not spent in ODE ↵Justin Clark-Casey (justincc)2012-06-011-1/+16
| | | | native spaces or geom collision code
* Add avatar forces calculation, prim force and raycasting per frame ↵Justin Clark-Casey (justincc)2012-06-011-7/+46
| | | | millisecond optional stats
* Collection optional avatar and prim taint frame millisecond timesJustin Clark-Casey (justincc)2012-06-011-7/+36
|
* Remove recent optional native collision frame milliseconds statJustin Clark-Casey (justincc)2012-06-011-13/+1
| | | | Unnecessary since this has now been broken down into space collisions and geom collisions
* Add optional stat that records milliseconds spent notifying collision ↵Justin Clark-Casey (justincc)2012-06-011-0/+14
| | | | listeners in physics frames
* Add avatar and prim update milliseconds per frame optional statsJustin Clark-Casey (justincc)2012-06-011-7/+31
|
* Add option native step frame ms statJustin Clark-Casey (justincc)2012-06-011-9/+21
|
* Add total ODE frame time optional stat, as a sanity check on the main scene ↵Justin Clark-Casey (justincc)2012-06-011-7/+21
| | | | physics stat
* Break down native ODE collision frame time stat into native space collision ↵Justin Clark-Casey (justincc)2012-06-011-4/+22
| | | | and geom collision stats
* Rename new collision stats to 'contacts' - there are/can be multiple ↵Justin Clark-Casey (justincc)2012-06-011-6/+6
| | | | contacts per collision and this is what is actually being measured.
* Stop adding an unnecessary duplicate _perloopcontact if the avatar is ↵Justin Clark-Casey (justincc)2012-06-011-9/+4
| | | | | | standing on a prim. This has already been added earlier on in the method.
* minor: comment out currently unused OdeScene.sCollisionDataJustin Clark-Casey (justincc)2012-06-011-9/+9
|
* Add ODE avatar and prim collision numbers if extra stats collection is enabled.Justin Clark-Casey (justincc)2012-06-011-5/+34
|
* Fix OdeScene.GetTopColliders() to return the top 25 colliders rather than ↵Justin Clark-Casey (justincc)2012-06-011-19/+13
| | | | | | | | the first 25 that had non-zero collision scores. Also zeros collisions scores on all prims after report collection, not just the top 25. As before, this collision scores are only reset after a report is requested, which may give unrealistic numbers on the first request. So to see more realistic scores, ignore the first report and then refresh the request after a couple of seconds or so.
* Add an optional mechanism for physics modules to collect and return ↵Justin Clark-Casey (justincc)2012-05-311-10/+129
| | | | | | | | | | | arbitrary stats. If active, the physics module can return arbitrary stat counters that can be seen via the MonitoringModule (http://opensimulator.org/wiki/Monitoring_Module) This is only active in OdeScene if collect_stats = true in [ODEPhysicsSettings]. This patch allows OdeScene to collect elapsed time information for calls to the ODE native collision methods to assess what proportion of time this takes compared to total physics processing. This data is returned as ODENativeCollisionFrameMS in the monitoring module, updated every 3 seconds. The performance effect of collecting stats is probably extremely minor, dwarfed by the rest of the physics code.
* Comment out spurious Body != IntPtr.Zero code after disableBody(), since ↵Justin Clark-Casey (justincc)2012-04-211-1/+2
| | | | disableBody() sets Body == IntPtr.Zero on all code paths.
* refactor: precalculate the fixed movement factor for avatar tilting ↵Justin Clark-Casey (justincc)2012-03-201-0/+3
| | | | (sqrt(2)) rather than doing it multiple times on every move.
* refactor: Eliminate unnecessary duplicate avCapsuleTiltedJustin Clark-Casey (justincc)2012-03-201-3/+7
|
* correct the default avatar_terminal_velocity value that I accidentally left ↵Justin Clark-Casey (justincc)2012-02-111-1/+1
| | | | in whilst testing
* Clamp ODE character velocity. Make ODE falling character 54m/s by default.Justin Clark-Casey (justincc)2012-02-111-0/+11
| | | | | | | If velocity reaches 256 in any vector then bad things happen with ODE, so we now clamp this value. In addition, a falling avatar is clamped by default at 54 m/s, which is the same as a falling skydiver. This also appears to be the value used on the linden lab grid. This should resolve http://opensimulator.org/mantis/view.php?id=5882
* Serialize calls to ODE Collide() function across OdeScene instances to ↵Justin Clark-Casey (justincc)2012-01-251-1/+29
| | | | | | | | | prevent ODE crashes on simulators running more than one region. It turns out that calls to Collide() are not thread-safe even for objects in different ODE physics worlds due to ODE static caches. For simulators running multiple regions, not serializing calls from different scene loops will sooner or later cause OpenSim to crash with a native stack trace referencing OBBCollider. This affects the default OPCODE collider but not GIMPACT. However, GIMPACT fails for other reasons under some current simulator loads. ODE provides a thread local storage option, but as of ODE r1755 (and r1840) DLLs compiled with this crash OpenSim immediately.
* Restrict accessible of ODECharacter Shell and Body. Add method doc and some ↵Justin Clark-Casey (justincc)2012-01-241-1/+1
| | | | error log lines.
* Adding commented out log messages and some minor formatting for future bug ↵Justin Clark-Casey (justincc)2012-01-021-0/+1
| | | | hunting. No functional changes.
* Align default ODE_STEPSIZE with that already used through OpenSimDefaults.iniJustin Clark-Casey (justincc)2011-12-221-2/+2
|
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimDiva Canto2011-12-201-1/+1
|\
| * Comment out accidentally left in "Adding physics prim" log messageJustin Clark-Casey (justincc)2011-12-161-1/+1
| |
* | Fixed bug of avie going under the terrain when crossing regions in certain ↵Diva Canto2011-12-201-2/+2
|/ | | | directions. This was a 1-off bug: the terrain was being placed in 127, 127 resulting in a bounding box if -2, 256. I placed it in 128, 128 resulting in a bounding box of -1, 257.
* Code cleanup related to ScenePresence.PhysicsActor and OdeScene/OdeCharacterJustin Clark-Casey (justincc)2011-12-151-5/+21
| | | | | | Stop hiding RemoveAvatar failure, add log messages when characters are removed through defects or re-added unexpectedly. Add commented out log lines for future use. Use automatic property for PhysicsActor for better code readability and simplicity
* minor: add some currently commented log lines for use in debuggingJustin Clark-Casey (justincc)2011-12-141-1/+8
|
* Simplify some manipulation of _taintedActors in OdeSceneJustin Clark-Casey (justincc)2011-12-141-13/+6
|
* Eliminate _taintedPrimsH and _taintedPrimsL (and _taintedPrimLock) in favour ↵Justin Clark-Casey (justincc)2011-12-141-45/+14
| | | | | | of just a _taintedPrims HashSet. There's no point maintaining a list because any pending taint operations are all carried out in the same call anyway.
* minor: remove pointless comment from OdeScene.csJustin Clark-Casey (justincc)2011-12-121-2/+1
|
* remove some mono compiler warningsJustin Clark-Casey (justincc)2011-11-251-4/+4
|
* Log error if we attempt to add/remove an OdeCharacter from the _characters ↵Justin Clark-Casey (justincc)2011-11-221-23/+33
| | | | list inappropriately
* Stop removing actor from the hash maps in OdeScene.RemoveCharacter() since ↵Justin Clark-Casey (justincc)2011-11-221-6/+1
| | | | this is now being down in OdeCharacter.DestroyOdeStructures()
* Comment out uncalled OdeScene.UnCombine()Justin Clark-Casey (justincc)2011-11-221-58/+58
|
* slightly simplify OdeScene.Simulate() by removing bool processtaints, since ↵Justin Clark-Casey (justincc)2011-11-221-23/+11
| | | | | | we can inspect count of taint lists instead. also groups OdeCharacter.CreateOdeStructures() and DestroyOdeStructures() together
* Slightly improve "Unable to space collide" logging message, though I don't ↵Justin Clark-Casey (justincc)2011-11-211-1/+2
| | | | think I've ever seen this.
* Get rid of OdeCharacter != null checks since OdeScene._characters can never ↵Justin Clark-Casey (justincc)2011-11-211-17/+4
| | | | | | contain a null character. Ignoring the ancient code glyphs not to do this....
* remove unnecessary OdeScene._activeprims locking. Code is single-threadedJustin Clark-Casey (justincc)2011-11-211-53/+46
|
* Restore defects list. In hindsight, the reason for this is becuase we can't ↵Justin Clark-Casey (justincc)2011-11-211-80/+97
| | | | | | remove the character whilst iterating over the list. This commit also removes locking on OdeScene._characters since code is single threaded
* simplify operation of OdeScene._perloopContactJustin Clark-Casey (justincc)2011-11-211-45/+51
|
* don't bother locking OdeScene._perloopContact in single threaded codeJustin Clark-Casey (justincc)2011-11-211-47/+42
|
* don't lock OdeScene.contacts since only ever accessed by a single threadJustin Clark-Casey (justincc)2011-11-211-10/+24
|
* Comment out calls to OdeScene.waitForSpaceUnlock() since that method does ↵Justin Clark-Casey (justincc)2011-11-211-12/+13
| | | | nothing right now
* Reduce complexity of OdeScene.Simulate() by fully removing bad characters at ↵Justin Clark-Casey (justincc)2011-11-211-41/+1
| | | | point of detection rather than later on.