aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-10-08Added guards against the exception reported:Diva Canto1-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
2009-10-06* Continued work on the new LLUDP implementation. Appears to be functioning, ↵John Hurliman1-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
2009-10-05Beginning work on the new LLUDP implementationJohn Hurliman1-2/+4
2009-10-04Guarding a line that is sometimes throwing a null pointer exception.Diva Canto1-5/+6
2009-10-04Trying to avoid the null pointer exception in J2KImage, RunUpdate.Diva Canto1-1/+9
2009-10-02* Removed even more unnecessary state variables from J2KImageJohn Hurliman1-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
2009-10-02Restore the missing image handling to the image manager. The missingMelanie1-4/+12
image packet crashes Hippo without a message.
2009-10-02Change texture sending to be driven by the queue empty event from theMelanie1-0/+6
packet queue, rather than a timer
2009-10-01* Rewrote LLImageManager to use a real priority queue and hold minimal stateJohn Hurliman1-241/+214
* Rewrote the logic in J2KImage.RunUpdate() * Added a default avatar texture (I made it myself)
2009-09-30Prevent null data being sent to the decoderMelanie1-2/+5
2009-09-30Squelch the debug noise from diva's patchMelanie1-1/+1
2009-09-30Attempting to improve the robustness of texture decoding by always ignoring ↵John Hurliman1-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
2009-09-30This releases the texture assets from LLImageManager cache, and re-requests ↵Diva Canto1-11/+26
them later if the client asks for them again. Needs more testing in texture-rich sims.
2009-10-01Formatting cleanup.Jeff Ames1-2/+2
2009-06-25From: Alan Webb <alan_webb@us.ibm.com>Dr Scofield1-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.
2009-06-01Minor: Change OpenSim to OpenSimulator in older copyright headers and ↵Jeff Ames1-1/+1
LICENSE.txt.
2009-05-28This may bring the missing texture back.diva1-1/+5
2009-05-15Heart surgery on asset service code bits. Affects OpenSim.ini configuration ↵diva1-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
2009-05-05Add copyright header. Formatting cleanup. Ignore some generated files.Jeff Ames1-24/+12
2009-05-04* minor: remove some mono compiler warnings, minor cleanupJustin Clarke Casey1-16/+9
2009-04-29Catch another j2k decode exception that can be caused by a bad assetMelanie Thielker1-29/+34
2009-04-29Fix a crash that will hit when an image asset is truncated in storageMelanie Thielker1-1/+11
2009-04-22cleaning up, fixing warningsDr Scofield1-1/+1
2009-04-18Thank you kindly, RemedyTomm for a patch that:Charles Krinke1-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.
2009-04-13* Set eol-style: native on J2KImage.csTeravus Ovares1-2/+2
2009-04-13*Bypass J2kDecoder when asset is nullTeravus Ovares1-0/+4
2009-04-13if Data is null, shortcut to client.SendImageNotFound, as any otherSean Dague1-3/+10
option at this point is going to give us a NullReferenceException
2009-04-13catch for a null asset so we don't get an exception here, though thisSean Dague1-1/+7
probably just makes the decoder break somewhere else.
2009-04-13put J2KImage into it's own file, please no doubling up on classes inSean Dague1-228/+0
files
2009-04-10* Patch from RemedyTomm Mantis 3440Teravus Ovares1-507/+410
* Revamps the server side texture pipeline * Textures should load faster, get clogged less, and be less blurry * Minor tweak to ensure the outgoing texture throttle stays private. * Fixes mantis 3440
2009-02-22Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:Charles Krinke1-7/+11
* 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-17- remove the Metadata property from AssetBase and return all previousMike Mazur1-1/+1
properties as before - prefix private variables with m_ in AssetBase.cs - related to Mantis #3122, as mentioned in https://lists.berlios.de/pipermail/opensim-dev/2009-February/005088.html - all services will likely need to be upgraded after this commit
2009-02-13* Apply http://opensimulator.org/mantis/view.php?id=3149Justin Clarke Casey1-14/+2
* If the texture does not contain any discard levels the last image packet was not sent * Thanks Snowdrop
2009-02-13* refactor: Move export map function to world map module from sceneJustin Clarke Casey1-6/+0
2009-02-12* optimized usings.lbsa711-5/+3
2009-02-09From Alan Webb <awebb@linux.vnet.ibm.com>Sean Dague1-2/+2
These changes replace all direct references to the AssetCache with IAssetCache. There is no change to functionality. Everything works as before. This is laying the groundwork for making it possible to register alternative asset caching mechanisms without disrupting other parts of OpenSim or their dependencies upon AssetCache functionality.
2009-02-06This changeset is the step 1 of 2 in refactoringDr Scofield1-1/+1
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-04- add OpenSim.Framework.AssetMetadata class. AssetBase is now composed of itMike Mazur1-26/+26
- trim trailing whitespace
2009-01-25* Adds console command, 'predecode-j2k <number of threads>' to load all of ↵Teravus Ovares1-1/+13
the texture assets from the scene and decode the j2k layer data to cache. The work is split between the number of threads you specify. A good number of threads value is the number of cores on your machine minus 1. * Increases the number of ImageDataPackets we send per PriorityQueue pop and tweak it so that the number of packets is ( (2 * decode level) + 1 ) * 2, and (((2 * (5-decode level)) + 1) * 2). The first one sends more data for low quality textures, the second one sends more data for high quality textures.
2009-01-22* Remove a few unnecessary locks to try and prevent lock contention in ↵Teravus Ovares1-7/+7
LLImageManager
2009-01-19* Another image packet edge case. Thanks nebadon for printing a log of itTeravus Ovares1-1/+20
2009-01-19* Set SVN PropertiesTeravus Ovares1-664/+664
2009-01-19* Progressive texture patch + PriorityQueue put into the LLClient namespace.Teravus Ovares1-0/+664
* Updates LibOMV to r2362