aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Always provide at least 2 packets of a texture (if the texture is larger ↵Tom Grimshaw2010-06-021-0/+3
| | | | than 1 packet). This fixes compatibility with the newer (broken) SnowGlobe and Emerald viewer(s), but also matches the behaviour of SL.
* * HGScene is no more.Diva Canto2010-01-301-1/+0
| | | | * Moved a few key inventory access methods from Scene.Inventory to an IInventoryAccessModule module
* Merge branch 'htb-throttle' of ssh://opensimulator.org/var/git/opensim into ↵John Hurliman2009-10-141-0/+14
|\ | | | | | | htb-throttle
| * Stop the recurring texture requests for textures that truly don't exist.Diva Canto2009-10-121-2/+2
| |
| * * Fixes http://opensimulator.org/mantis/view.php?id=4225Diva Canto2009-10-121-0/+14
| | | | | | | | | | * Fixes http://opensimulator.org/mantis/view.php?id=3959 * Allows for viewing inventory textures outside home grid
* | * Minimized the number of times textures are pulled off the priority queueJohn Hurliman2009-10-141-11/+14
|/ | | | | | * 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
* Added guards against the exception reported:Diva Canto2009-10-081-0/+9
| | | | | | | | | #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
* * Continued work on the new LLUDP implementation. Appears to be functioning, ↵John Hurliman2009-10-061-21/+12
| | | | | | | | 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
* Beginning work on the new LLUDP implementationJohn Hurliman2009-10-051-2/+4
|
* Guarding a line that is sometimes throwing a null pointer exception.Diva Canto2009-10-041-5/+6
|
* Trying to avoid the null pointer exception in J2KImage, RunUpdate.Diva Canto2009-10-041-1/+9
|
* * Removed even more unnecessary state variables from J2KImageJohn Hurliman2009-10-021-159/+119
| | | | | * Fixed the incorrect "out of memory?" exception messages and replaced them with useful information * Cleaned up J2KImage and LLImageManager to conform to coding conventions
* Restore the missing image handling to the image manager. The missingMelanie2009-10-021-4/+12
| | | | image packet crashes Hippo without a message.
* Change texture sending to be driven by the queue empty event from theMelanie2009-10-021-0/+6
| | | | packet queue, rather than a timer
* * Rewrote LLImageManager to use a real priority queue and hold minimal stateJohn Hurliman2009-10-011-241/+214
| | | | | * Rewrote the logic in J2KImage.RunUpdate() * Added a default avatar texture (I made it myself)
* Prevent null data being sent to the decoderMelanie2009-09-301-2/+5
|
* Squelch the debug noise from diva's patchMelanie2009-09-301-1/+1
|
* Attempting to improve the robustness of texture decoding by always ignoring ↵John Hurliman2009-09-301-1/+1
| | | | | | | | 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
* This releases the texture assets from LLImageManager cache, and re-requests ↵Diva Canto2009-09-301-11/+26
| | | | them later if the client asks for them again. Needs more testing in texture-rich sims.
* From: Alan Webb <alan_webb@us.ibm.com>Dr Scofield2009-06-251-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Minor: Change OpenSim to OpenSimulator in older copyright headers and ↵Jeff Ames2009-06-011-1/+1
| | | | LICENSE.txt.
* This may bring the missing texture back.diva2009-05-281-1/+5
|
* Heart surgery on asset service code bits. Affects OpenSim.ini configuration ↵diva2009-05-151-2/+9
| | | | | | | | | | | | -- 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
* Add copyright header. Formatting cleanup. Ignore some generated files.Jeff Ames2009-05-051-24/+12
|
* * minor: remove some mono compiler warnings, minor cleanupJustin Clarke Casey2009-05-041-16/+9
|
* Catch another j2k decode exception that can be caused by a bad assetMelanie Thielker2009-04-291-29/+34
|
* Fix a crash that will hit when an image asset is truncated in storageMelanie Thielker2009-04-291-1/+11
|
* cleaning up, fixing warningsDr Scofield2009-04-221-1/+1
|
* Thank you kindly, RemedyTomm for a patch that:Charles Krinke2009-04-181-6/+26
| | | | | | | | | | | | 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.
* * Set eol-style: native on J2KImage.csTeravus Ovares2009-04-131-2/+2
|
* *Bypass J2kDecoder when asset is nullTeravus Ovares2009-04-131-0/+4
|
* if Data is null, shortcut to client.SendImageNotFound, as any otherSean Dague2009-04-131-3/+10
| | | | | option at this point is going to give us a NullReferenceException
* catch for a null asset so we don't get an exception here, though thisSean Dague2009-04-131-1/+7
| | | | | probably just makes the decoder break somewhere else.
* put J2KImage into it's own file, please no doubling up on classes inSean Dague2009-04-131-0/+354
files