summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
AgeCommit message (Collapse)Author
2017-12-20MAINT-8087: Use env vars from VMP for AppData\Roaming and Local.Nat Goodspeed
On Windows, when logged in with a non-ASCII username, every one of the three documented APIs -- SHGetSpecialFolderPath(), SHGetFolderPath() and SHGetKnownFolderPath() -- fails to retrieve any pathname at all. We cannot account for the fact that the oldest of these continues to work with the release viewer and within a Python script (though not, curiously, from a Python interactive session). With a non-ASCII username, they consistently fail when called from an Alex Ivy viewer build: "The filename, directory name, or volume label syntax is incorrect." Empirically, with a non-ASCII username, the preset APPDATA and LOCALAPPDATA environment variables are also useless, e.g. c:\Users\??????\AppData\Roaming where those are, yup, actual question marks. Empirically, the VMP is able to successfully call SHGetFolderPath() to retrieve both AppData\Roaming and AppData\Local. Therefore, we make the VMP set the APPDATA and LOCALAPPDATA environment variables to the UTF-8 encoded correct pathnames. Instead of calling SHGetSomethingFolderPath() at all, make LLDir_Win32 retrieve those environment variables. Make LLFile::mkdir() treat "directory already exists" as a success case. Every single call fell into one of two categories: either it didn't check success at all, or it tested specially to exempt errno == EEXIST. Migrate that test into mkdir(); eliminate it from call sites. Make LLDir::append() and add() convenience functions accept variadic arguments. Replace add(add()...) constructs, as well as clumsy concatenations of directory names and getDirDelimiter(), with simple variadic add() calls.
2017-11-29DRTVWR-418: Merge from latest viewer-releaseNat Goodspeed
2017-10-11DRTVWR-418: Fix glitch from merging from today's viewer-releaseNat Goodspeed
2017-10-11Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-08-23merge changes for MAINT-7594Oz Linden
2017-08-22MAINT-7594: add platform name string to login request (and add request ↵Oz Linden
parameter logging at DEBUG)
2017-08-16merge changes for DRTVWR-439Oz Linden
2017-08-15Merged in lindenlab/viewer64-maint-7643 (pull request #17)Oz Linden
MAINT-7643 Approved-by: Oz Linden <oz@lindenlab.com> Approved-by: Nat Linden <nat@lindenlab.com>
2017-08-11MAINT-7641: Indent new RunLauncher notification per code review.Nat Goodspeed
2017-08-11MAINT-7641: Warn user if s/he directly runs viewer without launcher.Nat Goodspeed
2017-07-27MAINT-7643: add viewer bitness to crash log output, forked from V64Glenn Glazer
2017-07-27revert bad file copyGlenn Glazer
2017-07-27MAINT-7643: add viewer bitness to crash log outputGlenn Glazer
2017-06-28DRTVWR-418: Bump TEXTURE_CACHE_VERSION and INDRA_OBJECT_CACHE_VERSIONNat Goodspeed
so the Alex Ivy viewer will reset caches. We have some evidence that the cache content is tied to ADDRESS_SIZE, so asking a 64-bit viewer to process 32-bit cache content is problematic.
2017-06-20pull from v64 gateGlenn Glazer
2017-06-20Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2017-06-20Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-08-30MAINT-7758 Fixed freeze on loading lsl scripts from unicode named windows ↵andreykproductengine
folder.
2017-08-27Merged in oz_linden/viewer-maint-7594AndreyL ProductEngine
2017-08-25MAINT-7739 Make LLOSInfo a Singletonandreykproductengine
2017-08-24MAINT-7594: add platform name string and address size to login request for ↵Oz Linden
crash stats (and add request parameter logging at DEBUG)
2017-08-21BUG-134134 Additional loggingandreykproductengine
2017-08-10MAINT-7596 FIXED System information is truncated in JIRA issues filed ↵Mnikolenko Productengine
through "Report bug" viewer option
2017-07-13MAINT-7326 Increased default texture and vfs cache sizeandreykproductengine
2017-07-11MAINT-7554 Removed unneeded checkandreykproductengine
2017-06-27MAINT-7554 Frame throttlingandreykproductengine
2017-05-05pull from gatecoyot@coyot-sager-PC.hsd1.ca.comcast.net
2017-05-04Automated merge with ssh://bitbucket.org/lindenlab/viewer64Nat Goodspeed
2017-05-03Automated merge with ssh://bitbucket.org/lindenlab/viewer64Nat Goodspeed
2017-05-03DRTVWR-418: 64-bit Windows viewer requests "win64" updates from VVM.Nat Goodspeed
This is only transitional, until we integrate the Viewer Management Process (soon now).
2017-05-02DRTVWR-418, MAINT-6996: clarify divide-by-1024 (not shift-right 10)Nat Goodspeed
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.
2017-04-27DRTVWR-418: Remove misleading comment -- no more implicit deleteAll().Nat Goodspeed
The comment indicates that calling LLSingletonBase::deleteAll() is optional because the LLSingleton machinery implicitly calls that during final static-object cleanup. That is no longer true.
2017-04-21Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-04-19mergeBrad Payne (Vir Linden)
2017-10-06MAINT-1013 Changing YieldTime should show effects immediatelyandreykproductengine
2017-03-28MAINT-6980 FIXED Ctrl + Alt + Shift + B does not force a crash on macMnikolenko Productengine
2017-03-21SL-409 - added version field = 2 to asset stats, made viewer-side metrics ↵Brad Payne (Vir Linden)
files exactly match the payload sent to simulator.
2017-03-16merge CEF update and fixes from callumOz Linden
2017-03-14Tweak CEF plugin version to include Chrome equivalentCallum Prentice
2017-03-13DRTVWR-418: Tweak shutdown sequence to avoid resurrecting singletons.Nat Goodspeed
The LLSingletonBase::deleteAll() call late in LLAppViewer::cleanup() deletes the LLSingleton(s) used by the logging machinery, among other things. Attempting further logging after that call (such as our cheery "Goodbye!") has the unfortunate effect of attempting to resurrect the deleted LLSingleton(s). Move "Goodbye!" to just *before* the call. Also, given that call, the manual references to a couple specific LLSingletons in ~LLAppViewer() are (a) unnecessary and (b) cause attempted resurrection. Eliminate both.
2017-03-10SL-409 - fixes for viewer asset metrics. Copy and/or assignment of Recording ↵Brad Payne (Vir Linden)
objects is failing, changed to create LLSD blob earlier and just copy that.
2017-03-06Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-02-22Use new version info from CEF plugin to display in About boxCallum Prentice
2017-02-21First round of changes to replace LLCEFLib with Dullahan. Mostly Windows ↵Callum Prentice
changes in this batch since I'm working on Windows box but some speculative macOS ones too although they are quite untested
2017-02-15MAINT-7051 Release Notes url shouldn't include the EDU parameterAndreyL ProductEngine
2017-02-13Automated merge with head of callum_linden/viewer64-callumcallum@lindenlab.com
2017-02-03Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-01-27MergeRider Linden
2017-01-26MAINT-7082: Clean up, remove log spam.Rider Linden