Commit Graph

274 Commits (ccb078ae08dc2fd69159dadcc7e9cbbda60e403c)

Author SHA1 Message Date
Ansariel 0a0e2fe93e Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer 2022-01-15 02:39:07 +01:00
Ptolemy bf0643e28a SL-16606: Add profiler category TEXTURE 2022-01-14 11:50:21 -08:00
Ansariel 47e2173239 Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	indra/llrender/llgl.cpp
#	indra/llwindow/llwindowwin32.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/featuretable.txt
#	indra/newview/featuretable_mac.txt
#	indra/newview/lldrawpoolalpha.cpp
#	indra/newview/lldynamictexture.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/pipeline.h
2021-12-16 08:42:54 +01:00
Dave Houlton cf35d27dfb DRTVWR-546 merge up to 6.5.2 2021-12-15 14:37:18 -07:00
Dave Parks 5e5be92d79 SL-16202 Put Multi-threaded GL behind a feature flag and update featuretable (decruftify settings, compatibility pass). 2021-12-06 15:29:34 +00:00
Ansariel 63cc972499 Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	indra/llappearance/lldriverparam.h
#	indra/llcommon/llmemory.h
#	indra/llcommon/llprofiler.h
#	indra/llrender/llvertexbuffer.cpp
#	indra/llwindow/llwindow.cpp
#	indra/llwindow/llwindowwin32.h
#	indra/newview/app_settings/settings.xml
#	indra/newview/lldrawable.cpp
#	indra/newview/lldrawable.h
#	indra/newview/lldrawpoolalpha.cpp
#	indra/newview/lldrawpoolavatar.cpp
#	indra/newview/lldrawpooltree.cpp
#	indra/newview/lldrawpoolwater.cpp
#	indra/newview/llface.cpp
#	indra/newview/llinventoryfilter.cpp
#	indra/newview/llselectmgr.h
#	indra/newview/llspatialpartition.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewerobject.cpp
#	indra/newview/llvieweroctree.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/llvovolume.cpp
#	indra/newview/llvowlsky.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/skins/default/xui/en/floater_stats.xml
2021-11-12 17:31:39 +01:00
Ansariel 7427b46ea5 Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	.gitignore
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/llcommon/llcommon.cpp
#	indra/llcommon/llerror.cpp
#	indra/llcommon/llprofiler.h
#	indra/llcommon/llthread.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llprimitive/llmodel.h
#	indra/llrender/llfontgl.cpp
#	indra/llrender/llfontgl.h
#	indra/llrender/llgl.cpp
#	indra/llrender/llvertexbuffer.cpp
#	indra/llrender/llvertexbuffer.h
#	indra/llwindow/llwindowmacosx.h
#	indra/llwindow/llwindowwin32.cpp
#	indra/llwindow/llwindowwin32.h
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappviewer.cpp
#	indra/newview/llappviewer.h
#	indra/newview/lldrawpoolavatar.cpp
#	indra/newview/lldrawpoolavatar.h
#	indra/newview/lldynamictexture.cpp
#	indra/newview/llfloatermodelpreview.cpp
#	indra/newview/llimview.cpp
#	indra/newview/llmeshrepository.h
#	indra/newview/llmodelpreview.cpp
#	indra/newview/llnetmap.cpp
#	indra/newview/llskinningutil.cpp
#	indra/newview/llskinningutil.h
#	indra/newview/llspatialpartition.cpp
#	indra/newview/llteleporthistory.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llviewerobject.cpp
#	indra/newview/llviewerobjectlist.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvoicevivox.cpp
#	indra/newview/llvosky.cpp
#	indra/newview/llvovolume.cpp
2021-11-12 15:21:52 +01: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 d00272e0cc SL-16099 Multi-threaded OpenGL usage on Windows, enable Core Profile and VAOs by default. 2021-10-11 16:03:40 +00:00
Dave Parks f79890669d SL-16006 and SL-16009 Rigged mesh rendering optimization pass 2021-09-20 18:58:09 +00:00
Nicky 9186cc4e84 Linux/OSX; FIRE-30851 make sure FS does not crash on each exit. 2021-07-22 22:05:31 +02:00
Nicky a0ea3a5eb4 Add logging to see if texture list got destroyed or not. 2021-06-26 22:36:14 +02:00
Callum Prentice 168d177197 This set of changes reverts the merge with master (git revert c83e740) and results in a version of the DRTVWR-519 that matches what was presemt before it was deployed as a release viewer *plus* 3 small fixes from Maxim (See commits). This branch can now be used for additional fixes before eventually being used to release D-519 as normal 2021-03-09 14:39:51 -08:00
Brad Payne (Vir Linden) c83e740ef9 Revert "Merge branch 'master' of https://bitbucket.org/lindenlab/viewer into DRTVWR-519"
This reverts commit e61f485a04, reversing
changes made to 00c47d079f.
2021-03-08 13:56:16 +00:00
Ansariel 6b6b116fd4 Merge branch 'master' of https://bitbucket.org/lindenlab/viewer 2021-03-03 00:20:02 +01:00
Beq 4f7eb27f2f FIRE-30756/FIRE-30559 fix broken texture unloading 2021-02-15 01:19:29 +00:00
Beq 18e3791bb2 FIRE-30559 Preview texture priority handling to give better response 2021-02-08 14:51:37 +00:00
Ansariel 8d1b6e0f3f Update to system info details 2020-10-25 12:56:31 +01:00
Ansariel fca839f5cc Better settings name 2020-10-16 15:55:42 +02:00
Ansariel a4ed0a5c78 Restrict dynamic texture memory to GPUs with at least 512MB VRAM 2020-10-16 15:52:07 +02:00
Ansariel a4f99e4edb Use percentage-based texture memory reserves 2020-10-16 15:46:49 +02:00
Ansariel 723b525018 Add a physical GPU memory reserve for other uses that should always be taken into account 2020-10-16 14:41:12 +02:00
Ansariel d774058259 Don't take system memory into account when calculating available texture memory since the raw image data has already been loaded into system memory at this point. LLViewerTexture::updateClass() will take care of low memory situation already 2020-10-16 13:39:51 +02:00
Ansariel 492a9725f4 Flip the logic since cached textures also reside in GPU memory 2020-10-15 20:03:40 +02:00
Ansariel 9733fb5d19 Prevent compilers from getting angry because of unreachable code 2020-10-14 09:52:00 +02:00
Ansariel 2eea28a8e3 Add additional comment 2020-10-14 09:38:03 +02:00
Ansariel d0dd5cabc3 Add a minimum amount of texture memory the viewer should use 2020-10-13 21:20:33 +02:00
Ansariel a68fede0dc Introduce dynamic texture memory calculation on 64bit/AMD/NVIDIA systems 2020-10-13 20:39:09 +02:00
Callum Prentice 6be1f88a5e Complete the change from lldiskcache -> llfilesystem and then addition of new lldiskcache implementation 2020-09-24 14:45:39 -07:00
Callum Prentice 2e6f516411 Renamed the references to LLVFile and llvfile.* source code plus cmake scripts to use a different name - lldiskcache - since that more closely resembles what it is (or will be) now that the VFA is no more 2020-09-16 21:12:53 -07:00
Callum Prentice 3fc07dea01 First part of change to remove LLVFS from the Viewer. Consists of code changes to remove LLVFS and LLVFSThread classes along with the associated source files. The existing llvfs folder is renamed to llcache. Also includes changes to CMake script in many places to reflect changes. Eventually, llvfile source file and class will be renamed but that is not in this change. 2020-09-16 18:53:24 -07:00
Ansariel 6e340961c0 Merge viewer-neko 2019-10-30 18:05:01 +01:00
andreykproductengine 94d4364084 SL-12103 More reliable memory detection 2019-10-16 22:36:10 +03:00
Ansariel ad941e4e42 Merge viewer-neko 2019-04-17 19:17:08 +02:00
andreykproductengine a6595dfa9b SL-10344 Fix boost priority 2019-04-16 19:50:29 +03:00
Ansariel bcb8dcee52 Merge viewer-neko 2018-03-13 19:48:24 +01:00
Andrey Kleshchev 4156fb832c MAINT-6363 Normal and specular maps should not be downloaded if ALM is off 2018-03-06 12:59:32 +00:00
AndreyL ProductEngine 57a99273ed Merged in lindenlab/viewer-release 2018-01-17 03:20:12 +02:00
Ansariel 832911cea5 Merge Firestorm LGPL 2018-01-04 12:53:34 +01:00
Andrey Kleshchev 062be76dd5 MAINT-4354 Render stalls in object heavy regions 2017-12-15 12:43:54 +00:00
Andrey Kleshchev 8af9363e89 MAINT-4354 Render stalls in object heavy regions 2017-12-15 12:43:54 +00:00
Ansariel e6f9a5e2db Merge viewer64 2017-07-27 21:07:14 +02:00
Nicky 985730a52c Merge. 2017-05-18 17:40:24 +02: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
Nicky 688bf1e547 Synchronize with viewer64 source. 2017-01-11 15:36:33 +01:00
Ansariel 71f1707b99 Merge viewer-lion 2016-05-23 17:41:19 +02:00
Ansariel f68896905b Merge Firestorm LGPL 2016-05-23 16:09:09 +02:00
Ansariel 9b7a3fd2b4 Merge viewer-lion 2016-05-23 15:56:55 +02:00
Ansariel 732f199cef Merge Firestorm LGPL 2016-05-18 22:00:02 +02:00
AndreyL ProductEngine 602c9bc04a MAINT-6317 Restored the fix after a conflict resolution 2016-05-20 02:12:26 +03:00