summaryrefslogtreecommitdiff
path: root/indra/newview/lltexturefetch.cpp
AgeCommit message (Collapse)Author
2012-06-11avatar metrics - cleanup, removed unused fieldsBrad Payne (Vir Linden)
2012-06-08Implemented HTTP retry for requests. Went in rather easily whichMonty Brandenberg
surprised me. Added a retry queue similar to ready queue to the policy object which is sorted by retry time. Currently do five retries (after the initial try) delayed by .25, .5, 1, 2 and 5 seconds. Removed the retry logic from the lltexturefetch module. Upped the waiting time in the unit test for the retries. People won't like this but tough, need tests.
2012-06-08SH-3153 FIXBrad Payne (Vir Linden)
2012-06-07First efforts at getting the texture cache working. This isMonty Brandenberg
now avoiding doing HTTP fetches for read data. Not certain it's completely correct but the difference is already significant.
2012-06-07Lock/Mutex fixes, documentation, new resource wait state, dtor cleanupsMonty Brandenberg
Went through all the code and tried to document lock and thread usage in the module. There's a huge comment block introducing all of this at the beginning and I believe it's correct (though not quite complete). Keep it updated, people. Added a new state, WAIT_HTTP_RESOURCE, that's sort of a side-state of SEND_HTTP_REQ. If we hit a high-water mark for HTTP requests, the extra are shunted to the new state once. Once levels fall to a low-water mark, we run through a wait list of UUIDs, sort the valid ones by priority and release them for service. This keeps the HTTP layer busy while leaving the active queue shallow enough that requests can still be re-prioritzed cheaply. Priority model changed. The new state uses the PRIORITY_LOW mask, the old users of _LOW are now at PRIORITY_NORMAL and sleepers woken up after an external event are kicked off at PRIORITY_HIGH. This combination along with the new state should avoid priority inversion and keep things running without resorting to an infinite pipeline. New state displays as "HTW" with green text in the texture console. Request cancelation and worker run-down should now be more correct but this edge case may need more attention.
2012-06-06Policy + caching fixes + https support + POST workingMonty Brandenberg
Implemented first global policy definitions to support SSL CA certificate configuration to support https: operations. Fixed HTTP 206 status handling to match what is currently being done by grid services and to lay a foundation for fixes that will be a response to ER-1824. More libcurl CURLOPT options set on easy handles to do peer verification in the traditional way. HTTP POST working and now reporting asset metrics back to grid for the viewer's asset system. This uses LLSD so that is also showing as compatible with the new library.
2012-06-05Faster spin in worker thread when doing I/O and a priority bump needed when ↵Monty Brandenberg
fixing priorities.
2012-06-01MergeMonty Brandenberg
2012-06-01Do some work on BufferArray to make it a bit less naive aboutMonty Brandenberg
chunking data. Remove the stateful use of a seek pointer so that shared read is possible (though maybe not interesting).
2012-06-01Another float/int issue and move the POST priority in line withMonty Brandenberg
what normal requests do...
2012-06-01Platform fixups Linux: unused variables, make error strings constant.Monty Brandenberg
2012-06-01Major steps towards implementing the policy component.Monty Brandenberg
Identified and reacted to the priority inversion problem we have in texturefetch. Includes the introduction of a priority_queue for the requests that are ready. Start some parameterization in anticipation of having policy_class everywhere. Removed _assert.h which isn't really needed in indra codebase. Implemented async setPriority request (which I hope I can get rid of eventually along with all priorities in this library). Converted to using unsigned int for priority rather than float. Implemented POST and did groundwork for PUT.
2012-05-29Automated merge with https://bitbucket.org/VirLinden/dranoXiaohong Bao
2012-05-29fo SH-3074: clear ghost and stale texture fetching requests in time.Xiaohong Bao
2012-05-29SH-3135 Viewer UI corruptionNyx Linden
Presumed to be a complete failure of texture pipeline to decode anything. Got a fix from bao, a flag was not initialized properly in the texture pipeline.
2012-05-25Merge pull from lindenlab/viewer-development as requested by Oz for DRTVWR-148simon@Simon-PC.lindenlab.com
2012-05-25trivial: fix a linux compiling error.Xiaohong Bao
2012-05-25fix for SH-3137: delay to issue new http fetching requests if http ↵Xiaohong Bao
connection failure happens
2012-05-24Automated merge with https://bitbucket.org/VirLinden/dranoXiaohong Bao
2012-05-24fix for VWR-28996: Texture stalls and threading modelsXiaohong Bao
2012-05-23Integrate llcorehttp library into lltexturefetch design.Monty Brandenberg
This is the first functional viewer pass with the HTTP work of the texture fetch code performed by the llcorehttp library. Not exactly a 'drop-in' replacement but a work-alike with some changes (e.g. handler notification in consumer thread versus responder notification in worker thread). This also includes some temporary changes in the priority scheme to prevent the kind of priority inversion found in VWR-28996. Scheme used here does provide liveness if not optimal responsiveness or order-of-operation. The llcorehttp library at this point is far from optimally performing. Its worker thread is making relatively poor use of cycles it gets and it doesn't idle or sleep intelligently yet. This early integration step helps shake out the interfaces, implementation niceties will be covered soon.
2012-05-17SH-3134 : Fix the http callback clearing the url so that further requests ↵Merov Linden
will look at the local cache first
2012-05-14partial fix for SH-3132 - reduce max concurrent http requests to same level ↵Brad Payne (Vir Linden)
as in release
2012-05-10for SH-3132. roll back http concurrency for texture fetching back to 8.Xiaohong Bao
2012-05-10fix for SH-3132: Many "HTTP GET failed errors" with Drano merge candidate 255539Xiaohong Bao
2012-05-08MergeXiaohong Bao
2012-05-08For SH-3086. Make the fetch debugger not to stall the main thread.Xiaohong Bao
2012-05-07SH-3126 : Cleanup image completion test as per Bao's reviewMerov Linden
2012-05-07SH-3126 : Clean up stray commentMerov Linden
2012-05-07Pull from vir/dranoMerov Linden
2012-05-07Fix Mac and Linux compile error in lltexturefetch.cppMerov Linden
2012-05-07Pull from vir/dranoMerov Linden
2012-05-04fix crashes and flaws for SH-3086Xiaohong Bao
2012-05-03For SH-3086: add functions to refetch all previous textures through HTTP and ↵Xiaohong Bao
from cache
2012-05-02Pull from vir/dranoMerov Linden
2012-05-02SH-3126 : Use correct unspecified ending byte range for all curl request ↵Merov Linden
when fetching files to the end.
2012-05-02SH-3126 : Improve curl byte range call, test implementation in ↵Merov Linden
lltexturefetch (not final)
2012-05-01for SH-3118: add a toggle "TextureFetchDebuggerEnabled" to turn the console ↵Xiaohong Bao
on and off.
2012-04-27fix a crash on cache writeXiaohong Bao
2012-04-27fix some flaws for SH-3104Xiaohong Bao
2012-04-27Pull merge from drano-sh-3086Merov Linden
2012-04-26SH-3104 : Implemented HTTP bulk fetch for texture debug consoleMerov Linden
2012-04-26For SH-3121: collect time of reloading all textures from cache and through ↵Xiaohong Bao
HTTP when all objects loading are done.
2012-04-25for subtasks SH-3118, SH-3112, SH-3110, SH-3106, SH-3091 for SH-3086:Xiaohong Bao
As a viewer architect, I would like to understand how fast each of the components of the texture pipeline can run in isolation
2012-04-13Final pull from viewer-thx1138Merov Linden
2012-04-12for SH-3074: clear ghost and stale texture fetching requests in timeXiaohong Bao
2012-04-12SH-3065 FIX Investigate fixes for out-of-order operations on startupcallum
Reviewed by Simon
2012-04-03For SH-3071: Increase HTTP concurrency to improve texture fetching performanceXiaohong Bao
2012-03-19merge viewer-thx-runway-shared-1 to runwayBrad Payne (Vir Linden)
2012-03-15SH-2970 WIP - pretty-print some metrics for more readable logBrad Payne (Vir Linden)