Commit Graph

569 Commits (f8603a215d142f3b83a5ff1dc022b716b3e48f99)

Author SHA1 Message Date
John Hurliman 0e8b5c7ffa Fixing race conditions in the SceneObjectPart properties 2009-11-02 11:40:57 -08:00
John Hurliman 67ac9881fa Removing duplicate SceneObjectPart.RotationalVelocity property 2009-11-02 11:28:35 -08:00
John Hurliman 7132877075 * Log progress messages when loading OAR files with a lot of assets
* Change the PhysicsCollision callback for objects to send full contact point information. This will be used to calculate the collision plane for avatars
* Send the physics engine velocity in terse updates, not the current force being applied to the avatar. This should fix several issues including crouching through the floor and walking through walls
2009-10-29 01:46:58 -07:00
John Hurliman 1c9696a9d2 Always send a time dilation of 1.0 while we debug rubberbanding issues 2009-10-28 15:11:01 -07:00
John Hurliman b81c829576 * Standalone logins will now go through the sequence of "requested region, default region, any region" before giving up
* Hip offset should have been added not subtracted (it's a negative offset). This puts avatar feet closer to the ground
* Improved duplicate checking for terse updates. This should reduce bandwidth and walking through walls
2009-10-28 14:13:17 -07:00
John Hurliman a65c8cdc38 * Reduce the velocity tolerance on sending terse updates to avoid slowly drifting prims/avatars
* Added contacts_per_collision to the ODE config section. This allows you to reduce the maximum number of contact points ODE will generate per collision and reduce the size of the array that stores contact structures
2009-10-28 12:45:40 -07:00
John Hurliman cdbeb8b83b Track timestamps when terse updates were last sent for a prim or avatar to avoid floating away forever until a key is pressed (deviates from SL behavior in a hopefully good way) 2009-10-28 03:21:53 -07:00
KittoFlora 1113b3b6eb Merge branch 'vehicles' into tests
Conflicts:

	OpenSim/Region/Physics/Manager/PhysicsActor.cs
	OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
2009-10-27 22:42:55 +01:00
John Hurliman fefe767476 Lowering the position tolerance of terse updates for ScenePresences to mitigate some of the rubberbanding issues while we are sending incorrect time dilation values 2009-10-27 13:16:58 -07:00
John Hurliman d199767e69 Experimental change of PhysicsVector to Vector3. Untested 2009-10-26 18:23:43 -07:00
John Hurliman b6651ce790 * Double the priority on avatar bake texture requests to get avatars rezzing in faster than the surrounding scene
* Adds duplicate tracking for SceneObjectParts and ScenePresences to avoid sending out duplicate ImprovedTerseObjectUpdate packets
2009-10-26 18:22:32 -07:00
KittoFlora 8428b25939 Add llRotLookat pt1. 2009-10-26 00:10:23 +01:00
John Hurliman 730930955a Changing Scene.ForEachClient to use the synchronous for loop instead of Parallel. This is quite possibly the source of some deadlocking, and at the very least the synchronous version gives better stack traces
* Lock the LLUDPClient RTO math * Add a helper function for backing off the RTO, and follow the optional advice in RFC 2988 to clear existing SRTT and RTTVAR values during a backoff

* Removing the unused PrimitiveBaseShape.SculptImage parameter * Improved performance of SceneObjectPart instantiation * ZeroMesher now drops SculptData bytes like Meshmerizer, to allow the texture data to be GCed * Improved typecasting speed in MySQLLegacyRegionData.BuildShape()

* Improved the instantiation of PrimitiveBaseShape
2009-10-25 00:40:21 -07:00
John Hurliman 588361e2a2 Experimental change to use an immutable array for iterating ScenePresences, avoiding locking and copying the list each time it is accessed 2009-10-23 01:02:36 -07:00
Melanie c4969d47d9 Merge branch 'master' into vehicles 2009-10-22 07:12:10 +01:00
John Hurliman 233e16b99c * Rewrote the methods that build ObjectUpdate and ImprovedTerseObjectUpdate packets to fill in the data more accurately and avoid allocating memory that is immediately thrown away
* Changed the Send*Data structs in IClientAPI to use public readonly members instead of private members and getters
* Made Parallel.ProcessorCount public
* Started switching over packet building methods in LLClientView to use Util.StringToBytes[256/1024]() instead of Utils.StringToBytes()
* More cleanup of the ScenePresences vs. ClientManager nightmare
* ScenePresence.HandleAgentUpdate() will now time out and drop incoming AgentUpdate packets after three seconds. This fixes a deadlock on m_AgentUpdates that was blocking up the LLUDP server
2009-10-18 20:24:20 -07:00
John Hurliman 4b75353cbf Object update prioritization by Jim Greensky of Intel Labs, part one. This implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon 2009-10-15 16:35:27 -07:00
John Hurliman d44b50ee46 * Removed some of the redundant broadcast functions in Scene and SceneGraph so it is clear who/what the broadcast is going to each time
* Removed two redundant parameters from SceneObjectPart
* Changed some code in terse update sending that was meant to work with references to work with value types (since Vector3 and Quaternion are structs)
* Committing a preview of a new method for sending object updates efficiently (all commented out for now)
2009-10-15 15:25:02 -07:00
Melanie 0744292b47 Merge branch 'master' into vehicles 2009-10-05 10:17:23 +01:00
dahlia efebc809ce disable physics actors for flexible prims 2009-10-04 02:54:36 -07:00
Melanie 41ff39414b Merge branch 'master' into vehicles 2009-10-01 14:08:15 +01:00
Jeff Ames 606e831ff5 Formatting cleanup. 2009-10-01 09:38:36 +09:00
Kitto Flora d43f739cef And another merge issue 2009-09-30 19:05:39 +02:00
Kitto Flora 11750a272e And another 2009-09-30 19:04:06 +02:00
Kitto Flora 6b65eb76d0 Another small change to avoid later merge conflict 2009-09-30 19:01:55 +02:00
Kitto Flora 53fbc970ca Small chaneg to adapt to trunk 2009-09-30 18:58:52 +02:00
opensim 827b0fb199 Commit initial version of KittoFlora's vehicle changes 2009-09-30 18:51:02 +02:00
Jeff Ames ee205e7e81 Formatting cleanup. 2009-10-01 01:17:47 +09:00
Alan M Webb 2a7bedb5e9 This fix addresses the problem where phantom objects do not
always behave like they are phantom, and llVolumeDetect
  seems to operate in a random fashion.

Signed-off-by: dr scofield (aka dirk husemann) <drscofield@xyzzyxyzzy.net>
2009-09-29 16:55:03 +02:00
Jeff Ames f00126dc2d Add copyright header. Formatting cleanup. 2009-09-29 08:32:59 +09:00
Alan M Webb 88294d9ebf While running a test case I had written to pursue problems with
llDie() not always completely working, I discovered I was
  getting a lot (60+ over 6000 iterations of the test case)
  null pointer exceptions in various physics related checks in
  SceneObjectPart. It was apparent that the (frequent) checks for
  PhysActor being non-null is an insufficient protection in a
  highly asynchronous environment. The null reference exceptions
  are one example of failure, but it could also happen that a
  sequence started with one instance of a PhysicsActor might
  finish with another?
  Anyway, I have implemented a safer mechanism that should
  stop the errors. I re-ran my test case with the fix in place,
  and completed nearly 1000 iterations without a single occurrence.

  SceneObjectPart is seriously in need of rejigging, if not for
  this reason, then for its ridiculous size.

Signed-off-by: dr scofield (aka dirk husemann) <drscofield@xyzzyxyzzy.net>
2009-09-17 17:49:13 +02:00
Teravus Ovares (Dan Olivares) c605509da3 * Lock timers when Calling Start() and Stop() when the Thread Context is murky. This affects Mono only. 2009-09-09 16:20:19 -04:00
Teravus Ovares (Dan Olivares) 44b7c39c93 * Fix the reason why physical vehicles have a problem in virtual regions. 2009-08-29 21:47:28 -04:00
Diva Canto 6808b9109e Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim into inventory-connector 2009-08-16 08:59:58 -07:00
Jeff Ames 9d9fcac038 Misc cleanup. 2009-08-16 17:14:21 +09:00
Diva Canto 1bbf06405c Changed FromAssetID to FromItemID 2009-08-15 09:36:45 -07:00
Jeff Ames 1123a326ab Formatting cleanup. Fix some compiler warnings. 2009-08-13 15:43:24 +09:00
Melanie 4ee8d8a813 Another stab at cmickeyb's patch for script GC.
Moved the Close() for the appdomain-hosted parts into a new destructor
on ScriptInstance.
2009-08-07 20:43:23 +01:00
Melanie f8d8366bfa Revert the XEngine memleak patch, it causes premature GC.
This matches behavior seen with an earlier attempt to do this, apparently
the sponsor mechanism does't work in Mono
2009-08-07 03:04:06 +01:00
Melanie 91f6898b26 |From: James J Greensky <jame.j.greensky@intel.com>
|Date: Wed, 5 Aug 2009 09:51:52 -0700
|Subject: [PATCH] Closed two major memory leaks for scripted objects
|
|Two major memory leaks for the scripted objects were fixed
|- One leak had to do with remoting acrossing app domains.  When a script and
|  its controlling agent communicate across an application boundary, it calls
|  functions on a stub proxy object that then invokes the remote method on
|  the object in the other app domain. These stub objects (two for each script)
|  were setup to have infinate lifetimes and were never being garbage collected.
|- The second leak was the result of adding a scene object part instance method
|  to a scene event and never removing it.  This cause the event's delegate list
|  to maintain a link to that object which is then never freed as the scene event
|  object is never destroyed.

Patch applied, please direct feedback to me. Possible issue: Longtime idle
scripts like vendors may fail.
2009-08-06 22:03:20 +01:00
Melanie 17bdc45c5c Add plumbing for the SceneObjectDeleter to wait for the script engine to
allow final deletion of objects. Meant to support the attach(NULL_KEY) event,
2009-08-04 03:17:13 +01:00
Melanie Thielker fb4067c844 A stab at implementing llSetDamage. Not persistent. 2009-07-15 00:10:01 +00:00
MW 7a2c41dea0 Extracted the code that handles the sending of prim updates to the client, from ScenePresence into ISceneViewer/SceneViewer. Currently ScenePresence "has" a ISceneViewer, although if we had a proper Node based scenegraph then it would most likely be attached directly to the nodes.
By extracting this code, it should make it easier to experiment with different ways of managing the update process. [Next step to make this module based, could be to create a SceneViewerFactoryModule]
2009-06-26 12:09:43 +00:00
Jeff Ames a23d64dec1 Formatting cleanup. 2009-06-10 04:28:56 +00:00
Jeff Ames 840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
Justin Clarke Casey 95643971be * refactor: little tweaks to trigger another build 2009-05-29 21:10:17 +00:00
Justin Clarke Casey 6eb191c87b * Add save xml2 serialization test 2009-05-29 20:20:47 +00:00
Dahlia Trimble 05cbf0b502 reinstate a hopefully more robust experimental decoded sculpt map caching scheme 2009-05-29 06:50:15 +00:00
Dahlia Trimble 1609e7eac0 disable sculpt map caching until a better method of avoiding asset requests can be found 2009-05-29 05:11:50 +00:00
Dahlia Trimble 9493de7f4e null test for texture assets when using cached sculpt map
addresses mantis #3735
2009-05-29 04:29:55 +00:00
Dahlia Trimble db4f8d1298 Experimental decoded sculpt map caching 2009-05-29 02:46:35 +00:00
Dr Scofield 901fdca13b From: Chris Yeoh <cyeoh@au1.ibm.com>
The attached patch implements llPassTouches. It has been added
to the export/import XML along with the flag for AllowedInventoryDrop.

The MySQL backend has been updated as well, though I haven't
done one of those before so could do with a check. I added
the migration mysql file as well.

The other data backends need updating as well.
2009-05-27 18:01:06 +00:00
Dr Scofield c18c1f6c7c Revert "From: Chris Yeoh <cyeoh@au1.ibm.com>"
This reverts r9666. for some reason the mysql update does not work.
2009-05-25 11:32:31 +00:00
Dr Scofield 0bff818d39 From: Chris Yeoh <cyeoh@au1.ibm.com>
The attached patch implements llPassTouches. It has been added
to the export/import XML along with the flag for AllowedInventoryDrop.

The MySQL backend has been updated as well, though I haven't
done one of those before so could do with a check. I added
the migration mysql file as well.

The other data backends need updating as well.
2009-05-25 11:26:36 +00:00
diva 5e4fc6e91e Heart surgery on asset service code bits. Affects OpenSim.ini configuration -- please see the example. Affects region servers only.
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems: 
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
2009-05-15 05:00:25 +00:00
Justin Clarke Casey 257fc5515a * minor: remove some mono compiler warnings, minor cleanup 2009-05-04 15:38:36 +00:00
Charles Krinke ad4738ff33 Thank you kindly, RemedyTomm, for a patch that fixes:
llSetPrimitiveParams in a large linkset can disrupt the 
entire region. However, when the script is in a large 
linkset, it appears to totally lag out the scene and 
stops updates from being sent.
2009-04-25 19:54:51 +00:00
Teravus Ovares 21d4423030 * Allow passing of material type to physics engine
* Define low friction and medium bounce for Glass
2009-04-20 03:07:53 +00:00
nlin 8e6c20b27f Handle ObjectSpin* packets to spin physical prims on Ctrl+Shift+Drag
Addresses Mantis #3381

The current implementation works as expected if the object has no rotation or 
only rotation around the Z axis; you can spin the object left or right (around
the world Z axis).

It works a little unexpectedly if the object has a non-Z-axis rotation; in this
case the body is spun about its local Z axis, not the world Z-axis. (But SL 
also behaves oddly with a spin on an arbitrarily rotated object.)
2009-04-10 06:39:52 +00:00
Teravus Ovares 52c482a7a7 * This updates LibOMV to the current release 0.6.0 on March 19 2009
* Important:  HttpServer.dll was changed to HttpServer_OpenSim.dll so that the HttpServer references do not conflict if you've copied the OpenMetaverse.Http.dll and requirements to the OpenSimulator bin folder.
This means that if you reference HttpServer.dll in any projects, you will need to change the reference to HttpServer_OpenSim.dll.   It still uses the Same HttpServer namespace though.
2009-03-27 22:13:09 +00:00
Justin Clarke Casey 30ffefb67b * refactor: call some EventManager triggers directly rather than through scene 2009-03-27 20:41:35 +00:00
Dahlia Trimble 5cc372fab4 add a taint to SOP.UpdateShape() - addresses Mantis #3277 2009-03-11 04:13:35 +00:00
Charles Krinke b637a11b58 Fixes Mantis #3260. Thank you kindly, MCortez for a patch that:
llSetHoverHeight() should not clamp the x/y position of an object the way MoveTo does, 
and it should recalculate the absolute height to hover at as an object moves to reflect 
the current ground/water height under it.
Correctly implementing required adjusting the Physics interfaces and implementing at 
the physics plug-in level. The attached is a patch that correctly implements 
llSetHoverHeight() including updates to the ODE physics plug-in.
2009-03-06 23:01:35 +00:00
Justin Clarke Casey 0de34e9a18 * remove now unused serialization code 2009-03-05 18:36:37 +00:00
lbsa71 41c883ea47 * Refactored SOP.FolderID weirdness by removing calls to empty setter. YEs, I do realize the setter has to be there for legacy reasons, but since the calls will never acually DO anyhting, I'm removing them.
* So, SOP.FolderID is actually a cruft field that should be removed.
2009-02-25 11:01:38 +00:00
Charles Krinke 8f55b9d735 Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
2009-02-22 20:52:55 +00:00
Justin Clarke Casey 01f70de2ea * Consistently lock part.TaskInventory as pointed out in http://opensimulator.org/mantis/view.php?id=3159
* Not locking causes enumeration exceptions as described in this matis
* part.TaskInventory needs to be locked for every access as it's a dictionary
* Extra locking will hopefully not cause any major issues - in places where the enumeration of the dictionary performs other lock or long running operations, the dictionary is 
cloned instead
2009-02-20 14:04:29 +00:00
Justin Clarke Casey 93837807ff * refactor: remove AssetCache field hanging off Scene
* This is always available at Scene.CommsManager.AssetCache
2009-02-16 19:15:16 +00:00
Dr Scofield 9b66108081 This changeset is the step 1 of 2 in refactoring
OpenSim.Region.Environment into a "framework" part and a modules only
part. This first changeset refactors OpenSim.Region.Environment.Scenes,
OpenSim.Region.Environment.Interfaces, and OpenSim.Region.Interfaces
into OpenSim.Region.Framework.{Interfaces,Scenes} leaving only region
modules in OpenSim.Region.Environment.

The next step will be to move region modules up from
OpenSim.Region.Environment.Modules to OpenSim.Region.CoreModules and
then sort out which modules are really core modules and which should
move out to forge.

I've been very careful to NOT BREAK anything. i hope i've
succeeded. as this is the work of a whole week i hope i managed to
keep track with the applied patches of the last week --- could any of
you that did check in stuff have a look at whether it survived? thx!
2009-02-06 16:55:34 +00:00