Commit Graph

35 Commits

Author SHA1 Message Date
Diva Canto
b84f72df0b Got rid of all hyperassets references. Also fixed accessing textures in user's inventory in foreign grids. 2010-07-04 14:59:15 -07:00
Diva Canto
02a15bc787 Started to clean up the mess with HyperAssets in LLClientView. Fixed HG access to Notecards in user's inventory. 2010-07-04 13:56:03 -07:00
Diva Canto
42f978a478 * HGScene is no more.
* Moved a few key inventory access methods from Scene.Inventory to an IInventoryAccessModule module
2010-01-30 09:23:07 -08:00
John Hurliman
4b5a2f8c02 Merge branch 'htb-throttle' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-14 11:44:17 -07:00
John Hurliman
0d2e6463d7 * Minimized the number of times textures are pulled off the priority queue
* OnQueueEmpty is still called async, but will not be called for a given category if the previous callback for that category is still running. This is the most balanced behavior I could find, and seems to work well
* Added support for the old [ClientStack.LindenUDP] settings (including setting the receive buffer size) and added the new token bucket and global throttle settings
* Added the AssetLoaderEnabled config variable to optionally disable loading assets from XML every startup. This gives a dramatic improvement in startup times for those who don't need the functionality every startup
2009-10-14 11:43:31 -07:00
Diva Canto
63ed605eba Stop the recurring texture requests for textures that truly don't exist. 2009-10-12 17:36:13 -07:00
Diva Canto
c0beeb929e * Fixes http://opensimulator.org/mantis/view.php?id=4225
* Fixes http://opensimulator.org/mantis/view.php?id=3959
* Allows for viewing inventory textures outside home grid
2009-10-12 17:00:01 -07:00
Diva Canto
fc41f2e461 Added guards against the exception reported:
#2009-10-08 12:58:34,462 ERROR - OpenSim.Application [APPLICATION]:
#APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs
#
#Exception: System.Exception: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object.
#   at OpenSim.Region.ClientStack.LindenUDP.J2KImage.SendFirstPacket(LLClientView client) in c:\Opensim\OpenSim\Region\ClientStack\LindenUDP\J2KImage.cs:line 230
#   at OpenSim.Region.ClientStack.LindenUDP.J2KImage.SendPackets(LLClientView client, Int32 maxpack) in c:\Opensim\OpenSim\Region\ClientStack\LindenUDP\J2KImage.cs:line 84
2009-10-08 07:55:06 -07:00
John Hurliman
e7c877407f * Continued work on the new LLUDP implementation. Appears to be functioning, although not everything is reimplemented yet
* Replaced logic in ThreadTracker with a call to System.Diagnostics that does the same thing
* Added Util.StringToBytes256() and Util.StringToBytes1024() to clamp output at byte[256] and byte[1024], respectively
* Fixed formatting for a MySQLAssetData error logging line
2009-10-06 02:38:00 -07:00
John Hurliman
429a84f390 Beginning work on the new LLUDP implementation 2009-10-05 17:38:14 -07:00
Diva Canto
d93e0a0503 Guarding a line that is sometimes throwing a null pointer exception. 2009-10-04 10:30:21 -07:00
Diva Canto
366bfe17ae Trying to avoid the null pointer exception in J2KImage, RunUpdate. 2009-10-04 07:41:10 -07:00
John Hurliman
bdc1345501 * Removed even more unnecessary state variables from J2KImage
* Fixed the incorrect "out of memory?" exception messages and replaced them with useful information
* Cleaned up J2KImage and LLImageManager to conform to coding conventions
2009-10-02 13:08:15 -07:00
Melanie
3ba36bb4d8 Restore the missing image handling to the image manager. The missing
image packet crashes Hippo without a message.
2009-10-02 05:49:27 +01:00
Melanie
18a744cac1 Change texture sending to be driven by the queue empty event from the
packet queue, rather than a timer
2009-10-02 04:04:14 +01:00
John Hurliman
6e0c79b8fe * Rewrote LLImageManager to use a real priority queue and hold minimal state
* Rewrote the logic in J2KImage.RunUpdate()
* Added a default avatar texture (I made it myself)
2009-10-01 17:42:13 -07:00
Melanie
041aaaa62c Prevent null data being sent to the decoder 2009-09-30 22:21:22 +01:00
Melanie
b0c0d6f9d1 Squelch the debug noise from diva's patch 2009-09-30 20:36:20 +01:00
John Hurliman
f56dc5fcda Attempting to improve the robustness of texture decoding by always ignoring LayerInfo.End values and creating guessed default layer boundaries on failed decodes Changed a noisy J2K decode log message from Info to Debug Replacing openjpeg-dotnet decoding with managed CSJ2K decoding. Should be much more reliable, faster, and use less memory
* Re-added openjpeg-dotnet files since they are used elsewhere in OpenSim * Updated prebuild.xml with a reference to CSJ2K

* Renamed IJ2KDecoder and J2KDecoder member names to follow standard naming conventions * Removed j2kDecodeCache cruft and replaced it with the OpenSim cache system * Rewrote the default layer boundary algorithm to use percentages instead of an exponent * Switched from an infinite in-memory cache to an expiring cache (10 minute timeout) * Slightly quieted logging errors for failed texture decodes
2009-09-30 19:26:53 +01:00
Diva Canto
4bf47fa592 This releases the texture assets from LLImageManager cache, and re-requests them later if the client asks for them again. Needs more testing in texture-rich sims. 2009-09-30 18:41:41 +01:00
Dr Scofield
afd5f76648 From: Alan Webb <alan_webb@us.ibm.com>
This change moves texture send processing out of the main
  packet processing loop and moves it to a timer based
  processing cycle.

  Texture packets are sent to the client consistently over
  time. The timer is discontinued whenever there are no
  textures to transmit.

  The behavior of the texture sending mechanism is controlled
  by three variables in the LLCLient section of the config
  file:

   [1] TextureRequestRate (mS) determines how many times per second
       texture send processing will occur. The default is 100mS.
   [2] TextureSendLimit determines how many different textures
       will be considered on each cycle. Textures are selected
       by priority. The old mechanism specified a value of 10 for
       this parameter and this is the default
   [3] TextureDataLimit determines how many packets will be sent for
       each of the selected textures. The old mechanism specified a
       value of 5, so this is the default.

  So the net effect is that TextureSendLimit*TextureDataLimit
  packets will be sent every TextureRequestRate mS.

  Once we have gotten a reasonable feeling for how these parameters
  affect overall processing, it would be nice to autonmically manage
  these values using information about the current status of the
  region and network.

  Note that this also resolves the pathologcal problem that
  previously existed which was that a seated avatar generated very
  few in-bound packets (theoretically) and would therefore be the
  least able to retrieve the images being displayed by a
  projector script.
2009-06-25 07:42:06 +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
diva
275e53b126 This may bring the missing texture back. 2009-05-28 15:05:00 +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
Jeff Ames
8ea12ad6c0 Add copyright header. Formatting cleanup. Ignore some generated files. 2009-05-05 09:59:15 +00:00
Justin Clarke Casey
257fc5515a * minor: remove some mono compiler warnings, minor cleanup 2009-05-04 15:38:36 +00:00
Melanie Thielker
e2327384e0 Catch another j2k decode exception that can be caused by a bad asset 2009-04-29 21:01:01 +00:00
Melanie Thielker
98cdc1efdd Fix a crash that will hit when an image asset is truncated in storage 2009-04-29 20:32:40 +00:00
Dr Scofield
458f7eb9b3 cleaning up, fixing warnings 2009-04-22 09:42:44 +00:00
Charles Krinke
2578db3dfa Thank you kindly, RemedyTomm for a patch that:
Following feedback from 0003440, i've made some changes to the new texture pipeline to optimise
 performance. The changes are:
 - Fixed a math issue where a small percentage of images with a certain size (on the packet boundary) would not have their final data delivered. This issue has been present since pre- 0003440
 - It was suggested that a discardlevel of -1 and a prioriy of 0 meant to abandon the transfer, this is incorrect and caused some textures to clog.
 - The texture throttle blocking queue is now only filled in relation to the actual throttle amount.. i.e, on a connection throttled to 300k, only twenty packets will be placed in the queue at a time, on a larger connection it will be much more. This is to balance responsiveness to requests and speed, and to minimise wasted packets.
 - The engine now keeps track of the number of pending textures, and the stack will not be walked if there's no textures pending, saving CPU. Textures are only considered "pending" when they've already been decoded.
 - As part of the above, some textures may receive twice as much data per cycle if the number of pending textures is below the cycle threshold, this should prevent loading from slowing down when there are fewer textures in the queue.
2009-04-18 18:35:03 +00:00
Teravus Ovares
ab83af0341 * Set eol-style: native on J2KImage.cs 2009-04-13 23:06:29 +00:00
Teravus Ovares
9371df52cb *Bypass J2kDecoder when asset is null 2009-04-13 15:18:38 +00:00
Sean Dague
532ae6d925 if Data is null, shortcut to client.SendImageNotFound, as any other
option at this point is going to give us a NullReferenceException
2009-04-13 15:08:06 +00:00
Sean Dague
b2e5f03942 catch for a null asset so we don't get an exception here, though this
probably just makes the decoder break somewhere else.
2009-04-13 14:52:23 +00:00
Sean Dague
58fd013929 put J2KImage into it's own file, please no doubling up on classes in
files
2009-04-13 14:52:14 +00:00