Commit Graph

103 Commits (4af7e9eb64097c9fdcef86758fc42932d3ccd477)

Author SHA1 Message Date
Xiaohong Bao 4af7e9eb64 Merge viewer-development-shining up to REV 3bf724ecb7c6 (fix for SH-829: Viewer attempting to load precached images in file types that are not being used.) 2011-01-21 16:25:23 -07:00
Monty Brandenberg 3c05ebd286 ESC-237 No static init of LLAtomics and move TFRequest out of unnamed namespace.
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-16 16:42:26 -08:00
Monty Brandenberg de8fa40209 ESC-235 Truncation of over-sized metrics reports wasn't working.
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-15 15:50:09 -05:00
Xiaohong Bao dc75235e38 debug code for SH-639: http requests 3X more in viewer 2.4 2010-12-13 21:09:52 -07:00
Monty Brandenberg 622c9f772c Cleanup a cross-thread command dtor. It was technically
correct but looked a bit dodgy with pointer ownership.
2010-12-13 11:17:41 -05:00
Monty Brandenberg bb53d27b7a ESC-211 ESC-212 Use arrays in payload to grid and compact payload
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-11 16:16:07 -05:00
Monty Brandenberg 11d420dd32 Decided to refactor a bit. Was using LLSD as an internal data
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-10 17:41:05 -08:00
Monty Brandenberg b9cf73c29b merge from http://hg.secondlife.com/viewer-development 2010-12-09 11:07:50 -05:00
Monty Brandenberg ca76c55847 ESC-211 ESC-222 Viewer/Sim comms and outbound data throttle
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-03 12:31:12 -08:00
Monty Brandenberg 922b1f26b7 ESC-211 Metrics data sink - fix delivery by viewer
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-12-02 18:42:47 -05:00
Monty Brandenberg 0f2ed092c5 ESC-154 ESC-156 Now using region hash rather than region uuid as identifier.
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-29 08:31:08 -08:00
Monty Brandenberg a4bf732289 ESC-154 ESC-155 Viewer metrics fixes for min/max merged values, floating 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-24 15:02:46 -08:00
Monty Brandenberg 0fd80d0997 ESC-154 ESC-156 Metrics integration across threads
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-24 16:46:40 -05:00
Monty Brandenberg 3962b155b4 ESC-154 ESC-156 Integrating metrics collector into viewer.
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-23 12:29:15 -08:00
Monty Brandenberg 9ec3334184 ESC-154 ESC-156 Data collection and control for viewer metrics
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-23 13:31:22 -05:00
Monty Brandenberg f98a622325 ESC-154 ESC-156 Metrics integration into viewer's threads
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-22 10:26:25 -08:00
Monty Brandenberg a99db82e9b ESC-155 Multi-threaded umbrella collector for stats aggregation
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-19 15:14:40 -08:00
Monty Brandenberg d666a3d92c ESC-154 ESC-155 ESC-156
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-18 08:43:09 -08:00
Merov Linden f7af29ab40 merge with viewer-development 2010-11-04 14:30:32 -07:00
Merov Linden e3ecffc180 Pull update from viewer-development 2010-10-12 16:08:31 -07:00
Xiaohong Bao 2f29c35114 fix for SH-173/VWR-22868: Development Viewer freezes just after startup / greedy with file handles / 'WARNING: ll_apr_warn_status: APR: Too many open files'
(transplanted from a9aefa70c029eb9dddec3833d0ce22ef4b4421b5)
2010-09-22 14:44:40 -06:00
Xiaohong Bao dfe1274552 fix for SH-173/VWR-22868: Development Viewer freezes just after startup / greedy with file handles / 'WARNING: ll_apr_warn_status: APR: Too many open files' 2010-09-22 14:44:40 -06:00
Merov Linden 88e33d00cd STORM-105 : Add compression data gathering, took partial decompression into account in stats 2010-09-17 19:17:12 -07:00
Xiaohong Bao fcdd09772f debug code for SH-115: investigate texture related network traffic between viewer 2.x and 1.23. 2010-09-16 13:13:06 -06:00
Tofu Linden e416840f85 Backed out changeset c3d41f18ce2b
back-out the back-out for this branch.  yay.
2010-08-24 19:22:00 +01:00
Tofu Linden 98cc236503 Backed out changeset a62bf7c0af21
Backing out this merge that I pushed (prematurely) to the wrong place.
2010-08-24 18:44:39 +01:00
Tofu Linden 6ba23344c9 merge heads. whew. 2010-08-24 18:37:53 +01:00
Xiaohong Bao 3ac134ec22 EXT-8673: FIXED: UDP texture loading is slower in 2.x viewers than 1.23.5
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-18 11:33:01 -06:00
Oz Linden 06b0d72efa Change license from GPL to LGPL (version 2.1) 2010-08-13 07:24:57 -04:00
Xiaohong Bao 5be5c3f0da fix for EXT-7399: 2.0.2 with http textures loads textures slower than 1.23.5 and
EXT-7397: decoding textures get stuck in REQ status
2010-08-11 19:31:20 -06:00
Xiaohong Bao b9cc3a34da EXT-7399: FIXED: 2.0.2 with http textures loads textures slower than 1.23.5 2010-08-10 16:43:31 -06:00
Xiaohong Bao 8af410aca2 EXT-8596: FIXED: crash at LLTextureFetchWorker::doWork(int) [secondlife-bin lltexturefetch.cpp] line 1061 2010-08-09 17:07:34 -06:00
Xiaohong Bao 8f56413c91 more fix for EXT-7397: decoding textures get stuck in REQ status 2010-08-04 10:55:07 -06:00
Xiaohong Bao 08b74c369f Automated merge with ssh://hg.lindenlab.com/q/viewer-release 2010-08-03 18:27:58 -06:00
Xiaohong Bao 85c970e847 fix for EXT-7399: 2.0.2 with http textures loads textures slower than 1.23.5
and     EXT-7397: decoding textures get stuck in REQ status
2010-08-03 18:26:47 -06:00
Palmer 7d73afe895 EXT-7145 - Handle http redirects in viewer properly. Didn't work before.
Reviewed by Bao and Babbage
2010-07-22 15:20:45 -07:00
Xiaohong Bao 5c7911f1e2 EXT-7032: POSSIBLE FIXED: [crashhunters] crash in libcurl background thread on windows 2010-06-16 14:03:56 -06:00
Xiaohong Bao 8108de817c EXT-6567: POSSIBLE FIXED: crash at LLImageBase::allocateData [secondlife-bin llimage.cpp:170];
also removed the debug code for this bug.
2010-06-16 11:42:05 -06:00
Tofu Linden ea5d8a1634 merge backout 2010-06-07 17:31:59 +01:00
Tofu Linden 3057651b1a EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture.
Backed out changeset e6feef9704cf to re-introduce Bao's fix
2010-06-07 17:31:22 +01:00
Xiaohong Bao 29896d26c2 EXT-7630: FIXED: turn on http texture fetching by default. 2010-06-03 14:08:22 -06:00
Xiaohong Bao 3df90898b1 Automated merge with ssh://hg.lindenlab.com/dessie/viewer-public 2010-05-28 17:09:48 -06:00
Xiaohong Bao c1170cfa48 A possible fix for EXT-7032: [crashhunters] crash in libcurl background thread on windows.
killed accessing the asset server for map textures after http returns 404.
2010-05-28 17:05:06 -06:00
Tofu Linden 87d0c6d583 Backed out changeset 57e00f7d4d4f
(was: EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture.)

This was causing osx/linux build failure.
2010-05-24 07:49:26 +01:00
Xiaohong Bao 9dada6bcc4 EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture. 2010-05-18 14:14:50 -06:00
Xiaohong Bao 9cc9ceb250 EXT-7080 Partial FIXED: Outfit texture updates are not transmitted (in either direction) when HTTP Textures is enabled
Fixed baked textures downloading. Uploading will be fixed on the server side.
2010-05-04 11:08:45 -06:00
Xiaohong Bao 87be73be24 fix for EXT-7159: textures are not fully loaded when http-texture is enabled.
and EXT-6928: Viewer crashes immediately after enabling HTTP Textures on a http-texture-server-1 simulator
2010-04-28 17:07:24 -06:00
Xiaohong Bao 6837f66038 trivial: convert to unix eol. 2010-04-22 14:32:49 -06:00
Xiaohong Bao 1eebca1431 fix for EXT-6928: Viewer crashes immediately after enabling HTTP Textures on a http-texture-server-1 simulator
and EXT-7009: textures fetched through http are never cached.
2010-04-22 14:27:14 -06:00
Xiaohong Bao fad31dc087 Automated merge with ssh://hg.lindenlab.com/q/viewer-trunk 2010-03-25 17:46:36 -06:00