summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
AgeCommit message (Collapse)Author
2022-01-13SL-16606: Add profiler category NETWORKPtolemy
2022-01-13SL-16606: Add profiler category APPPtolemy
2021-12-16DRTVWR-546 fix sUseFBO merge errorsDave Houlton
2021-12-15DRTVWR-546 merge up to 6.5.2Dave Houlton
2021-12-06SL-16202 Put Multi-threaded GL behind a feature flag and update featuretable ↵Dave Parks
(decruftify settings, compatibility pass).
2021-11-30SL-16421: Destroy the "General" ThreadPool as soon as cleanup starts.Nat Goodspeed
Introduce LLAppViewer::onCleanup(), a method that accepts a nullary callable to execute once viewer shutdown begins. Fire the collected callables in LLAppViewer::cleanup(). In llstartup.cpp, instead of declaring a static unique_ptr and relying on static object destruction to clean up the "General" ThreadPool, bind the pointer to the new ThreadPool into an onCleanup() lambda that will delete it when called. ~ThreadPool() takes care of orderly shutdown.
2021-11-30SL-16421: Unify LLAppViewer::cleanup() indentation.Nat Goodspeed
Use hard tabs because most of the existing function uses those.
2021-11-29SL-16094: Merge branch 'DRTVWR-546' into glthreadNat Goodspeed
2021-11-29SL-16408 fixed regression - crash on exitMnikolenko Productengine
2021-11-25SL-16408 Fix for crashing on disconnectMnikolenko Productengine
2021-11-24DRTVWR-546, SL-16220, SL-16094: Undo previous glthread branch revert.Nat Goodspeed
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 029b41c0419e975bbb28454538b46dc69ce5d2ba.
2021-11-23SL-16094, SL-16400: Merge branch 'DRTVWR-546' into glthreadNat Goodspeed
2021-11-20SL-16289 Rigged mesh rendering overhaulDave Parks
2021-11-19SL-16094: Service mainloop WorkQueue every LLAppViewer::idle() callNat Goodspeed
even if idle() exits early.
2021-11-19SL-15993 Disabling transparent water should not disable advanced lightingAndrey Kleshchev
2021-11-16DRTVWR-546 merge in master v6.5.1Dave Houlton
2021-11-16Merge branch 'DRTVWR-519' into DRTVWR-552-cache-360Andrey Lihatskiy
# Conflicts: # indra/newview/app_settings/settings.xml
2021-11-16Merge branch 'master' into DRTVWR-534Andrey Lihatskiy
# Conflicts: # indra/newview/VIEWER_VERSION.txt
2021-11-16Merge branch 'master' into DRTVWR-519Andrey Lihatskiy
# Conflicts: # README.md
2021-11-15Revert "SL-16220: Merge branch 'origin/DRTVWR-546' into glthread"Dave Houlton
This reverts commit 5188a26a8521251dda07ac0140bb129f28417e49, reversing changes made to 819088563e13f1d75e048311fbaf0df4a79b7e19.
2021-11-12SL-16220: Merge branch 'origin/DRTVWR-546' into glthreadNat Goodspeed
2021-11-12SL-15993 Disabling transparent water should not disable advanced lightingAndrey Kleshchev
2021-11-04SL-16202: Use large WorkQueue size limits for mainloop and General.Nat Goodspeed
Give ThreadPool and WorkQueue the ability to override default ThreadSafeSchedule capacity. Instantiate "mainloop" WorkQueue and "General" ThreadPool with very large capacity because we never want to have to block trying to push to either.
2021-11-04SL-16202: Streamline WorkQueues in LLImageGLThread.Nat Goodspeed
Use the new WorkQueue::postIfOpen() method in LLImageGLThread::post(). That makes the LLImageGLThread method a trivial wrapper, which can accept templated work items and pass them through to the WorkQueue method, eliminating double indirection due to multiple layers of std::function. Eliminate LLImageGLThread's WorkQueue intended for work on the main queue. Since the main loop already has a WorkQueue of its own, post work directly to that WorkQueue instead of using a separate WorkQueue misleadingly embedded in LLImageGLThread. Instead of looking up the main thread's WorkQueue every time, capture a pointer in LLImageGL's constructor. We no longer need a fallback queue for when the main thread's WorkQueue is full. We no longer need the main loop to poll LLImageGL to service the local main-thread-targeted WorkQueue, or to copy work from the fallback queue to the main queue. That eliminates LLImageGLThread::postCallback(), mCallbackQueue, mPendingCallbackQ, executeCallbacks() -- and even LLImageGL::updateClass() and LLAppViewer's call to it. Change LLViewerFetchedTexture::scheduleCreateTexture() to post work to the main thread's WorkQueue instead of calling LLImageGLThread::postCallback().
2021-11-04SL-16202: Merge branch 'sl-16220' into glthreadNat Goodspeed
2021-10-28SL-15462 Convert waitForChannel() into state machineAndrey Kleshchev
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-25SL-16246 protect null deferenceDave Houlton
2021-10-22mergeBrad Payne (Vir Linden)
2021-10-22SL-16220: Merge branch 'master' into sl-16220Nat Goodspeed
2021-10-22SL-16220: Add LL::ThreadPool class and a "General" instance.Nat Goodspeed
ThreadPool bundles a WorkQueue with the specified number of worker threads to service it. Each ThreadPool has a name that can be used to locate its WorkQueue. Each worker thread calls WorkQueue::runUntilClose(). ThreadPool listens on the "LLApp" LLEventPump for shutdown notification. On receiving that, it closes its WorkQueue and then join()s each of its worker threads for orderly shutdown. Add a settings.xml entry "ThreadPoolSizes", the first LLSD-valued settings entry to expect a map: pool name->size. The expectation is that usually code instantiating a particular ThreadPool will have a default size in mind, but it should check "ThreadPoolSizes" for a user override. Make idle_startup()'s STATE_SEED_CAP_GRANTED state instantiate a "General" ThreadPool. This is function-static for lazy initialization. Eliminate LLMainLoopRepeater, which is completely unreferenced. Any potential future use cases are better addressed by posting to the main loop's WorkQueue. Eliminate llappviewer.cpp's private LLDeferredTaskList class, which implemented LLAppViewer::addOnIdleCallback(). Make addOnIdleCallback() post work to the main loop's WorkQueue instead.
2021-10-20SL-16220: Add a WorkQueue to be serviced by mainloop.Nat Goodspeed
Make LLAppViewer::idle() call LL::WorkQueue::runFor() to dequeue and run some or all of the pending responses from worker threads. Add a MainWorkTime setting to specify the time slice the main loop may devote each frame to servicing such responses.
2021-10-13Merge with master after latest Viewer releaseCallum Linden
2021-10-13Merge branch 'master' v6.4.24 into DRTVWR-546Dave Houlton
2021-10-13Merge with head of Master after a new Viewer releaseCallum Prentice
2021-10-14Merge branch 'master' into DRTVWR-545-maint-mixAndrey Lihatskiy
2021-10-11SL-16099 Multi-threaded OpenGL usage on Windows, enable Core Profile and ↵Dave Parks
VAOs by default.
2021-10-07SL-16024: Merge branch 'DRTVWR-546' into SL-16024-to-546Nat Goodspeed
2021-10-07SL-16024: Return shared_ptr from LLInstanceTracker::getInstance().Nat Goodspeed
It feels wrong to return a dumb LLInstanceTracker subclass* from getInstance() when we use std::shared_ptr and std::weak_ptr internally. But tweak consumers to use 'auto' or LLInstanceTracker::ptr_t in case we later revisit this decision. We did add a couple get() calls where it's important to obtain a dumb pointer.
2021-10-06SL-16138 remove checks for now-mandatory capabilitiesDave Houlton
2021-09-29SL-15999 - force multiple viewers support for noninteractive modeBrad Payne (Vir Linden)
2021-09-29Merge branch 'SL-15999' of ssh://bitbucket.org/lindenlab/viewer into SL-15999Brad Payne (Vir Linden)
2021-09-29SL-15999 - noninteractive sessions should quit cleanly when they get a close ↵Brad Payne (Vir Linden)
message. Removed some possible crashes
2021-09-29SL-16034 Disable all displays and UI in noninteractive modeMnikolenko Productengine
2021-09-28SL-15999 - noninteractive sessions disable loggingBrad Payne (Vir Linden)
2021-09-28SL-15999 - draw no objects when noninteractiveBrad Payne (Vir Linden)
2021-09-28SL-15999 - noninteractive mode: create minimal objects,load no texturesBrad Payne (Vir Linden)
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-27SL-15999 - noninteractive: debugging run issues, suppress AFK/Away poseBrad Payne (Vir Linden)
2021-09-22Merge remote-tracking branch 'remotes/origin/DRTVWR-541' into DRTVWR-546Runitai Linden