summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-08-15SH-4410 Internal Documentation. Update and correct the mutex/dataMonty Brandenberg
lists to reflect current. Describe the functional flow of things for a single LOD request. Put together to-do list for follow on work. Knock down the low/high water limits for GetMesh a bit, 100/200 too high, 75/150 should be better, vis-a-vis pathological failures.
2013-08-07Create separate high/low water level limits for GetMesh andMonty Brandenberg
GetMesh2 capabilities. They should be independent now.
2013-08-06SH-4411 Thread/mutex rework between main and worker threadMonty Brandenberg
Have the ::notifyLoadedMeshes() method doing correct locking and stall avoidance at the same time. This method now does lazy mutex lock acquisition (trylock()) and if it fails on either, it gives up and comes back later. Capture the maximum number of sequential failures and report this at the end of the run in the log. (So far, with big mesh regions, I've only seen 1s and 2s.) Locking/mutex requirements sorted in other locations as well. LLMutex gets trylock() method as well as new LLMutexTrylock scoped locking class. Clean up some documentation, more to do.
2013-08-05Added some simple counters to the mesh repository code and thenMonty Brandenberg
added a Mesh status line to the texture fetch console. Mesh is often in competition with textures and so the mesh information seems appropriate there. Do get a nice feel for progress and you definitely see when the throttles kick in.
2013-08-05Change the setting for GetMesh2 meshes to Mesh2MaxConcurrentRequests.Monty Brandenberg
While linking GetMesh2 to the old setting was simpler from a user point-of-view, they really shouldn't be linked and the old one will go away. This one may be renamed to AssetMaxConcurrentRequests or something similar if we get to the mesh/texture unification step.
2013-07-30SH-4371 Reduce 22mS inter-connection latency.Monty Brandenberg
This really extended into the client-side request throttling. Moved this from llmeshrepository (which doesn't really want to do connection management) into llcorehttp. It's now a class option with configurable rate. This still isn't the right thing to do as it creates coupling between viewer and services. When we get to pipelining, this notion becomes invalid.
2013-07-29Reduce HTTP request retry log spam. Thought I'd done this in anMonty Brandenberg
earlier maintenance branch but the code never showed up. I'll do it again. Spam is still available by bumping 'CoreHttp' tag up to DEBUGS level logging. Needed for QA. Can also get this data from tracing.
2013-07-29SH-4371 Reduce 22mS inter-conenction latency on HTTP operations.Monty Brandenberg
Simple change dropped this value by 7-10mS or so. Any time we complete an operation on a transport pass, arrange to skip the run-loop sleep so that we fill a possible empty slot as quickly as possible. With pipelining, this kind of thing should become unnecessary but for now, we'll do this to increase throughput.
2013-07-29SH-4368 Adjust upload timeout parameters for slow networks.Monty Brandenberg
Generally sorted the mesh timeout parameters for maximum transport time (staying with default 30 for connect). 60S for normal meshes, 600S for large. Also documented default option values in httpoptions.h. Useful to have these. In the future, the timeouts might go into standard llsd options where they can be tracked a bit more.
2013-07-25SH-4365 SH-4367 Conversion of mesh uploaders to llcorehttp.Monty Brandenberg
With this checkin, legacy LLCurl is out of the mesh code. Uploaders and responders are converted and functioning. Logging has been cleaned up throughout the code to use the macro form with tag/subtag capability. DEBUGS-level logging added for some upload path milestones. Better error information flow from failed responses to viewer alert boxes but I'd really, really like to do better here. Mesh upload problems are completely opaque as a user. Minor cleanups (removed dead members, method signatures tidied, less data conversion). Could almost call this complete, will likely have platform cleanups, however.
2013-07-18Merge. Refresh from viewer-release.Monty Brandenberg
2013-07-18SH-4325 Viewer working mixed grid with GetMesh and GetMesh2 capsMonty Brandenberg
Viewer modified for preference for GetMesh2 caps. When found, uses this cap and uses 1/4 the connection concurrency specified by MeshMaxConcurrentRequests. Also uses a modified calculation for high/low water feeding into the llcorehttp library.
2013-07-12SH-4312 Configuration data between viewer and llcorehttp is clumsy.Monty Brandenberg
Much improved. Unified the global and class options into a single option list. Implemented static and dynamic setting paths as much as possible. Dynamic path does require packet/RPC but otherwise there's near unification. Dynamic modes can't get values back yet due to the response/notifier scheme but this doesn't bother me. Flatten global and class options into simpler struct-like entities. Setter/getter available on these when needed (external APIs) but code can otherwise fiddle directly when it knows what to do. Much duplicated options/state removed from HttpPolicy. Comments cleaned up. Threads better described and consistently mentioned in API docs. Integration test extended for 503 responses with Reply-After headers.
2013-07-08Found the memory corruptor. String trimmer didn't have a validMonty Brandenberg
termination test. Sheesh. Also get some more numbers out of the example/load test program which drives traffic. This should give some useful insights into how the current http throttle works (or doesn't) with varying client demands.
2013-07-03Merge. Same repo - mix of windows and linux work.Monty Brandenberg
2013-07-03Update the example program so it handles meshes as well. Fix theMonty Brandenberg
request feed logic to use high/low-water level logic as is done in viewer code.
2013-06-29Orphaned declaration preventing compilation.Monty Brandenberg
2013-06-28SH-4312 Clumsy configuration coordination between mesh and corehttpMonty Brandenberg
Taught llappcorehttp to register signals on the settings values that chagne behavior. Have initialization and settings changes sweep through settings and change them. Dynamic changes are tried but have no effect (produce a warning message) as dynamic settings still aren't supported but the plumbing is now connected. Just need to change llcorehttp. Bounced the 'teleport started' signal around and it ended up back where it started with some cleanup. This is making me less angry...
2013-06-28SH-4257 Prepare for new 'GetMesh2' capability.Monty Brandenberg
Needed to move the cap from response to region instance.
2013-06-27SH-4311 Get highwater limiting of requests into llhttpcore working.Monty Brandenberg
Fixed the logic and have it covering all five types of requests now with validation via an assert (when enabled). Should keep things working smoothly and avoid floods of 503s when in debug modes. Also started a round of file-level documentation detailing thread usage and mutex coverage. More to do, more to describe. But the high- water stuff is functioning correctly.
2013-06-27increment viewer version to 3.6.2Oz Linden
2013-06-27SH-4310/BUG-2810/MAINT-2794 Better status checking and error logging in ↵Monty Brandenberg
Mesh code. Pay correct attention to status codes coming back from services. Generate better and consistent error messages when problems arise. There's more to do in error handling, need a way to cleanly fail all request types, only have that for LOD at this point. Do better keeping the HTTP pipeline between the low and high water marks. This was made challenging because the outer most code couldn't really see what's going on internally (whose actions are delayed in a worker thread). More to do here, the debug-like requests don't honor limits, that will come later. Made retry counts available from llcorehttp which can be used by the throttle-anticipating logic to advance the count. It helps but it reinforces the coupling between viewer and server which I do not like.
2013-06-26Added tag 3.6.1-release for changeset 75cf8e855ae1Oz Linden
2013-06-25merge changes for NORSPEC-280Oz Linden
2013-06-21NORSPEC-280 Fix for shader compilation error on OpenGL 3.3Dave Parks
2013-06-20SH-4257 Preparation for a new cap grant: GetMesh2Monty Brandenberg
Mesh repo is using three policy classes now: one for large objects, one for GetMesh2 regions, one for GetMesh regions. It's also detecting the presence of the cap and using the correct class. Class initialization cleaned up significantly in llappcorehttp using data-directed code. Pulled in the changes to HttpHeader done for sunshine-internal then did a refactoring pass on the header callback which now uses a unified approach to clean up and deliver header information to all interested parties. Added support for using Retry-After header information on 503 retries.
2013-06-19merge changes for DRTVWR-326Oz Linden
2013-06-19NORSPEC-272 make sure the tex filtering fix stays putGraham Linden
2013-06-19Fixups for the transplant of the HttpHeader changes from sunshine.Monty Brandenberg
2013-06-19Automated merge with http://hg.secondlife.com/viewer-releaseNat Goodspeed
2013-06-19Automated merge with ↵Dave Parks
https://bitbucket.org/lindenlab/viewer-development-materials
2013-06-19Point light color (de)correction.Dave Parks
2013-06-19merge increment of version numberOz Linden
2013-06-19correct 3.6.0-release for last minute fixOz Linden
2013-06-19commit inital tag for 3.6.0-releaseOz Linden
2013-06-18Review cleanupDave Parks
2013-06-18Occlusion culling overhaul.Dave Parks
2013-06-18correct banding issueOz Linden
2013-06-18remove files incorrectly brought back from the past by mergesOz Linden
2013-06-14increment viewer version to 3.6.1Oz Linden
2013-06-14Added tag 3.6.0-release for changeset 69429d81ae4dOz Linden
2013-06-14NORSPEC-251 fix issues with binding unloaded standard bumpmapsGraham Linden
2013-06-14NORSPEC-266 fix issues with observer feedback on edits of material map ↵Graham Linden
parameters
2013-06-14Disable asserts in CalculateTangentArray (discussed with davep) to avoid ↵Graham Linden
debugging interruptions from bad assets
2013-06-13NORSPEC-261 No more magic numbers, parity between forward and deferred ↵Dave Parks
rendering WRT to windlight and legacy shininess. Reviewed by Graham (a little bit).
2013-06-13NORSPEC-250 speculative stab in the darkGraham Linden
2013-06-13MAINT-2787: Expand viewer_manifest.py's "Release" recognitionNat Goodspeed
viewer_manifest.py currently detects specifically the channel name "Second Life Release" as a release viewer (affecting the icon and other things). The Amazon viewer uses channel name "Second Life Release - Amazon", which is currently not recognized at all, therefore uses a developer-build icon with the caution tape and the word "TEST" stamped onto it. Detect any channel name *starting* with "Second Life Release" as a release viewer.
2013-06-13Remove some now useless assertions.Dave Parks
2013-06-13NORSPEC-261 Put back directional ambient.Dave Parks
2013-06-13NORSPEC-261 Better blending of environment map.Dave Parks