Commit Graph

126 Commits (d4e9604700a1dbae3dbce58a3be0fda1465fd39c)

Author SHA1 Message Date
Ansariel 65b0056cbd Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
# Conflicts:
#	indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
2024-09-04 23:20:53 +02:00
Ansariel 4ee0056c59 Add missing changes from 682eaf6a13 2024-09-04 23:17:03 +02:00
Ansariel 07228d3a9e Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/CURL.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/FreeType.cmake
#	indra/cmake/LLPrimitive.cmake
#	indra/cmake/NGHTTP2.cmake
#	indra/cmake/Tracy.cmake
#	indra/llappearance/llavatarappearancedefines.cpp
#	indra/llcommon/llprofiler.cpp
#	indra/llcommon/llprofiler.h
#	indra/llfilesystem/lldiskcache.cpp
#	indra/llfilesystem/lldiskcache.h
#	indra/llinventory/llinventorytype.cpp
#	indra/media_plugins/example/CMakeLists.txt
#	indra/newview/CMakeLists.txt
#	indra/newview/installers/windows/installer_template.nsi
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llgroupmgr.cpp
#	indra/newview/llimprocessing.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatarself.cpp
#	indra/newview/skins/default/xui/en/menu_viewer.xml
#	indra/newview/viewer_manifest.py
2024-08-15 00:12:13 +02:00
Rye Mutt 70f455347e Introduce tracy instrumentation of mutex in LLSingleton, LLInstanceTracker and logging 2024-08-13 17:28:19 -04:00
Ansariel 088cc2ea35 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcommon/llpointer.h
#	indra/llcommon/llqueuedthread.cpp
#	indra/llfilesystem/llfilesystem.cpp
#	indra/llui/llconsole.cpp
#	indra/llui/llkeywords.cpp
#	indra/llui/llstatgraph.cpp
#	indra/llui/llvirtualtrackball.cpp
#	indra/newview/llagentcamera.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloateremojipicker.cpp
#	indra/newview/llfloaterimnearbychathandler.cpp
#	indra/newview/llfloatersettingsdebug.cpp
#	indra/newview/llfloatersnapshot.cpp
#	indra/newview/llglsandbox.cpp
#	indra/newview/llnetmap.cpp
#	indra/newview/llpanelface.cpp
#	indra/newview/llpanelpermissions.cpp
#	indra/newview/llpanelplaceprofile.cpp
#	indra/newview/llstartup.cpp
#	indra/newview/llviewermessage.cpp
#	indra/newview/llvocache.cpp
#	indra/newview/llworldmapview.cpp
2024-07-09 02:25:42 +02:00
Ansariel 9fdca96f8b Re-enable compiler warnings C4244 and C4396 except for lltracerecording.h and llunittype.h for now 2024-07-08 20:27:14 +02:00
Ansariel 591c75ebaf Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llappearance/llavatarappearance.cpp
#	indra/llmath/llvolume.cpp
#	indra/llmessage/llcorehttputil.cpp
#	indra/llrender/llgl.cpp
#	indra/newview/installers/darwin/apple-notarize.sh
#	indra/newview/llappviewer.cpp
#	indra/newview/llface.cpp
#	indra/newview/llfloater360capture.cpp
#	indra/newview/llfloateremojipicker.cpp
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/viewer_manifest.py
2024-06-10 21:53:31 +02:00
Andrey Lihatskiy c95b4bf3ea Post-merge - trim trailing whitespace 2024-06-10 20:45:59 +03:00
Ansariel c0fad3028f Re-enable compiler warnings C4018, C4100, C4231 and C4506 2024-06-10 16:42:43 +02:00
Ansariel a17fd2352a Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcharacter/llkeyframemotion.cpp
#	indra/llcharacter/llmotioncontroller.cpp
#	indra/llcrashlogger/llcrashlogger.cpp
#	indra/llimage/llimagetga.cpp
#	indra/llmessage/llregionflags.h
#	indra/llprimitive/lldaeloader.cpp
#	indra/llprimitive/llmodel.cpp
#	indra/llrender/llrendertarget.cpp
#	indra/llui/llconsole.cpp
#	indra/llui/llkeywords.cpp
#	indra/llui/llscrolllistctrl.cpp
#	indra/llui/lltextbase.cpp
#	indra/llui/lltexteditor.cpp
#	indra/llui/llurlentry.cpp
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterworldmap.cpp
#	indra/newview/llgiveinventory.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llpanelpermissions.cpp
#	indra/newview/llpanelteleporthistory.cpp
#	indra/newview/llvocache.cpp
2024-06-09 16:11:24 +02:00
Ansariel cb3bd8865a Fix a bunch of uninitialized variable warnings that showed up in Visual Studio 2024-05-30 15:41:36 +02:00
Ansariel 00163d131a Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
# Conflicts:
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterchangeitemthumbnail.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llselectmgr.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturectrl.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llvovolume.cpp
2024-03-27 14:17:09 +01:00
Andrey Lihatskiy 71ed19839e Merge branch 'main' into DRTVWR-600-maint-A
# Conflicts:
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterchangeitemthumbnail.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llselectmgr.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturectrl.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llvovolume.cpp
2024-03-27 00:45:06 +02:00
Ansariel 039c5176bb Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer 2024-03-13 11:16:38 +01:00
Ansariel 0cc3a4bf68 Remove obsolete LLSINGLETON_C11 and LLSINGLETON_EMPTY_CTOR_C11 macros 2024-03-13 11:21:16 +02:00
Ansariel 2827ebf04f Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2024-03-01 22:47:21 +01:00
Brad Linden 258c039584 Merge remote-tracking branch 'origin/main' into release/gltf-maint2 2024-03-01 10:12:00 -08:00
Ansariel c7a44ac88b Merge branch 'DRTVWR-601' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/app_settings/settings.xml
#	indra/newview/lltexturectrl.h
2024-01-17 11:04:36 +01:00
RunitaiLinden 25d7828bec DRTVWR-601 Fix for Tracy instrumentation (Tracy doesn't play nice with coroutines). 2024-01-12 12:39:57 -06:00
Callum Prentice 547c0665ea DRTVWR-489-emoji: As part of the work to get macOS version of the Viewer working, the flag was introduced to warn (and therefore error out) when a virtual override was not marked with the 'override' keyword. Fixing this up involved a large number of changes and this commit represents just those changes - nothing specially from the DRTVWR-489 viewer
(Cherry pick of 3 commits from Callum to declutter the emoji PR: 3185bdea27,
923733e591 and 6f31fabbc2)
2023-02-14 17:01:22 +01:00
Ansariel 62b11fc825 Merge branch 'DRTVWR-489-emoji' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/llcommon/llqueuedthread.cpp
#	indra/llcommon/llsdserialize.h
#	indra/llcommon/llthreadsafequeue.h
#	indra/llinventory/llsettingssky.cpp
#	indra/newview/CMakeLists.txt
#	indra/newview/installers/windows/lang_zh.nsi
#	indra/newview/llappviewer.cpp
#	indra/newview/llnavigationbar.h
#	indra/newview/llpathfindingnavmesh.cpp
#	indra/newview/lltoolcomp.h
#	indra/newview/lltoolfocus.h
#	indra/newview/llviewerhelp.h
#	indra/newview/llvoicevivox.h
2023-02-04 13:39:11 +01:00
Callum Prentice 3185bdea27 DRTVWR-489-emoji: As part of the work to get macOS version of the Viewer working, the flag was introduced to warn (and therefore error out) when a virtual override was not marked with the 'override' keyword. Fixing this up involved a large number of changes and this commit represents just those changes - nothing specially from the DRTVWR-489 viewer 2023-01-26 14:45:45 -08:00
Ansariel 0a0e2fe93e Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer 2022-01-15 02:39:07 +01:00
Ptolemy b504c69255 SL-16606: Add profiler category THREAD 2022-01-14 11:50:21 -08:00
Ansariel 4a1ef323ae Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer 2021-11-29 19:40:28 +01:00
Nat Goodspeed 0b066539fe DRTVWR-546, SL-16220, SL-16094: Undo previous glthread branch revert.
Reverting a merge is sticky: it tells git you never want to see that branch
again. Merging the DRTVWR-546 branch, which contained the revert, into the
glthread branch undid much of the development work on that branch. To restore
it we must revert the revert.

This reverts commit 029b41c041.
2021-11-24 10:47:54 -05:00
Ansariel d881fa40d3 Merge branch 'DRTVWR-546' of https://bitbucket.org/lindenlab/viewer 2021-11-20 22:35:31 +01:00
Nat Goodspeed 3171aaad9b SL-16094: fix merge glitch 2021-11-19 14:57:36 -05:00
Nat Goodspeed f997bcd186 SL-16094: Stylish braces!
(cherry picked from commit 18de6c9b98)
2021-11-19 14:56:30 -05:00
Nat Goodspeed 106d52c6ee SL-16202: Instantiate LLSimpleton::sInstance generically
instead of requiring a separate declaration for each subclass.

The previous way produces errors in clang.

(cherry picked from commit 8458ad8890)
2021-11-19 14:53:12 -05:00
Dave Houlton 029b41c041 Revert "SL-16220: Merge branch 'origin/DRTVWR-546' into glthread"
This reverts commit 5188a26a85, reversing
changes made to 819088563e.
2021-11-15 09:25:35 -07: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
Nat Goodspeed 75110629de SL-16094: Stylish braces! 2021-11-11 10:23:16 -05:00
Nat Goodspeed ff5496239b SL-16202: Use WorkQueue::postTo() for texture create/post handshake.
That is, when LLViewerFetchedTexture::scheduleCreateTexture() wants to call
createTexture() on the LLImageGLThread, but postCreateTexture() on the main
thread, use the "mainloop" WorkQueue to set up the handshake.

Give ThreadPool a public virtual run() method so a subclass can override with
desired behavior. This necessitates a virtual destructor. Add accessors for
embedded WorkQueue (for post calls), ThreadPool name and width (in threads).

Allow LLSimpleton::createInstance() to forward arguments to the subject
constructor.

Make LLImageGLThread an LLSimpleton - that abstraction didn't yet exist at the
time LLImageGLThread was coded. Also derive from ThreadPool rather than
LLThread. Make it a single-thread "pool" with a very large queue capacity.
2021-11-05 12:33:31 -04:00
Nat Goodspeed 8458ad8890 SL-16202: Instantiate LLSimpleton::sInstance generically
instead of requiring a separate declaration for each subclass.

The previous way produces errors in clang.
2021-11-04 16:40:05 -04: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 5553d61421 SL-16203 Fix for wonky handling of mouse deltas. 2021-10-22 17:01:33 +00:00
Ansariel 9e415cdbb2 Merge branch 'DRTVWR-516-maint' of https://bitbucket.org/lindenlab/viewer 2021-05-25 11:03:48 +02:00
Nat Goodspeed 24501dfa0e SL-10297: Use initializer_list<std::string> vs. <std::string_view>.
This is somewhat more expensive for string literals, but switching to
std::string_view implies more extensive changes, to be considered separately.
2021-05-12 22:35:09 -04:00
Nat Goodspeed d10badf0d2 SL-10297: #include <string_view> in llsingleton.h 2021-05-12 16:26:53 -04:00
Nat Goodspeed 147c66d67c SL-10297: Simplify implementation of LLSingletonBase::logwarns() etc.
Introduce 'string_params' typedef for std::initialization_list<std::string>,
and make logwarns(), loginfos(), logdebugs() and logerrs() accept const
string_params&.

Eliminate the central log() function in llsingleton.cpp that used LL_VLOGS().
To cache the result of a (moderately expensive) Log::shouldLog() call,
LL_VLOGS() wants its CallSite object to be static -- but of course the
shouldLog() result will differ for different ELevel values, so LL_VLOGS()
instantiates a static array of CallSite instances. It seems silly to funnel
distinct logwarns(), etc., functions through a common log() function only to
have LL_VLOGS() tease apart ELevel values again. Instead, make logwarns()
directly invoke LL_WARNS(), and similarly for the rest.

To reduce boilerplate in these distinct functions, teach std::ostream how to
stream a string_params instance by looping over its elements. Then each
logwarns(), etc., function can simply stream its string_params argument to
LL_WARNS() or whichever.

In particular, eliminate the LLERROR_CRASH macro in logerrs(). The fact that
it invokes LL_ERRS() ensures that its LL_ENDL macro will crash the viewer.
2021-05-12 09:46:49 -04:00
Nat Goodspeed 95d8085fa4 SL-10297: Make LLSingletonBase::llerrs() et al. runtime variadic.
Instead of accepting a fixed list of (const char* p1="", etc.), accept
(std::initializer_list<std::string_view>). Accepting a
std::initializer_list<T> in your parameter list allows coding (e.g.)
func({T0, T1, T2, ... });
-- in other words, you can pass the initializer_list a brace-enclosed list of
an arbitrary number of instances of T.

Using std::string_view instead of const char* means we can pass *either* const
char* or std::string. string_view is cheaply constructed from either, allowing
uniform treatment within the function.

Constructing string_view from std::string simply extracts the pointer and
length from the std::string.

Constructing string_view from const char* (e.g. a "string literal") requires
scanning the string for its terminating nul byte -- but that would be
necessary even if the scan were deferred until the function body. Since
string_view stores the length, the scan still happens only once.
2021-05-10 15:21:51 -04:00
Nicky Dasmijn 27715d4d03 Merge remote-tracking branch 'll/d476' into fs-eep-vs2017-d476 2020-05-21 06:54:02 +02:00
Nicky Dasmijn cff453ff51 Merge remote-tracking branch 'eep/master' into fs-eep-vs2017 2020-05-20 13:49:20 +02:00
Nat Goodspeed ca6f092929 DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72 2020-05-06 16:06:26 -04:00
Nat Goodspeed dc07509f29 DRTVWR-476: Cherry-pick debug aids from commit 77b0c53 (fiber-mutex) 2020-04-03 10:38:53 -04:00
Nat Goodspeed d1175e8fa1 DRTVWR-476: Log calls to LLParamSingleton::initParamSingleton(). 2020-03-25 19:25:42 -04:00
Nat Goodspeed 47ec6ab3be SL-11216: Remove LLSingletonBase::cleanupAll().
Remove call from LLAppViewer::cleanup().

Instead, make each LLSingleton<T>::deleteSingleton() call cleanupSingleton()
just before destroying the instance. Since deleteSingleton() is not a
destructor, it's fine to call cleanupSingleton() from there; and since
deleteAll() calls deleteSingleton() on every remaining instance, the former
cleanupAll() functionality has been subsumed into deleteAll().

Since cleanupSingleton() is now called at exactly one point in the instance's
lifetime, we no longer need a bool indicating whether it has been called.

The previous protocol of calling cleanupAll() before deleteAll() implemented a
two-phase cleanup strategy for the application. That is no longer needed.
Moreover, the cleanupAll() / deleteAll() sequence created a time window during
which individual LLSingleton<T> instances weren't usable (to the extent that
their cleanupSingleton() methods released essential resources) but still
existed -- so a getInstance() call would return the crippled instance rather
than recreating it.

Remove cleanupAll() calls from tests; adjust to new order of expected side
effects: instead of A::cleanupSingleton(), B::cleanupSingleton(), ~A(), ~B(),
now we get A::cleanupSingleton(), ~A(), B::cleanupSingleton(), ~B().
2020-03-25 16:01:31 -04:00
Nat Goodspeed 31863d833c DRTVWR-494: Move most LLSingleton cleanup back to destructor
instead of deleteSingleton().

Specifically, clear static SingletonData and remove the instance from the
MasterList in the destructor.

Empirically, some consumers are manually deleting LLSingleton instances,
instead of calling deleteSingleton(). If deleteSingleton() handles cleanup
rather than the destructor, we're left with dangling pointers in the Master
List.

We don't also call cleanupSingleton() from the destructor because only
deleteSingleton() promises to call cleanupSingleton(). Hopefully whoever is
directly deleting an LLSingleton subclass instance isn't relying on
cleanupSingleton().
2020-03-25 15:28:17 -04:00