summaryrefslogtreecommitdiff
path: root/indra/newview/lltexturefetch.cpp
AgeCommit message (Collapse)Author
2010-12-16ESC-237 No static init of LLAtomics and move TFRequest out of unnamed namespace.Monty Brandenberg
Linux startup crash appears to be due to static/global C++ init of LLAtomic types. The initializer with explicit value makes some runtime calls and it looks like these assume, at least on Linux, that apr_initialize() has been called. So move the static POST count to a member and provide accessors and increment/decrement. Command queue was built on a pointer to a class in anonymous namespace and that's not quite valid. Made it a nested class (really a nested forward declaration) while keeping the derived classes in anonymous.
2010-12-15ESC-235 Truncation of over-sized metrics reports wasn't working.Monty Brandenberg
Legacy of the LLSD::Map-to-LLSD::Array conversion, this ended up performing an erase on the array rather than the map taking out all the regions. So, there *was* a metrics report, it was just empty of regions. Fixed and scanned for more array/map problems and corrected the data type for duration sorts (should have been Real).
2010-12-13Cleanup a cross-thread command dtor. It was technicallyMonty Brandenberg
correct but looked a bit dodgy with pointer ownership.
2010-12-11ESC-211 ESC-212 Use arrays in payload to grid and compact payloadMonty Brandenberg
First, introduced a compact payload format that allows blocks of metrics to be dropped from the viewer->collector payload compressing 1200 bytes of LLSD into about 300, give-or-take. Then converted to using LLSD arrays in the payload to enumerate the regions encountered. This simplifies much data handling from the viewer all the way into the final formatter of the metrics on the grid.
2010-12-10Decided to refactor a bit. Was using LLSD as an internal dataMonty Brandenberg
representation transferring ownership, doing data aggregation in a very pedantic way. That's just adding unneeded cost and complication. Used the same objects to transport data as are collecting it and everything got simpler, faster, easier to read with fewer gotchas. Bit myself *again* doing the min/max/mean merges but the unittests where there to pick me up again. Added a per-region FPS metric while I was at it. This is much asked for and there was a convenient place to sample the value.
2010-12-09merge from http://hg.secondlife.com/viewer-developmentMonty Brandenberg
2010-12-03ESC-211 ESC-222 Viewer/Sim comms and outbound data throttleMonty Brandenberg
Cleaned up some of the messaging code that sends the LLSD stats report off to the viewer. Added WARNS-level messages when there's a problem with delivery that will result in a data break. Users probably won't care. Added an outbound data throttle that limits stats to the 10 regions of longest occupancy. Should be a reasonable first cut.
2010-12-02ESC-211 Metrics data sink - fix delivery by viewerMonty Brandenberg
The TextureFetch thread was still stalling out due to a different path that determines whether there is work or not in the thread (uses getPending()) and that had to be harmonized with the changes to runCondition(). I'm not happy with this solution but a refactor of the LLThread tree isn't in the cards right now.
2010-11-29ESC-154 ESC-156 Now using region hash rather than region uuid as identifier.Monty Brandenberg
In the viewer, the region's UUID is acquired very late and isn't generally used as the canonical region identifier. The U64 region hash is a better and more consistently used identifier so I'm moving over to using that as the region key. Don't have a proper reserved invalid region hash which is unfortunate, but then, so much is.
2010-11-24ESC-154 ESC-155 Viewer metrics fixes for min/max merged values, floating ↵Monty Brandenberg
timestamps. The min/max response time calculations needed to be sensitive to the response counts to know if their was actual data. Failure to do so introduced a gratuitous min/max test against zero values which tended to corrupt the mins. Unit tests added to test for this condition. Finished conversion of times to floating point seconds. Removed two logging events used to debug the cross-thread messaging. Looks like a code completion point.
2010-11-24ESC-154 ESC-156 Metrics integration across threadsMonty Brandenberg
Using unpause() method in derived class rather than wake() in furthest base class solved the stalling problem. I still think too many levels of the LLTextureFetch hierarchy are keeping thread state, however. The LLViewerRegion instance an agent enters doesn't necessarily have its region_id yet, that only comes after the handshake, if any. So add a few more metrics insertion points to propagate region into metrics. Finally, try to launch a final metrics report when a quit is initiated.
2010-11-23ESC-154 ESC-156 Integrating metrics collector into viewer.Monty Brandenberg
After discussions, renamed 'QAModeMetricsSubmetrics' to 'QAModeMetrics' and confirmed that LLCachedControl<> is the way to go. Moved the resulting flag out of LLViewerAssetStats (where it didn't belong) and it lives in both LLAppViewer and LLTextureFetch where it does belong.
2010-11-23ESC-154 ESC-156 Data collection and control for viewer metricsMonty Brandenberg
Detect QAMode (and new QAModeMetricsSubmode) settings which enable logging of metrics report locally and a faster cycle time to reduce test waiting. Do this only in the main thread and propagate the result via collector constructors (will likely move that out and put it in llappviewer/lltexturefetch which is more correct scope). Managed to deadlock myself with a recursive mutex (sheesh).
2010-11-22ESC-154 ESC-156 Metrics integration into viewer's threadsMonty Brandenberg
Removed declared but undefined interfaces from LLTextureFetch family. Had inserted the cross-thread command processor into some of LLTextureFetchWorker's processing which was unnatural and probably wrong. Moved it to LLTextureFetch which turned out to be far, far more natural. Better documentation on the asLLSD() format. Refined LLSD stats merger logic and enhanced unit tests to verify same.
2010-11-19ESC-155 Multi-threaded umbrella collector for stats aggregationMonty Brandenberg
Code complete with the intelligence to merge counts, mins, maxes and means with reasonable defences. Added QAMode controls to the viewer so that we can QA this more quickly by reducing the timing interval and sending the metrics body to local logging as well as to the caps service.
2010-11-18ESC-154 ESC-155 ESC-156Monty Brandenberg
Asset fetch requests wrapped to allow for measurements. Asset fetch enqueues, dequeues and completion times recorded to asset stats collector. Texture fetch operations (http and udp) recorded to asset stats collector. Stats collector time vallue switched from F32 to U64 which is the more common type in the viewer. Cross-thread mechanism introduced to communicate region changes and generate global statistics messages. Facility to deliver metrics via Capabilities sketched in but needs additional work. Documentation and diagrams added.
2010-11-04merge with viewer-developmentMerov Linden
2010-10-12Pull update from viewer-developmentMerov Linden
2010-09-22fix for SH-173/VWR-22868: Development Viewer freezes just after startup / ↵Xiaohong Bao
greedy with file handles / 'WARNING: ll_apr_warn_status: APR: Too many open files' (transplanted from a9aefa70c029eb9dddec3833d0ce22ef4b4421b5)
2010-09-22fix for SH-173/VWR-22868: Development Viewer freezes just after startup / ↵Xiaohong Bao
greedy with file handles / 'WARNING: ll_apr_warn_status: APR: Too many open files'
2010-09-17STORM-105 : Add compression data gathering, took partial decompression into ↵Merov Linden
account in stats
2010-09-16debug code for SH-115: investigate texture related network traffic between ↵Xiaohong Bao
viewer 2.x and 1.23.
2010-08-24Backed out changeset c3d41f18ce2bTofu Linden
back-out the back-out for this branch. yay.
2010-08-24Backed out changeset a62bf7c0af21Tofu Linden
Backing out this merge that I pushed (prematurely) to the wrong place.
2010-08-24merge heads. whew.Tofu Linden
2010-08-18EXT-8673: FIXED: UDP texture loading is slower in 2.x viewers than 1.23.5Xiaohong Bao
Improved the following: 1, make sure the texture callback queue is properly handled and cleaned in time; 2, estimate the LLVOTree pixel area more accurately; 3, eliminate the possibility of back and forth stopping/restarting a texture fetching
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-08-11fix for EXT-7399: 2.0.2 with http textures loads textures slower than 1.23.5 andXiaohong Bao
EXT-7397: decoding textures get stuck in REQ status
2010-08-10EXT-7399: FIXED: 2.0.2 with http textures loads textures slower than 1.23.5Xiaohong Bao
2010-08-09EXT-8596: FIXED: crash at LLTextureFetchWorker::doWork(int) [secondlife-bin ↵Xiaohong Bao
lltexturefetch.cpp] line 1061
2010-08-04more fix for EXT-7397: decoding textures get stuck in REQ statusXiaohong Bao
2010-08-03Automated merge with ssh://hg.lindenlab.com/q/viewer-releaseXiaohong Bao
2010-08-03fix for EXT-7399: 2.0.2 with http textures loads textures slower than 1.23.5Xiaohong Bao
and EXT-7397: decoding textures get stuck in REQ status
2010-07-22EXT-7145 - Handle http redirects in viewer properly. Didn't work before.Palmer
Reviewed by Bao and Babbage
2010-06-16EXT-7032: POSSIBLE FIXED: [crashhunters] crash in libcurl background thread ↵Xiaohong Bao
on windows
2010-06-16EXT-6567: POSSIBLE FIXED: crash at LLImageBase::allocateData [secondlife-bin ↵Xiaohong Bao
llimage.cpp:170]; also removed the debug code for this bug.
2010-06-07merge backoutTofu Linden
2010-06-07EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture.Tofu Linden
Backed out changeset e6feef9704cf to re-introduce Bao's fix
2010-06-03EXT-7630: FIXED: turn on http texture fetching by default.Xiaohong Bao
2010-05-28Automated merge with ssh://hg.lindenlab.com/dessie/viewer-publicXiaohong Bao
2010-05-28A possible fix for EXT-7032: [crashhunters] crash in libcurl background ↵Xiaohong Bao
thread on windows. killed accessing the asset server for map textures after http returns 404.
2010-05-24Backed out changeset 57e00f7d4d4fTofu Linden
(was: EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture.) This was causing osx/linux build failure.
2010-05-18EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture.Xiaohong Bao
2010-05-04EXT-7080 Partial FIXED: Outfit texture updates are not transmitted (in ↵Xiaohong Bao
either direction) when HTTP Textures is enabled Fixed baked textures downloading. Uploading will be fixed on the server side.
2010-04-28fix for EXT-7159: textures are not fully loaded when http-texture is enabled.Xiaohong Bao
and EXT-6928: Viewer crashes immediately after enabling HTTP Textures on a http-texture-server-1 simulator
2010-04-22trivial: convert to unix eol.Xiaohong Bao
2010-04-22fix for EXT-6928: Viewer crashes immediately after enabling HTTP Textures on ↵Xiaohong Bao
a http-texture-server-1 simulator and EXT-7009: textures fetched through http are never cached.
2010-03-25Automated merge with ssh://hg.lindenlab.com/q/viewer-trunkXiaohong Bao
2010-03-25more fix for EXT-5711: Some textures loading from cache seems jammed.Xiaohong Bao
and possible fix for EXT-5704: FPS drop, and this could be cause freez and crash.
2010-03-18fix for EXT-6465: sometimes the texture fetching queue is never empty.Xiaohong Bao