Age | Commit message (Collapse) | Author |
|
The fix in fllowing:
LLTextureFetch has object LLTextureInfo which is has Recorder object.
The recorder object activate (Recorder::handleStart()) self AccumulatorBufferGroup
(Recorder::mBuffers into the current (LLTrace::get_thread_recorder()) ThreadRecorder object
which created (as I understand) one per thread, and time to time send accumulated data to the master ThreadRecorder.
The problem is that LLTextureFetch also can uses from the main thread.
I decide add parameter to CTOR LLTextureInfo(bool postponeStartRecoreder) -
if it false the recorder start immediatly in LLTextureInfo CTOR body, if true we need to start it manually.
Also I add another one LLTextureInfo in LLTextureFetch::mTextureInfoMainThread which is intended
for accumulate data from the main thread.
The postponed Recorder started/stoped from LLTextureFetch::startThread()/endThread().
|
|
|
|
unused variables, unused const-variables, unused member variables & functions etc. Also removed flags from CMake
|
|
accept headers in mesh and textures. For texture metrics
reporting, use the AP_INVENTORY policy class which is
non-pipelined and pointing (usually) in the right direction.
Use a do-while(false) structure to manage common exit path
code in onCompleted() methods. Identical to a 'goto' but
might amuse the pedantic. Tuning on background fetch to
have it cycle faster. This is experimental. I suspect
with HTTP balancing in llcorehttp, we can do away with the
timers here.
|
|
code to use utils for any LLSD interfaces.
|
|
|
|
|
|
some problems disabling pipelining on a multi handle with outstanding
requests so build a more conservative system that allows requests
to drain before setting curl multi options. Would rather not have
this but it is significantly safer. "HttpPipelining" debug setting
is now fully dynamic. Connection limits can also be made dynamic
in the near future. Upped the default connection count back to 8 for
now but will revisit this in the tuning phase. It might be time to
combine mesh and textures into a single asset class. For normal
server operations that would be a clear path, but for server under
load, the current scheme may be better. Minor cleanup in logging
to elminate some redundant strings. Might add some more tracing to the
stall logic 'just in case'.
|
|
Intended for users with bad networking gear or twitchy ISPs, if set to
True, forces plain GET requests to asset servers for textures and meshes.
This change kicked off a slight refactor in the mesh repository code which
made it resilient against unexpected 200's and responses not covering
the requested start range. There's still too much data copying in the
Mesh code (always has been). Would love to fix that and get rid of the
monolithic temp buffer. Cleaned up white space damage caused by unnamed
linden who likes to drag his magical editor through code.
|
|
|
|
|
|
|
|
|
|
|
|
data so their isn't an opportunity for gaps over overruns (init_data).
Start some preliminary tweaking of policy class numbers. It looks
like I can easily drop the default connection count to '4' and
still hit the throttles. Did some experiments running pipeline
deeper which was mostly fine for textures but tended to slow
meshes. Reason uncertain but a depth of '5' seems generally healthy
for mesh. I had one run of 52.6S with a theoretical minimum of 51.2S.
That's as good as I've ever seen.
|
|
|
|
|
|
GetTexture and GetMesh2 at a pipeline depth of 5. Create
global debug option, HttpPipelining, to enable and disable
HTTP pipelining (defaults to true). Tweak texture and
mesh low- and high-water request levels based on pipelining
status and depth. Fixup texture console which was damaged
in a recent release. Split logging of the no-request
HTTP error case into two cases: one for missing URL in
HTTP request, one for HTTP request not created. A refactor
in llcorehttp is coming: I will be moving all libcurl-
using code into libcurl-specific modules.
|
|
|
|
use of setGetStatus() in case the baked texture service changes
introduced some sort of hidden (and wrong) dependency. Left
out the ridiculous duplicated invocation inside that failure status
block. Someone damaged texture console again and apparently didn't
even bother to look at their work. I'm sure they documented
their changes on the public wiki as well. Unified the logging
tag throughout lltexturefetch.cpp. Only way to get the cut-n-
pasters to do the right thing.
|
|
|
|
This is a workaround that the TPVs have been exercising for quite a few
months and it does seem to fix the OPs problem. The solution is based
on magic numbers and has no technical basis, it's just an artifact of
particular networking gear and/or ISPs.
|
|
|
|
|
|
|
|
|
|
|
|
when cache loading fails. Can not repro so somewhat speculative.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Added toTerseString() conversion on HttpStatus to generate a string
that's more descriptive than the hex value of the HttpStatus value
but still forms a short, searchable token (e.g. "Http_503" or
"Core_7"). Using this throughout the viewer now, no live cases
of toHex(), I believe.
|
|
|
|
|
|
continued conversion to units system
made units perform type promotion correctly and preserve type in arithmetic
e.g. can now do LLVector3 in units
added typedefs for remaining common unit types, including implicits
|
|
|
|
added convenience types for units F32Seconds, etc.
|
|
Control named RenderAutoMuteFunctionsnot found
|
|
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
|
|
|
|
various fixes to lltrace
start() on started recording no longer resets
fixed various instances of unit forgetfullness in lltrace
recording split now has gapless timing
scene monitor now guarantees min sample time
renamed a bunch of stats
added names to debug thread view on windows
|
|
console
added percentage/ratio units
added auto-range and auto tick calculation to stat bar to automate display stats
|
|
console
added ability to force uniqueness of LLCopyOnWritePointer
converted more variables to units
added convenience function for unit constants
|
|
|
|
|
|
|
|
|