summaryrefslogtreecommitdiff
path: root/indra/newview/llfeaturemanager.cpp
AgeCommit message (Collapse)Author
2017-05-02DRTVWR-418, MAINT-6996: Rationalize LLMemory wrt 64-bit support.Nat Goodspeed
There were two distinct LLMemory methods getCurrentRSS() and getWorkingSetSize(). It was pointless to have both: on Windows they were completely redundant; on other platforms getWorkingSetSize() always returned 0. (Amusingly, though the Windows implementations both made exactly the same GetProcessMemoryInfo() call and used exactly the same logic, the code was different in the two -- as though the second was implemented without awareness of the first, even though they were adjacent in the source file.) One of the actual MAINT-6996 problems was due to the fact that getWorkingSetSize() returned U32, where getCurrentRSS() returns U64. In other words, getWorkingSetSize() was both useless *and* wrong. Remove it, and change its one call to getCurrentRSS() instead. The other culprit was that in several places, the 64-bit WorkingSetSize returned by the Windows GetProcessMemoryInfo() call (and by getCurrentRSS()) was explicitly cast to a 32-bit data type. That works only when explicitly or implicitly (using LLUnits type conversion) scaling the value to kilobytes or megabytes. When the size in bytes is desired, use 64-bit types instead. In addition to the symptoms, LLMemory was overdue for a bit of cleanup. There was a 16K block of memory called reserveMem, the comment on which read: "reserve 16K for out of memory error handling." Yet *nothing* was ever done with that block! If it were going to be useful, one would think someone would at some point explicitly free the block. In fact there was a method freeReserve(), apparently for just that purpose -- which was never called. As things stood, reserveMem served only to *prevent* the viewer from ever using that chunk of memory. Remove reserveMem and the unused freeReserve(). The only function of initClass() and cleanupClass() was to allocate and free reserveMem. Remove initClass(), cleanupClass() and the LLCommon calls to them. In a similar vein, there was an LLMemoryInfo::getPhysicalMemoryClamped() method that returned U32Bytes. Its job was simply to return a size in bytes that could fit into a U32 data type, returning U32_MAX if the 64-bit value exceeded 4GB. Eliminate that; change all its calls to getPhysicalMemoryKB() (which getPhysicalMemoryClamped() used internally anyway). We no longer care about any platform that cannot handle 64-bit data types.
2016-05-27MAINT-6435 Deafult preset should set the same settings as the "Reset to ↵AndreyL ProductEngine
recommended settings" button
2016-05-02Fixed startup crash on WindowsAnsariel Hiller
2016-04-29Adjust some avatar complexity defaults (mostly slightly upwards)Oz Linden
Make more settings between mac and windows the same Remove solaris and xp featuretables, since we don't support them any more
2016-04-04merge with 4.0.3-releaseOz Linden
2016-03-07merge DRTVWR-398 build cleanup fixesOz Linden
2016-01-15merge changes for 4.0.1-releaseOz Linden
2016-01-15Merge VRRider Linden
2016-01-15merge changes for 4.0.1-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-11-02MAINT-5743 Fixed Remove gpu_table and references to it from viewer packagingandreykproductengine
2015-09-18Set consistent terminology for yield/wait -> suspend for coroutines.Rider Linden
2015-09-03Correct use of filename vs. path in llfeaturemanager coroutine.Rider Linden
2015-08-31add some debug logging, fix broken indentationOz Linden
2015-07-10Backed out changeset bab1000e1b2d: restore 'selfless' changesNat Goodspeed
2015-07-07Backout selfles merge 738255dbbfd679d9e615baab3398e5e345bbb3c5Rider Linden
2015-07-01MAINT-5351: Remove 'self' parameter from coroutine functions.Nat Goodspeed
lleventcoro_test.cpp runs clean (as modified for new API), and all the rest builds clean, but the resulting viewer is as yet untested.
2015-06-15merge changes for 3.7.30-releaseOz Linden
2015-06-03Remove vestigial httpclient.h include from files that no longer need it.Rider Linden
2015-05-15Address Nat's concerns about the const_cast<> and modification of a binary ↵Rider Linden
object wrapped in an LLSD object.
2015-05-11table -> tableName for non windows builds.Rider Linden
2015-05-11Updated feature manager downloader to coroutine.Rider Linden
Added "raw" coroutine handler (returns raw result as LLSD::Binary) and split out the guts of the get, put, etc methods. Moved getStatusFromLLSD from HttpCoroHandler into HttpCorutineAdapter
2015-04-10restore the ll[io]fstream because we need them as wrappers on Windows for ↵Oz Linden
wide char paths; on other platforms they are now just typedefs to the std classes
2015-04-07replace llifstream and llofstream with std::ifstream and std::ofstream ↵Oz Linden
respectively
2015-04-07convert llifstream and llofstream to std::ifstream and std::ofstream ↵Oz Linden
respectively
2015-02-20Clean up impostors and visual mutingOz Linden
Rename the settings that control them to be more descriptive Remove the separate boolean setting (RenderUseImpostors) that governed both Establish default values based on gpu class for impostors and visual muting
2014-12-15merge changes for 3.7.22-releaseOz Linden
2014-12-01remove unused gpu table code, improve logging for gpu benchmarksOz Linden
2014-11-24Attempt to thread needle for guesstimation phase of GPU classificationGraham Linden
2014-11-21Tweak conversion from tested bandwidth to get better reads on low-end systemsGraham Linden
2014-11-20Put back old thresholds to try to get better match on old/new identification ↵Graham Linden
per-card
2014-11-18Adjust gpu_bench thresholds and move VB set outside loop again for speedGraham Linden
2014-11-14Comment out now-unused GPU_TABLE_FILENAME in llfeaturemanager.cpp.Nat Goodspeed
The "death to the GPU table" change has commented out the only references to the GPU_TABLE_FILENAME constant, and Xcode 6.x regards that as an error.
2014-09-19MAINT-3131 Discard improbably high memory bandwidth measurements on OSX and ↵davep
default to Class 3
2014-06-19Automated merge with http://bitbucket.org/lindenlab/viewer-releaseDave Parks
2014-05-14v-r -> s-e merge WIPBrad Payne (Vir Linden)
2014-05-13sunshine-external merge WIPBrad Payne (Vir Linden)
2014-03-21MAINT-3131 Actually fallback to GL version guess instead of treating error ↵Dave Parks
value from gpu_benchmark as actual memory bandwidth.
2014-03-19MAINT-3131 Use benchmark to determine GPU class instead of GPU table.Dave Parks
2014-03-12mergeBrad Payne (Vir Linden)
2014-03-12merge with releaseRichard Linden
2014-02-11MAINT-3639 disable ALM for OSX 10.6.8Graham Madarasz (Graham Linden)
2013-12-05mergeBrad Payne (Vir Linden)
2013-12-02merge with releaseRichard Linden
2013-10-16mergeBrad Payne (Vir Linden)
2013-10-08merge from viewer-releaseRichard Linden
2013-09-26Merge viewer-bear maint RC changes to get this build closer to the RC it ↵Graham Linden
will follow
2013-09-11MAINT-3128 FIXED Advanced graphical settings are not changing when dragging ↵maksymsproductengine
"Quality and Speed" slider
2013-09-09merge with viewer-releaseRichard Linden
2013-09-05STORM-1552: detect, ignore, and delete invalid feature and gpu table filesOz Linden