summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerwindow.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.
2017-04-21Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-03-14MAINT-1800 Menu item appears at the top of the screen during teleportingandreykproductengine
2017-02-03Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-12-20DRTVWR-418: Rationalize LLPipeline API.Nat Goodspeed
Someone evidently figured every static LLPipeline method should have at least one void* parameter. There were methods requiring void* parameters that were completely ignored. More to the point, there were methods whose callers have a U32 in hand -- and which want to use a U32 -- but which bizarrely forced callers to cast to void* just so the method could cast back to U32. In a 64-bit compile, this isn't merely pointless, it's erroneous. Change all such methods to accept U32; remove (void*) casts from call sites. While at it, fix LLPipeline API to use bool, true, false rather than their obsolete all-caps predecessors. Once you eat that first potato chip... :-P
2016-11-25Fix UI scaling changed notice showing up on startup if system UI scale ↵Ansariel
factor changed during last session
2016-11-25Don't resize viewer window if UI scaling didn't changeAnsariel
2016-11-08MAINT-6914 Increase maximum UI size value to 4.0AndreyL ProductEngine
2016-11-14Merged in lindenlab/viewer-cleanupAndreyL ProductEngine
2016-09-30MAINT-6786 scale gets out of bonds and causes crashandreykproductengine
2016-09-26MAINT-6744 'System UI size factor has changed... ' shouldn't appear after ↵AndreyL ProductEngine
installation
2016-09-16Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-09-15MAINT-5232: Normalize LLSingleton subclasses.Nat Goodspeed
A shocking number of LLSingleton subclasses had public constructors -- and in several instances, were being explicitly instantiated independently of the LLSingleton machinery. This breaks the new LLSingleton dependency-tracking machinery. It seems only fair that if you say you want an LLSingleton, there should only be ONE INSTANCE! Introduce LLSINGLETON() and LLSINGLETON_EMPTY_CTOR() macros. These handle the friend class LLSingleton<whatevah>; and explicitly declare a private nullary constructor. To try to enforce the LLSINGLETON() convention, introduce a new pure virtual LLSingleton method you_must_use_LLSINGLETON_macro() which is, as you might suspect, defined by the macro. If you declare an LLSingleton subclass without using LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() in the class body, you can't instantiate the subclass for lack of a you_must_use_LLSINGLETON_macro() implementation -- which will hopefully remind the coder. Trawl through ALL LLSingleton subclass definitions, sprinkling in LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() as appropriate. Remove all explicit constructor declarations, public or private, along with relevant 'friend class LLSingleton<myself>' declarations. Where destructors are declared, move them into private section as well. Where the constructor was inline but nontrivial, move out of class body. Fix several LLSingleton abuses revealed by making ctors/dtors private: LLGlobalEconomy was both an LLSingleton and the base class for LLRegionEconomy, a non-LLSingleton. (Therefore every LLRegionEconomy instance contained another instance of the LLGlobalEconomy "singleton.") Extract LLBaseEconomy; LLGlobalEconomy is now a trivial subclass of that. LLRegionEconomy, as you might suspect, now derives from LLBaseEconomy. LLToolGrab, an LLSingleton, was also explicitly instantiated by LLToolCompGun's constructor. Extract LLToolGrabBase, explicitly instantiated, with trivial subclass LLToolGrab, the LLSingleton instance. (WARNING: LLToolGrabBase methods have an unnerving tendency to go after LLToolGrab::getInstance(). I DO NOT KNOW what should be the relationship between the instance in LLToolCompGun and the LLToolGrab singleton instance.) LLGridManager declared a variant constructor accepting (const std::string&), with the comment: // initialize with an explicity grid file for testing. As there is no evidence of this being called from anywhere, delete it. LLChicletBar's constructor accepted an optional (const LLSD&). As the LLSD parameter wasn't used, and as there is no evidence of it being passed from anywhere, delete the parameter. LLViewerWindow::shutdownViews() was checking LLNavigationBar:: instanceExists(), then deleting its getInstance() pointer -- leaving a dangling LLSingleton instance pointer, a land mine if any subsequent code should attempt to reference it. Use deleteSingleton() instead. ~LLAppViewer() was calling LLViewerEventRecorder::instance() and then explicitly calling ~LLViewerEventRecorder() on that instance -- leaving the LLSingleton instance pointer pointing to an allocated-but-destroyed instance. Use deleteSingleton() instead.
2016-09-15Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2016-08-30Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-08-18MAINT-5992 Second Life unusable on Windows 10 with 4k monitor SL forcibly ↵pavelkproductengine
overrides DPI compatibility option
2016-07-13MAINT-6493 SL Viewer does not respect the Windows 10 display setting size sliderpavelkproductengine
2016-06-02MAINT-5194 Visual Outfit browserpavelkproductengine
Made refactoring of LLFloaterOutfitSnapshot and LLFloaterSnapshot
2016-05-06merge 4.0.4-release and MAINT-5974Oz Linden
2016-03-21MAINT-3171 Alt-clicking while moving mouse can move the camera significantlyMnikolenko ProductEngine
2016-03-10MAINT-1109 FIXED Toggling graphics options causes viewer memory to increase, ↵ruslantproductengine
eventually causing the rendering pipeline to fall over and crashing the viewer Patchset #2
2016-03-07merge DRTVWR-398 build cleanup fixesOz Linden
2016-03-01MAINT-6183: Remove geometry bytes as a trigger for muted/impostor renderingOz Linden
2016-01-15merge changes for 4.0.1-releaseOz Linden
2015-12-22Merge downstream, version 4.0.1AndreyL ProductEngine
2015-11-16Fix MAINT-5855 media navigation bars overlap all floaters in viewercallum_linden
2016-01-15merge changes for 4.0.1-releaseOz Linden
2015-12-18merge changes for 4.0.0-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-11-06MAINT-5754: Basic keyboard functionality on the Mac. Still incompleterider
2015-11-02Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2015-10-27MAINT-5754: For MoaP and MediaCtrls forward all events including KEYUP and ↵Rider Linden
KEYDOWN to the CEF plugin.
2015-10-20Merge with tip of viewer-releasecallum_linden
2015-09-04MAINT-5416 FIXED Cannot right-click a rigged mesh that's wornAndreyL ProductEngine
--HG-- branch : maint-5416
2015-08-31Merge with viewer-releasecallum_linden
2015-08-19clarify avatar rez status strings in info displayOz Linden
2015-08-18merge changes for 3.8.3-releaseOz Linden
2015-07-23MAINT-5416 Reverted changeset: 9bd24c17d908AndreyL ProductEngine
2015-07-17MAINT-5416 FIXED cannot right-click a rigged mesh that's wornAndreyL ProductEngine
2015-07-10Initial support for keyboard (in progress) but includes many viewer changes ↵callum_linden
to plumb in Key Up events
2015-06-15merge changes for 3.7.30-releaseOz Linden
2015-05-20MAINT-5232: Introduce SUBSYSTEM_CLEANUP() macroNat Goodspeed
and use it for existing LLSomeClass::cleanupClass() calls. This logs the fact of making the call, as well as making it.
2015-04-28increment viewer version to 3.7.29Mnikolenko ProductEngine
2015-04-22MAINT-5147: correct menu colors for test viewersOz Linden
2015-04-17reorganize visual muting, impostors, and complexity criteria [does not ↵Oz Linden
render correctly yet]
2015-04-13merge changes for 3.7.27-releaseOz Linden
2015-02-21merge impostor and visual muting changesOz Linden
2014-12-10Rename llround(..) to ll_round(..) because of a collision with MS llround ↵callum_linden
(long long round) in VS2013
2014-10-13MAINT-3800 FIXED Remove the draw distance reference in the viewer when ↵andreykproductengine
alt-camming on terrain.
2014-08-04MAINT-4293 FIXED [BEAR] Very slow inventory fetch on Bear compared to ↵Mnikolenko ProductEngine
current release)