summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
AgeCommit message (Collapse)Author
2021-09-01SL-15872 fixed more cases where sUseFBO wasn't updated correctlyMnikolenko Productengine
2021-06-25Merge branch 'master' into DRTVWR-516-maintAndrey Lihatskiy
# Conflicts: # indra/newview/app_settings/settings.xml # indra/newview/llvoicevivox.cpp
2021-06-07Merge branch 'master' into DRTVWR-518-uiAndrey Lihatskiy
2021-06-07Merge branch 'master' into DRTVWR-516-maintAndrey Lihatskiy
2021-05-21Merge branch 'sl-10297' into DRTVWR-516-maintAndrey Lihatskiy
2021-05-12SL-10297: Clean up a few merge glitches.Nat Goodspeed
2021-05-12SL-10297: Merge branch 'sl-10297-oz' into sl-10297.Nat Goodspeed
Bring in Oz's tweaks to the way BugSplat is engaged and tested, plus a few other miscellaneous goodies.
2021-05-11SL-10297: Move LL_ERRS crash location into the LL_ERRS macro itself.Nat Goodspeed
Introduce Oz's LLERROR_CRASH macro analogous to the old LLError::crashAndLoop() function. Change LL_ENDL macro so that, after calling flush(), if the CallSite is for LEVEL_ERROR, we invoke LLERROR_CRASH right there. Change the meaning of LLError::FatalFunction. It used to be responsible for the actual crash (hence crashAndLoop()). Now, instead, its role is to disrupt control flow in some other way if you DON'T want to crash: throw an exception, or call exit() or some such. Any FatalFunction that returns normally will fall into the new crash in LL_ENDL. Accordingly, the new default FatalFunction is a no-op lambda. This eliminates the need to test for empty (not set) FatalFunction in Log::flush(). Remove LLError::crashAndLoop() because the official LL_ERRS crash is now in LL_ENDL. One of the two common use cases for setFatalFunction() used to be to intercept control in the last moments before crashing -- not to crash or to avoid crashing, but to capture the LL_ERRS message in some way. Especially when that's temporary, though (e.g. LLLeap), saving and restoring the previous FatalFunction only works when the lifespans of the relevant objects are strictly LIFO. Either way, that's a misuse of FatalFunction. Fortunately the Recorder mechanism exactly addresses that case. Introduce a GenericRecorder template subclass, with LLError::addGenericRecorder(callable) that accepts a callable with suitable (level, message) signature, instantiates a GenericRecorder, adds it to the logging machinery and returns the RecorderPtr for possible later use with removeRecorder(). Change llappviewer.cpp's errorCallback() to an addGenericRecorder() callable. Its role was simply to update gDebugInfo["FatalMessage"] with the LL_ERRS message, then call writeDebugInfo(), before calling crashAndLoop() to finish crashing. Remove the crashAndLoop() call, retaining the gDebugInfo logic. Pass errorCallback() to LLError::addGenericRecorder() instead of setFatalFunction(). Oddly, errorCallback()'s crashAndLoop() call was conditional on a compile-time SHADER_CRASH_NONFATAL symbol. The new mechanism provides no way to support SHADER_CRASH_NONFATAL -- it is a Bad Idea to return normally from any LL_ERRS invocation! Rename LLLeapImpl::fatalFunction() to onError(). Instead of passing it to LLError::setFatalFunction(), pass it to addGenericRecorder(). Capture the returned RecorderPtr in mRecorder, replacing mPrevFatalFunction. Then ~LLLeapImpl() calls removeRecorder(mRecorder) instead of restoring mPrevFatalFunction (which, as noted above, was order-sensitive). Of course, every enabled Recorder is called with every log message. onError() and errorCallback() must specifically test for calls with LEVEL_ERROR. LLSingletonBase::logerrs() used to call LLError::getFatalFunction(), check the return and call it if non-empty, else call LLError::crashAndLoop(). Replace all that with LLERROR_CRASH. Remove from llappviewer.cpp the watchdog_llerrs_callback() and watchdog_killer_callback() functions. watchdog_killer_callback(), passed to Watchdog::init(), used to setFatalFunction(watchdog_llerrs_callback) and then invoke LL_ERRS() -- which seems a bit roundabout. watchdog_llerrs_callback(), in turn, replicated much of the logic in the primary errorCallback() function before replicating the crash from llwatchdog.cpp's default_killer_callback(). Instead, pass LLWatchdog::init() a lambda that invokes the LL_ERRS() message formerly found in watchdog_killer_callback(). It no longer needs to override FatalFunction with watchdog_llerrs_callback() because errorCallback() will still be called as a Recorder, obviating watchdog_llerrs_callback()'s first half; and LL_ENDL will handle the crash, obviating the second half. Remove from llappviewer.cpp the static fast_exit() function, which was simply an alias for _exit() acceptable to boost::bind(). Use a lambda directly calling _exit() instead of using boost::bind() at all. In the CaptureLog class in llcommon/tests/wrapllerrs.h, instead of statically referencing the wouldHaveCrashed() function from test.cpp, simply save and restore the current FatalFunction across the LLError::saveAndResetSettings() call. llerror_test.cpp calls setFatalFunction(fatalCall), where fatalCall() was a function that simply set a fatalWasCalled bool rather than actually crashing in any way. Of course, that implementation would now lead to crashing the test program. Make fatalCall() throw a new FatalWasCalled exception. Introduce a CATCH(LL_ERRS("tag"), "message") macro that expands to: LL_ERRS("tag") << "message" << LL_ENDL; within a try/catch block that catches FatalWasCalled and sets the same bool. Change all existing LL_ERRS() in llerror_test.cpp to corresponding CATCH() calls. In fact there's also an LL_DEBUGS(bad tag) invocation that exercises an LL_ERRS internal to llerror.cpp; wrap that too.
2021-05-06SL-15168 Viewer side functionality for guidebook window openingAndrey Kleshchev
2021-04-29Merge master (DRTVWR-515) into DRTVWR-516-maintAndrey Kleshchev
# Conflicts: # autobuild.xml # doc/contributions.txt # indra/llcommon/llcoros.cpp # indra/llmessage/llcoproceduremanager.cpp # indra/newview/llfloaterfixedenvironment.cpp # indra/newview/llfloaterimsessiontab.cpp
2021-04-29Merge master into DV525-merge-6.4.19Dave Houlton
2021-04-15SL-14914 New release viewer install updated to RC unexpectedlyAndrey Kleshchev
Requested behavior: First install of a new viewer should never prompt to update to any RC. Anfortunately neither viewer nor updater can tell the difference betwen RC and optional release update, so setting updater to download only required updates.
2021-04-01Merge branch 'master' into DV525-merge-6.4.18Dave Houlton
2021-04-01Merge branch 'master' into DRTVWR-516-maintAndrey Lihatskiy
2021-04-01Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
2021-03-31SL-14990 ig75icd64 and other intel crashesAndrey Kleshchev
Obsolete driver detection
2021-03-18SL-14927 Some avatar names not resolvingAndrey Kleshchev
2021-03-13SL-14961 Coroutine crash was not reported to bugsplatAndrey Kleshchev
2021-03-12SL-14961 Bugsplat loggingAndrey Kleshchev
2021-03-10Merge branch 'master' v6.4.17 into DRTVWR-525Dave Houlton
2021-03-09Merge branch 'master' into DRTVWR-514-keymappingsAndrey Lihatskiy
2021-03-09Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
2021-03-08Revert "Merge branch 'master' of https://bitbucket.org/lindenlab/viewer into ↵Brad Payne (Vir Linden)
DRTVWR-519" This reverts commit e61f485a04dc8c8ac6bcf6a24848359092884d14, reversing changes made to 00c47d079f7e958e473ed4083a7f7691fa02dcd5.
2021-03-02Merge branch 'master' v 6.4.15 into DRTVWR-525Dave Houlton
2021-03-02Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
2021-03-02Merge branch 'master' into DRTVWR-514-keymappingsAndrey Lihatskiy
2021-02-03Merge with Master after Viewer releaseCallum Prentice
2021-02-01Merge branch 'master' into DV525-merge-6.4.13Dave Houlton
2021-02-01Merge branch 'master' into DRTVWR-514-keymappingsAndrey Kleshchev
# Conflicts: # indra/llui/llscrolllistctrl.cpp
2021-02-01Merge branch 'master' of https://bitbucket.org/lindenlab/viewer/src/master ↵Andrey Kleshchev
into DRTVWR-515-maint # Conflicts: # autobuild.xml (llca) # indra/llwindow/llwindow.h (SL-13507 vs SL-5894) # indra/newview/llscenemonitor.cpp (SL-14422) # indra/newview/llvovolume.cpp (SL-12069)
2021-01-27SL-14422 Crash at LLSceneMonitor::dumpToFileMnikolenko Productengine
2021-01-15SL-14283 Don't crash viewer, only show a notificationAndrey Kleshchev
2021-01-14SL-14283 When updater is missing, viewer fails to launch silentlyAndrey Kleshchev
2020-11-25SL-13733 One more vivox shutdown crashAndrey Kleshchev
Vivox was using dead pump
2020-11-21SL-14368 Expanding the 'People' floater to the right does not expand the ↵Andrey Kleshchev
displayed values
2020-11-17SL-14342 FIXED Crash: "Uninitialized param singleton LLVoiceClient"Mnikolenko Productengine
2020-11-13Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llfloatereditextdaycycle.cpp # indra/newview/llfloaterfixedenvironment.cpp
2020-11-13SL-14312 Show simulator host names for AWS hosted regionsMnikolenko Productengine
2020-11-11Merge branch 'master' 6.4.12 into DRTVWR-510Dave Houlton
2020-11-11Merge branch 'master' into DRTVWR-519Callum Prentice
2020-11-11Merged master (DRTVWR-507) into DRTVWR-514-keymappingsAndrey Kleshchev
2020-11-11Merge branch 'master' into DRTVWR-513-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llui/llfolderviewmodel.h # indra/newview/lltexturecache.cpp # indra/newview/llviewermenu.h # indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
2020-11-11reverted part of SL-10625 since it is now obsoleteAndrey Kleshchev
see SL-13565
2020-11-11Revert "SL-13565, remove SL-10625 throttling erroneously applied to all GPUs"Andrey Kleshchev
This reverts commit d77b7bdc5484fab731f7537a15d690a1e022c246.
2020-11-11Revert "SL-13565, clean up now-orphaned throttling variable and handling code"Andrey Kleshchev
This reverts commit 6c1a15d936763dc14f368e10bd53c6e351bf0136.
2020-10-27Fix for meta issue: SL-14211 Determine optimum cache size for VFS ↵Callum Prentice
replacement cache
2020-10-19DRTVWR-510 clean up obsolete downstream-from-mDebugGPU codeDave Houlton
2020-10-19DRTVWR-510 remove obsolete mDebugGPU variableDave Houlton
2020-10-15SL-13424 Add Rad Games Tools local Telemetry profiler supportPtolemy
2020-10-12SL-14078 No point in verifying display name cap each frame #2Andrey Kleshchev