summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.h
AgeCommit message (Collapse)Author
2013-12-06SH-4645 Viewer hangs on exit after cancelling a mesh upload.Monty Brandenberg
Problem involved a 3-way livelock between the main, upload and decomposition threads. Viewer is shutting down but an upload is in the 'generate hulls' state. Main thread asks upload request to discard and spins waiting for it to finish. Upload thread is in generateHulls spinning waiting for the decomposition thread to process a mesh request. Decomposition thread is sleeping waiting for main thread to deliver work that upload thread has asked the decomposition thread to do.
2013-09-24SH-3690 SH-4505 Cleanup pass through code.Monty Brandenberg
Start using DNS cache in legacy LLCurl code. Go to 15 seconds particularly as we're using threaded resolver at this point. Documentation cleanup. Add libcurl status checking and logging for curl_easy_setopt() operations that fail. Shouldn't happen and we'll just continue anyway but there's info in the logs to track these down now. Cleaned up logic around FASTTIMER enable defines used to evaluate pipeline stalls in main thread. Removed long-standing thread race around caps strings and URL construction. Not a significant risk but refactoring the code to get rid of them removed one huge eyesore. It can be made even slicker if desired (see notes).
2013-09-20Move from std::queue to std::list which has betterMonty Brandenberg
behavior and swap() as well. Should probably do this for the other queues at some point.
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-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-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-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-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-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-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-19SH-4252 Add second policy class for large mesh asset downloadsMonty Brandenberg
Added second mesh class as well as an asset upload class. Refactored initialization to use less code and more data to cleanly get http started. Modified mesh to use the new http class for large requests (>2MB for now). Added additional timeout setting to llcorehttp to distinguish connection timeout from transport timeout and are now using transport timeout values for large asset downloads that may need more time.
2013-06-07Mostly cleanup. A chunk of comment code nobody needs. DereferenceMonty Brandenberg
after delete, erase() on end() iterator, a few more like that. Killed a dead variable.
2013-05-30Merge. Pull viewer-release to get the new version scheme changes.Monty Brandenberg
2013-05-07SH-4139 Convert http downloaders and responders to llcorehttp patternsMonty Brandenberg
Initial work completed on linux, moving over to windows to do debug and refinement. This includes 5/6 handlers based on existing responders and use of llcorehttp for the mesh header fetch.
2013-04-17SH-4090 Integrating deadman timer with mesh repo downloads.Monty Brandenberg
Timer interface violated my design rules and I paid for it with clumsiness and silent errors. Cleaned it up mainly removing the evil default values. Found better integration points in the mesh downloader and it's producing fairly consistent numbers on the MeshTest2 test region (about 5500 downloads, ~90 seconds, +/- 10 seconds). Will review with davep and do an early timer stop on teleport which invalidates a timing sequence.
2013-04-12SH-4090 [WIP] Basic deadman timer integration started on Linux. Moving to ↵Monty Brandenberg
windows to do real work.
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-01-09More merge cleanup.Dave Parks
2013-01-09Merge cleanup.Dave Parks
2013-01-08Automated merge with https://bitbucket.org/lindenlab/viewer-tigerDave Parks
2012-11-08MAINT-1311 Followup on logging and assertions of mesh loading errorsDave Parks
2012-10-17MAINT-873 Fix for inability to upload meshes on some systems.Dave Parks
2012-10-17MAINT-873 Fix for inability to upload meshes on some systems.Dave Parks
2012-04-18Updating to the latest llphysicextensions pre-built package with the now ↵Todd Stinson
lowercased version of the header file names.
2012-02-06Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-development.Todd Stinson
2012-02-01mergeBrad Payne (Vir Linden)
2012-01-30Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-development.Todd Stinson
2012-01-27BUILDFIX header file capitalizationNyx (Neal Orman)
Will clean this up to be more in line with our standards later
2012-01-19SH-2885 Add mesh requests pending/processing line to "Show Render Info"Dave Parks
2012-01-12fix for SH-2845, SH-2846, SH-2847, SH-2851: curl crashes and out-of-memory ↵Xiaohong Bao
crashes.
2011-09-14mergeBrad Payne (Vir Linden)
2011-08-16FIX SH-859, SH-1274 - added fix for determining triangle count andNyx (Neal Orman)
performance tested impact of animated textures Also did some cleanup to ensure branch built and ran properly after last merge.
2011-08-12merge from viewer-experienceLeyla Farazha
2011-07-07fix for SH-1808: uploading warthog model triggers ↵Xiaohong Bao
LLPhysicsDecomp::doDecompositionSingleHull warnings SH-1333: [PUBLIC] Simple mesh causing the viewer to crash
2011-07-09SH-2007 Code cleanup, expand minimum header size to 4KB, better comments ↵Dave Parks
around magic numbers, remove dead calcResourceCost
2011-07-07SH-1774 Fix for preserving material assignments between multiple custom LoDs.Dave Parks
2011-07-07fix for SH-1808: uploading warthog model triggers ↵Xiaohong Bao
LLPhysicsDecomp::doDecompositionSingleHull warnings SH-1333: [PUBLIC] Simple mesh causing the viewer to crash
2011-07-05merge cleanupBrad Payne (Vir Linden)
2011-07-05mergeBrad Payne (Vir Linden)
2011-07-03SH-1747 mesh-asset-dep -- uploaded objects have bad permissions, and SH-1975 ↵Don Kjer
Name of mesh is not loaded into mesh uploader floater. Also removed a lot of dead mesh uploader code.
2011-07-01SH-1725 SH-1726 FIX mesh upload wizard & advanced don't handle upload errors ↵Nyx (Neal Orman)
gracefully Restructured the code to be a bit cleaner, now have callbacks with appropriate functionality in both the wizard and advanced uploaders. If the upload fails, it requires the user to re-submit the recalculate request.
2011-06-30SH-1332 Remaining mesh wizard upload workNyx (Neal Orman)
adding observer classes for the upload step so we don't move to success state until upload succeeds.
2011-06-29SH-1726 FIXED (Viewer modifications to advanced model upload to accommodate ↵Paul ProductEngine
upload fee & prim equivalency) - Changed XUI according to the spec - Added requesting upload permission, physics weight and fee weight - Split requesting fee and uploading model steps in mesh repository
2011-06-20fix for SH-1870: can not upload book_collection_1.dae when include texturesXiaohong Bao
2011-06-09partial fix for SH-1804: viewer crashes when uploading "Messerschmitt KR200.dae"Xiaohong Bao
eliminated crashing, but still failed to upload it.
2011-06-08fix for SH-1651 and SH-1652: Viewer Crash in Display:RenderUI when uploading ↵Xiaohong Bao
skpfile.dae model with High LOD selected as Physics shape
2011-06-06automated mergeRoxie Linden
2011-06-06Removed the old mesh asset upload pipeline. Fixed a problem with spamming ↵Don Kjer
MissingString MacLocale warnings. Reviewed by Dave
2011-06-03automated mergeRoxie Linden