Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
back-out the back-out for this branch. yay.
|
|
Backing out this merge that I pushed (prematurely) to the wrong place.
|
|
|
|
|
|
EXT-7397: decoding textures get stuck in REQ status
|
|
|
|
and EXT-7397: decoding textures get stuck in REQ status
|
|
either direction) when HTTP Textures is enabled
Fixed baked textures downloading. Uploading will be fixed on the server side.
|
|
LLWorkerClass::checkWork: ASSERT(workreq).
|
|
multi-threaded texture fetching.
|
|
|
|
|
|
ignore-dead-branch
|
|
svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165
|
|
dataserver-is-deprecated
|
|
QAR-424
|
|
svn+ssh://svn/svn/linden/branches/new-license into release. only changes files which are not deployed or the comments section of code.
|
|
svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance --> release
|
|
svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance --> release
|
|
|
|
|