Commit Graph

125 Commits (4ab2a80e6c8ab6c183143fbbca2c3386088caeb6)

Author SHA1 Message Date
Rye 4ab2a80e6c Use SSE2NEON to emulate SSE intrinsics when building against an ARM target 2025-02-11 05:04:10 -05:00
Rye 6fcd349f37 Fix Tracy memory profiling overloads for aligned allocations
Fix disabling renderdoc support
Improve ll_aligned_alloc functions on darwin for 32 and 64byte aligned by utilizing posix_memalign
2025-02-11 05:04:05 -05:00
Dave Parks eff46262c8
#2590 Radeon mac optimization pass (#3277)
- Skip updating of reflection probes that are not the default probe when probe coverage is set to "None"
- enable RenderAppleUseMultGL and disable occlusion culling on Macs with AMD GPUs
- Reduce the number of texture decode threads on Macs with intel cpus.
- Move texture deletion to LLImageGL::updateClass and prevent textures from staying resident in vram longer than 3 frames
- Disable SSAO by default on Macs with intel CPUs
2024-12-12 15:46:01 -06:00
Dave Parks f4eae44067
Fix for warnings/errors after Visual Studio update (#1775) 2024-06-14 13:47:19 -05:00
Ansariel e2e37cced8 Fix line endlings 2024-05-22 22:40:26 +03:00
Ansariel 1b67dd855c Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/lllistener_fmodstudio.cpp
#	indra/llaudio/lllistener_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.cpp
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llimpanel.cpp
#	indra/newview/llimpanel.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
#	indra/test/test.cpp
2024-05-22 19:04:52 +02:00
Andrey Lihatskiy 1b68f71348 #824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed 2024-04-29 07:56:09 +03:00
Lars Næsbye Christensen ba4e7b989b llcommon: BOOL (int) to real bool/LSTATUS 2024-02-09 01:02:29 +02:00
Ptolemy 9f2be2a054 SL-16606: Add profiler category MEMORY 2022-01-14 11:50:20 -08:00
Dave Parks 8d20480c5f SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton 2021-10-28 18:06:21 +00:00
Dave Parks 851767b808 SL-16131 Fix for alignment warnings on Win32 builds. 2021-10-14 17:41:38 +00:00
Dave Houlton d12305496f DRTVWR-510 clean up obsolete downstream-from-mDebugGPU code 2020-10-19 17:21:56 -06:00
Brad Payne (Vir Linden) 91dfd7e06c SL-944 - disabled a not-very-useful assert that greatly slows the RWD build 2018-07-31 14:02:42 +01:00
Andrey Kleshchev 6e445e82e2 MAINT-8091 Removed deprecated and unused private memory pooling 2018-01-30 14:03:26 +00:00
Nat Goodspeed 52899ed62a DRTVWR-418, MAINT-6996: Rationalize LLMemory wrt 64-bit support.
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-05-02 10:51:18 -04:00
Nat Goodspeed 40f7501319 DRTVWR-418: Use uintptr_t when casting pointers to ints.
LLPrivateMemoryPool and LLPrivateMemoryPoolManager have assumed that it's
always valid to cast a pointer to U32. With 64-bit pointers, no longer true.
2016-11-22 08:35:41 -05:00
Nat Goodspeed 6cc4a8dcd2 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-11-03 09:31:15 -04:00
Oz Linden a5adabb4f6 add protections against failed memory allocations in VBO and aligned memory 2016-09-06 10:04:19 -04:00
callum_linden 9c4ed8d113 Automated merge with tip of viewer-release to pick up 4.0.5 2016-05-19 11:00:03 -07:00
callum_linden b50df60aa1 DRTVWR-418 remove vestiges of TCMALLOC and GooglePerfTools from the viewer 2016-04-21 16:13:39 -07:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
AndreyL ProductEngine f64a10ca8f Merge downstream code, version 3.8.5 2015-09-30 01:21:04 +03:00
ruslantproductengine 75ffe90b0c MAINT-5042 FIXED SL Viewer Closes Unexpectedly in specific area with high RenderVolumeLODFactor
- fix for review
- fix in buffer overrun detector
2015-04-27 18:21:39 +03:00
andreykproductengine 1dd7e76908 Merge with viewer-release and become 3.7.28 2015-04-14 18:53:17 +03:00
ruslantproductengine 366bcd0cbc MAINT-4435 FIXED fix in llvolume.cpp Perform full build if number of vertices
less than allowed. Changes in all other files relate auxiliary methods for
catching similar bugs in future.
2014-10-27 17:10:08 +02:00
Graham Linden 96a3a858b4 Mergeville 2014-08-29 11:31:51 -07:00
Aura Linden 2121ffcdab Fixed assert in llmemory.h for adjacent memory locations. 2014-07-11 16:46:18 -07:00
Graham Linden a815ad481a Mergeup to 3.7.9 viewer-release 2014-05-29 04:54:58 -07:00
Graham Linden 5cbcff7b40 Appease GCC 4.6.1 syntax problems with uintptr_t in alignment asserts 2014-04-22 22:19:39 -07:00
Richard Linden a8192fbf60 accidentally left _CrtCheckMemory defined in non-Windows builds 2014-02-06 13:14:40 -08:00
Richard Linden 3040b429a3 added LL_TRACE_ENABLED to allow disabling of lltrace 2014-02-06 11:27:16 -08:00
Richard Linden 1acceb3633 changed ll_aligned_(malloc|free) to take alignment size as a template argument 2013-10-14 10:18:41 -07:00
Richard Linden 80dfbbaacd merge from viewer-release 2013-10-08 11:59:24 -07:00
Richard Linden e0a443f5a6 BUILDFIX: fix for mac builds
also, fixed alignment of tick labels on stat bars
2013-09-27 11:18:39 -07:00
Richard Linden 053d97db1b better memory usage for LLTrace (tighter packing of recording arrays)
removed complicated and unnecessary fast timer gapless handoff logic (it should be gapless anyway)
improved MemTrackable API, better separation of shadow and footprint
added memory usage stats to floater_stats.xml
2013-09-25 19:12:35 -07:00
Richard Linden a7aed07a5b broke out llunit.h into llunittype.h and llunits.h for unit declarations
changed unit declarations macros to make a lot more sense
2013-08-27 13:41:19 -07:00
Richard Linden 612892b45a SH-4433 WIP: Interesting: Statistics > Ping Sim is always 0 ms
continued conversion to units system
made units perform type promotion correctly and preserve type in arithmetic
e.g. can now do LLVector3 in units
added typedefs for remaining common unit types, including implicits
2013-08-18 22:30:27 -07:00
Richard Linden 25937040de SH-4433 WIP: Interesting: Statistics > Ping Sim is always 0 ms
converted many values over to units system in effort to track down
source of 0 ping
2013-08-16 12:38:12 -07:00
Richard Linden d122318bef SH-4299 WIP: Interesting: High fps shown temporarily off scale in statistics console
added percentage/ratio units
added auto-range and auto tick calculation to stat bar to automate display stats
2013-07-08 00:55:17 -07:00
Richard Linden 0a96b47663 merge with viewer-release 2013-06-05 19:05:43 -07:00
simon ee2fce8790 Merge downstream code and viewer-beta 2013-05-09 14:10:45 -07:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Graham Madarasz (Graham Linden) ebb57d28ef Resurrect merge victim...restoring ll_memcpy_nonaliased_aligned_16 definition 2013-03-13 16:40:06 -07:00
Graham Madarasz (Graham Linden) 9a811855b9 Merge 2013-03-13 16:16:17 -07:00
Graham Madarasz (Graham Linden) bba84a3fa9 Cleanup per code review of prev change with DaveP 2013-03-13 13:38:30 -07:00
Graham Madarasz (Graham Linden) 5d2fea6262 Move fast memcpy to llcommon and use it in llalignedarray pushback on all platforms. Code Review: DaveP 2013-03-13 10:42:40 -07:00
Graham Madarasz 6613d80d72 Clean up moving llalignedarray and fast memcpy to llcommon 2013-03-11 14:19:05 -07:00
Graham Madarasz 6ac6736994 Move 16b aligned memcpy and alignment utilities to llmem in llcommon for easier use elsewhere 2013-03-11 16:00:25 -07:00
Dave Parks 609ed855e1 MAINT-2371 More optimizations.
Reviewed by Graham
2013-03-04 18:01:42 -06:00
Richard Linden 1a888f786c SH-3468 WIP add memory tracking base class
made LLTrace::MemTrackable support custom alignment
LLDrawable now uses MemTrackable new and delete operators
2013-01-09 23:05:07 -08:00