summaryrefslogtreecommitdiff
path: root/indra/llcommon/llsys.cpp
AgeCommit message (Collapse)Author
2022-11-13DRTVWR-575: Merge brad's xcode-14.1 fixes with nat'sNat Goodspeed
2022-11-12DRTVWR-575: Address review comments on Xcode 14.1 type tweaks.Nat Goodspeed
Introduce LLSD template constructors and assignment operators to disambiguate construction or assignment from any integer type to Integer, likewise any floating point type to Real. Use new narrow() function to validate conversions. For LLSD method parameters converted from LLSD::Integer to size_t, where the method previously checked for a negative argument, make it now check for size_t converted from negative: in other words, more than S32_MAX. The risk of having a parameter forced from negative to unsigned exceeds the risk of a valid length or index over that max. In lltracerecording.cpp's PeriodicRecording, now that mCurPeriod and mNumRecordedPeriods are size_t instead of S32, defend against subtracting 1 from 0. Use narrow() to validate newly-introduced narrowing conversions. Make llclamp() return the type of the raw input value, even if the types of the boundary values differ. std::ostream::tellp() no longer returns a value we can directly report as a number. Cast to U64.
2022-11-11DRTVWR-575 fix LLGetDarwinOSInfo for xcode-14.1. NSInteger is now 64 bitsBrad Kittenbrink
2022-11-03DRTVWR-575: Fix llcommon assumptions that size_t fits in 4 bytes.Nat Goodspeed
It's a little distressing how often we have historically coded S32 or U32 to pass a length or index. There are more such assumptions in other viewer subdirectories, but this is a start.
2022-09-15Merge branch 'master' into DRTVWR-548-maint-NAndrey Lihatskiy
# Conflicts: # indra/newview/llmodelpreview.h
2022-06-29Merge branch 'master' into DRTVWR-548-maint-NAndrey Lihatskiy
# Conflicts: # doc/contributions.txt # indra/newview/llviewercontrol.cpp
2022-06-29Merge branch 'master' into DRTVWR-544-maintAndrey Lihatskiy
2022-06-22SL-17634 Replace deprecated carbon Gestalt callsMaxim Nikolenko
2022-05-31Merge branch 'master' into DRTVWR-544-maintAndrey Lihatskiy
# Conflicts: # indra/llprimitive/llmodel.cpp # indra/llprimitive/llmodel.h # indra/newview/llappviewer.cpp # indra/newview/llappviewer.h
2022-05-27Merge branch 'master' into DRTVWR-543-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/cmake/LLCommon.cmake # indra/llcommon/CMakeLists.txt # indra/llrender/llgl.cpp # indra/newview/llappviewer.cpp # indra/newview/llface.cpp # indra/newview/llflexibleobject.cpp # indra/newview/llvovolume.cpp
2022-05-18SL-17388 Add SSE version info to ViewerStatsAndrey Kleshchev
2022-04-18Merge branch master (D540) into DRTVWR-546Andrey Kleshchev
# Conflicts: # indra/llcommon/llsdutil.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/lldrawpoolalpha.cpp # indra/newview/lldrawpoolwater.cpp
2022-04-18Merge branch 'master' into DRTVWR-543-maintAndrey Lihatskiy
2022-03-01Merge branch 'master' (DRTVWR-557) into DRTVWR-546Andrey Kleshchev
# Conflicts: # autobuild.xml # doc/contributions.txt # indra/cmake/GLOD.cmake # indra/llcommon/tests/llprocess_test.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/lldrawpoolavatar.cpp # indra/newview/llfloatermodelpreview.cpp # indra/newview/llmodelpreview.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/llvovolume.cpp # indra/newview/viewer_manifest.py
2022-02-28Merge branch 'master' into DRTVWR-543-maintAndrey Lihatskiy
2022-02-28Merge branch 'master' into DRTVWR-540-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llcommon/llsys.cpp # indra/newview/app_settings/key_bindings.xml # indra/newview/llfloatereditextdaycycle.cpp
2022-01-12SL-15997 Windows 11 detection #2Andrey Kleshchev
2022-01-12SL-15997 Windows 11 detectionAndrey Kleshchev
2021-11-19Merge branch 'master' into DRTVWR-543-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llagentwearables.cpp # indra/newview/llvoicevivox.cpp
2021-11-16DRTVWR-546 merge in master v6.5.1Dave Houlton
2021-11-16Merge branch 'master' into DRTVWR-527-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/newview/installers/windows/lang_pl.nsi # indra/newview/llfloaterpreference.cpp # indra/newview/llinventorymodel.cpp
2021-10-28SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove ↵Dave Parks
LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton
2021-10-21SL-15997 Windows 11 detectionAndrey Kleshchev
2021-10-19SL-15964 Fix gzip failing to compress files into unicode pathsAndrey Kleshchev
2021-09-27SL-16093 Don't force the console window to be open on developer builds ↵Dave Parks
because it causes frame stalls while logging.
2021-09-14SL-15997 Windows 11 version detectionAndrey Kleshchev
2021-09-08SL-14541 Replace zlib with zlib-ngAndrey Kleshchev
2021-09-07SL-15832 Add OS bitness to ViewerStatsMnikolenko Productengine
2021-06-07Merge branch 'master' into DRTVWR-522-maintAndrey Lihatskiy
2021-04-30Merge branch 'master' into DRTVWR-522-maintAndrey Lihatskiy
# Conflicts: # doc/contributions.txt
2021-04-29Merge master into DV525-merge-6.4.19Dave Houlton
2021-03-02SL-12122 - removed frametime spikes in windows build caused by unnecessary ↵Brad Payne (Vir Linden)
call to GetPerformanceInfo()
2021-01-11SL-2202 Add exception handling around boost::regex_match() calls in the viewerMnikolenko Productengine
2020-10-08DRTVWR-510 remove all LL_SOLARIS conditionalsDave Houlton
2018-11-12SL-9935 Include full win10 build number in Help > About Second Life and logsAndreyL ProductEngine
2017-07-10MAINT-4532: properly detect Windows 10 in the 64bit build (only - 32bit runs ↵Oz Linden
in Windows 8 compatibility mode)
2017-05-10DRTVWR-418, MAINT-6996: Update Mac mem queries (per Drake Arconis)Nat Goodspeed
Drake points out that the OS X 64-bit-capable memory-query APIs recommended in comments by some long-ago maintainer are by now themselves obsolete. He offered this patch to update us to current macOS memory APIs.
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.
2015-11-10remove execute permission from many files that should not have itOz Linden
2014-12-22work arounds to compile on linuxOz Linden
2014-10-17Update to build on Xcode 6.0: collection of similar const var not used ↵callum_linden
warnings/errors [-Wunused-const-variable]
2014-05-07merge changes for 3.7.7-releaseOz Linden
2014-03-19OPEN-199: replace the confusing STANDALONE switch with USESYSTEMLIBSOz Linden
2013-12-03SH-4641 FIX Interesting: Incorrect amount of system memory detected on MacRichard Linden
2013-12-02merge with releaseRichard Linden
2013-11-11Automated merge with http://bitbucket.org/lindenlab/viewer-releaseRichard Linden
2013-11-11Merge 3.6.11 for RC-abilityGraham Linden
2013-10-25Fix release merge issues (included upstream changes not yet in release from ↵Graham Linden
bear)
2013-09-11SH-4774 FIX: textures are blurry on MacRichard Linden
2013-09-09mergeRichard Linden