aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-10-20* Removed the unused m_agentUpdates collection and some extra work that was ↵John Hurliman1-93/+33
being done for AgentUpdate packets * Start LLUDPClients unpaused (this variable is not being used yet)
2009-10-20Reverting the deletion of files related to texture sending until we figure ↵John Hurliman1-0/+58
out exactly what is and isn't needed
2009-10-20* Removing cruft left over from the conversion to the new texture sending ↵John Hurliman1-58/+0
and UDP code * Changing the cache modules to only initialize the caches if they are actually enabled. Should save a bit of resources from unused cache systems
2009-10-19* Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). ↵John Hurliman5-58/+50
This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference * Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost * Reordered some comparisons on hot code paths for a minor speed boost * Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow) * Don't fire the queue empty callback for the Resend category * Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down * Rewrote some expensive math in LandObject.cs * Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible * Only update the attachment database when an object is attached or detached * Other small misc. performance improvements
2009-10-18* Rewrote the methods that build ObjectUpdate and ImprovedTerseObjectUpdate ↵John Hurliman3-36/+27
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-19Formatting cleanup.Jeff Ames1-2/+2
2009-10-17Committing the second part of Jim Greensky @ Intel Lab's patch, ↵John Hurliman3-3/+124
re-prioritizing updates
2009-10-16* One more tweak to inform the user that they may not be able to move until ↵Teravus Ovares (Dan Olivares)1-3/+5
relogging.
2009-10-16* fix previous commitTeravus Ovares (Dan Olivares)1-1/+1
2009-10-16* Ensure that at least 20 frames run before letting avatar in.Teravus Ovares (Dan Olivares)1-0/+11
2009-10-16Updating OpenSim.ini.example with the section required to enable a useful ↵John Hurliman1-0/+2
prioritization scheme
2009-10-16* Make sure to unregister the OutOfBounds Physics event in ↵Teravus Ovares (Dan Olivares)1-0/+1
RemoveFromPhysicalScene or we'll be leaking
2009-10-16* A hacky attempt at resolving mantis #4260. I think ODE was unable to ↵Teravus Ovares (Dan Olivares)1-0/+9
allocate memory, and therefore the unmanaged wrapper call fails or worse.. there's some unmanaged resource accounting in the ODEPlugin for ODECharacter that isn't being done properly now. * The broken avatar may not be able to move, but it won't stop simulate from pressing on now. And, the simulator will try to destroy the avatar's physics proxy and recreate it again... but if this is what I think it is, it may not help.
2009-10-15Object update prioritization by Jim Greensky of Intel Labs, part one. This ↵John Hurliman9-54/+159
implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon
2009-10-15* Removed some of the redundant broadcast functions in Scene and SceneGraph ↵John Hurliman4-56/+15
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* Request from lkalif to have the Sim send a coarselocationupdate for each ↵Teravus Ovares (Dan Olivares)1-3/+4
avatar in the sim, including yourself. * Apparently the LLClientView should have been doing this previously.. Also fixed the 'You' on the index block.. so the client doesn't display an extra green dot. * Thanks lkalif for bringing it to our attention.
2009-10-14* Replaced (possibly broken?) math for calculating the unix timestamp in ↵John Hurliman3-6/+7
MySQLAssetData with Utils.DateTimeToUnixTime() * Disabled UpdateAccessTime() function since it was only writing zeros anyways. This gave me a significant performance improvement for startup times and avatar logins in standalone mode * Load attachments asynchronously so avatars with lots of attachments don't have to race the timeout clock to login
2009-10-14Setting changeY in border crossing.Diva Canto1-0/+1
2009-10-13Optimized heartbeat by calling Update() only on updated objects.Dan Lake3-73/+52
During the heartbeat loop, Update() is called on every SceneObjectGroup which in turn checks if any SceneObjectPart has changed. For large regions (> 100k prims) this work consumes 20-30% of a CPU even though there are only a few objects updating each frame. There is only one other reason to check every object on every frame, and that is the case where a script has registered the object with an "at target" listener. We can easily track when an object is registered or unregistered with an AtTarget, so this is not a reason to check every object every heartbeat. In the attached patch, I have added a dictionary to the scene which tracks the objects which have At Targets. Each heartbeat, the AtTarget() function will be called on every object registered with a listener for that event. Also, I added a dictionary to SceneGraph which stores references to objects which have been queued for updates during the heartbeat. At each heartbeat, Update() is called only on the objects which have generated updates during that beat.
2009-10-13* Fixes some prim crossings on megaregions with regions beyond the 512m markTeravus Ovares (Dan Olivares)1-21/+93
* There's a slight chance that this could cause a problem with regular prim crossings.. but hopefully not. Revert if it does.
2009-10-13* Consolidated adding / removing ClientManager IClientAPIs to two places in ↵John Hurliman1-0/+4
Scene * Added some missing implementations of IClientAPI.RemoteEndPoint * Added a ClientManager.Remove(UUID) overload * Removed a reference to a missing project from prebuild.xml
2009-10-13* Rewrote ClientManager to remove Lindenisms from OpenSim core, improve ↵John Hurliman2-4/+4
performance by removing locks, and replace LLUDPClientCollection * Removed the confusing (and LL-specific) shutdowncircuit parameter from IClientAPI.Close() * Updated the LLUDP code to only use ClientManager instead of trying to synchronize ClientManager and m_clients * Remove clients asynchronously since it is a very slow operation (including a 2000ms sleep)
2009-10-13* Unregister event handlers in LLUDPServer when a client logs out and ↵John Hurliman4-20/+28
disconnects * Move ViewerEffect handling to Scene.PacketHandlers * Removing the unused CloseAllAgents function * Trimming ClientManager down. This class needs to be reworked to keep LLUDP circuit codes from intruding into the abstract OpenSim core code
2009-10-12Added this one file for the previous commit to work.Diva Canto1-0/+37
2009-10-12* Fixes http://opensimulator.org/mantis/view.php?id=4225Diva Canto3-54/+79
* Fixes http://opensimulator.org/mantis/view.php?id=3959 * Allows for viewing inventory textures outside home grid
2009-10-11Fixed tree crossing. This will alleviateDiva Canto1-56/+54
http://opensimulator.org/mantis/view.php?id=4163
2009-10-10* comment out the velocity test, using updates every 500 ms as set in ↵Teravus Ovares (Dan Olivares)1-2/+4
ScenePresence.AddToPhysicalScene. * This causes time to be counted in ODECharacter and, when a collision occurs, the physics scene will report the collisions only if the the difference of last time it reported the collisions from now was more then the set ms. * This is cool because the time accrues while collisions are not taking place and when they do take place again, you get an immediate update.
2009-10-10* Make ODECharacter respect the scene's requested collision update timeTeravus Ovares (Dan Olivares)1-1/+1
* Set the Scene collision update time to 500 ms
2009-10-10Adjust velocity threshold for triggering flailing. Thanks to KittoFlora for ↵dahlia1-1/+1
researching this.
2009-10-10* Fix incorrect math on the Velocity check in PhysicsCollisionUpdate. This ↵Teravus Ovares (Dan Olivares)1-1/+1
may reduce avatar flailing.
2009-10-10* Move the 'On Collision Update Movement Animation' routine to above the ↵Teravus Ovares (Dan Olivares)1-3/+8
'm_invulnerable' test. It doesn't fix anything but it should really be there anyway.
2009-10-09Change the backup thread to run on a BackgroundWorker instead of a Thread. I ↵John Hurliman1-4/+4
don't have an explanation, but this seems to stop a slow but steady memory leak I was experiencing
2009-10-06A small change in FetchInventoryDescendantsCAPS.Diva Canto1-1/+2
2009-10-06Uncommented log message on CAPs FetchInventoryDescendantsDiva Canto1-3/+3
2009-10-07Uncommented log message on CAPs FetchInventoryDescendantsDiva Canto1-3/+3
2009-10-06* One more debug message on FetchInventoryDescendantsDiva Canto1-0/+1
* More streams close on finally
2009-10-07Revert "Rewrote parts of the code that were double-locking different ↵Melanie2-43/+29
objects. This is about half of the code base reviewed." This reverts commit e992ca025571a891333a57012c2cd4419b6581e5.
2009-10-07Revert "Merging in diva's locking fixes"Melanie2-43/+29
This reverts commit 832cc685138b2244529f10b54b373c34adb4a633.
2009-10-06Rewrote parts of the code that were double-locking different objects. This ↵Diva Canto2-29/+43
is about half of the code base reviewed.
2009-10-06Added a debug line for nebadonJohn Hurliman1-0/+3
2009-10-06Commenting the DEBUG code that I added yesterday, because it's causing mono ↵Diva Canto1-6/+6
to fail with https://bugzilla.novell.com/show_bug.cgi?id=538854
2009-10-06Lock the heartbeat against multiple invocations. May prevent deadlocks and/orMelanie1-0/+10
runaway thread use
2009-10-06Fixing a few compile errors in the previous commitJohn Hurliman1-2/+0
2009-10-05Correction on the DEBUG code.Diva Canto1-4/+3
2009-10-05#if DEBBUG code for monitoring the ThreadPool.Diva Canto1-0/+7
2009-10-04disable physics actors for flexible primsdahlia1-3/+4
2009-10-02* Creates Util.UTF8 and switches some references of Encoding.UTF8 to ↵John Hurliman2-2/+2
Util.UTF8 (not all references were switched since not all OpenSim libraries reference OpenSim.Framework) * Shrinks the largest in-memory object, the LLRAW.HeightmapLookupValue struct (only used for exporting to LLRAW terrain files), to the minimum possible size. This seems to have the odd side effect of cutting the size of the two double[256,256] terrain objects in half. Possibly an alignment optimization?
2009-10-02- cleaning up LandData/ILandObject capitalization issuesdr scofield (aka dirk husemann)3-51/+51
- adding LandDataSerializer to OAR mechanics
2009-10-01Added messages to assertions in the failing tests, so that we know which ↵Diva Canto1-12/+19
ones are failing.
2009-10-02Revert "* Adding Scale to EntityBase * Fixing the incorrect initialization ↵Melanie3-36/+16
of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity" This reverts commit 39842eb4af3b5a8c52d56c0f7f05ad54f0651bb0.