Commit Graph

44385 Commits (353329c2c2e9e8fa1ff273de2016c9e155585f45)

Author SHA1 Message Date
Dave Houlton 353329c2c2 DRTVWR-546 merge in master v6.5.1 2021-11-16 11:44:55 -07:00
Mnikolenko Productengine e95b7efd0b SL-16362 FIXED Viewer crashes if settings.xml file is missing 2021-11-16 16:18:01 +02:00
Nat Goodspeed 9957c28ddc Increment viewer version to 6.5.1
following promotion of DRTVWR-545
2021-11-15 17:44:28 -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
Dave Houlton aeed774ff9 (Moved from DRTVWR-528) clean up cmake recursive CXX_FLAGS definition (/Zo) 2021-11-12 15:43:51 -07:00
Dave Houlton 2e2d9b6115 SL-14895, restore previous post-deferred alpha behavior 2021-11-12 14:51:38 -07:00
Dave Houlton a08a45c00f SL-14895, point light atten should move inversely light radius 2021-11-12 14:28:36 -07:00
Nat Goodspeed 5188a26a85 SL-16220: Merge branch 'origin/DRTVWR-546' into glthread 2021-11-12 12:10:44 -05:00
Andrey Kleshchev 819088563e SL-11678 Avatar is reflecting on the under side of water surface
Avatar wasn't reflecting but distorting, since avatar was already under water it looked like a 'reflection' of avatar, but was not rotated right and with wrong angle.
2021-11-12 17:35:28 +02:00
Andrey Kleshchev 709184e0ff SL-15993 Disabling transparent water should not disable advanced lighting 2021-11-12 17:34:27 +02:00
Andrey Kleshchev 2b543f92fa SL-16056 Improve 'avatar cloud' behavior
Make avatar cloud delay longer proportionally to load time
2021-11-12 17:32:28 +02:00
Andrey Kleshchev c1c2830f9b SL-15391 Crash at getUniformLocation 2021-11-12 17:31:36 +02:00
Andrey Kleshchev cb07acf9fe SL-13561 When ALM is enabled, disabling water rendering breaks the sky 2021-11-12 17:27:45 +02:00
Andrey Kleshchev 5534781acf SL-15333 Crash in glh_init_extensions 2021-11-12 17:21:50 +02:00
Brad Payne (Vir Linden) 28cefb3a37 SL-16355 - spammy message removed 2021-11-11 23:33:41 +00:00
Nat Goodspeed 75110629de SL-16094: Stylish braces! 2021-11-11 10:23:16 -05:00
Vir Linden fd20683910 Merged in SL-16329 (pull request #769)
SL-16329 - track frame time and jitter (as average deviation frame to frame) in stats window

Approved-by: Euclid Linden
Approved-by: Michael Pohoreski
2021-11-10 17:32:09 +00:00
Vir Linden d0b2395b89 Merged DRTVWR-546 into SL-16329 2021-11-10 17:31:47 +00:00
Mnikolenko Productengine d3b8f823fa SL-16330 mac build fix 2021-11-10 18:44:00 +02:00
Nat Goodspeed 69a39dce0b SL-16094: Only link IMM32.LIB for llurlentry tests on Windows. 2021-11-10 11:11:04 -05:00
Nat Goodspeed 1a39a8f7d9 Merge branch 'DRTVWR-546' into glthread 2021-11-10 10:28:58 -05:00
Nat Goodspeed 214d8d40c1 SL-16094: Statically link to Windows IMM32.LIB.
llwindowwin32.cpp's LLWinImm class used to dynamically load IMM32.DLL and
populate its methods using GetProcAddress(). That was to support Windows XP.
Since we've dropped Windows XP, use static linking instead, with dramatically
fewer lines of code (and less of a thread safety alarm trigger).

We retain the LLWinImm wrapper class only as a hook for Tracy instrumentation.
2021-11-10 10:17:12 -05:00
Nat Goodspeed df8e17d8e8 SL-16094: Add WorkQueue::size() method to support changeset 08336bb.
We want to skip calling PostMessage() to bump the window thread out of
GetMessage() in any frame with no work functions pending for that thread. That
test depends on being able to sense the size() of the queue. Having converted
to WorkQueue, we need that queue to support size().
2021-11-10 10:13:38 -05:00
Mnikolenko Productengine 7c561ca1c7 SL-16330 move VSync checkbox to General group 2021-11-10 13:02:18 +02:00
Vir Linden 4d0010d1fc Merged DRTVWR-546 into SL-16329 2021-11-09 21:39:47 +00:00
Brad Payne (Vir Linden) ca0b9a3753 SL-16329 - track frame time and jitter (as average deviation frame to frame) in stats window 2021-11-09 20:25:25 +00:00
Mnikolenko Productengine 768b7a4d33 SL-16330 Clean up vertical sync handling, add to UI 2021-11-09 17:17:49 +02:00
Andrey Lihatskiy 8dd9554eb5 SL-16333 VLC 3 doesn't support -1 == infinity for input-repeat
by Callum
2021-11-09 02:38:58 +02:00
Nat Goodspeed 08336bb469 SL-16094: Zap thread safety land mine; thin PostMessage() calls.
LLWindowWin32::mWndProc was a public WNDPROC member. If set non-NULL,
mainWindowProc() would call that before falling into its own handler code. But
now, mWndProc would be called on the window thread instead of on the main
thread. Running arbitrary callback code on the window thread could cause all
sorts of problems.

It could be made safe by posting the callback call to the "mainloop" WorkQueue
for execution on the main thread. But as no code actually references it,
delete it instead.

Per DaveP, the recent change to LLWindowsWin32Thread::post() could end up
calling PostMessage() many times per frame, with nontrivial overhead.
Reinstate the more selective code that calls PostMessage() with the dummy
message (to bust us out of GetMessage() to check pending window-thread work
requests) at most once per frame.
2021-11-08 15:15:56 -05:00
Andrey Lihatskiy 60f2bffa7c SL-16299 Added the correct @rpath for libvlc 2021-11-07 03:44:08 +02:00
Nat Goodspeed c7af4921db SL-16094: Use ThreadPool for LLWindowWin32Thread.
Move the whole LLWindowWin32Thread class inside LLWindowWin32, and make it a
struct. Migrate the struct declaration to llwindowwin32.cpp.

Derive it from ThreadPool, which provides the WorkQueue. Use runPending()
instead of manually popping and running individual queue items.

Make its post() operation always PostMessage(bogus) whenever we put an entry
in the WorkQueue, so we won't remain blocked in GetMessage().

Instead of storing a back pointer to the LLWindowWin32 instance, store the
relevant HWND and HDC in LLWindowWin32Thread itself to avoid cross-thread
timing problems.

Extract both instances of a large duplicated block of LLWindowWin32 code to a
new recreateWindow() method, and call it in those places. Per the TODO, use a
std::future to pass the new HWND and HDC back to LLWindowWin32 -- but also
store them locally on the LLWindowWin32Thread instance.
2021-11-05 17:20:11 -04: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
Mnikolenko Productengine b6afa7f7dd SL-16288 FIXED Dragging a file across the viewer cancels the drag and freezes the File Explorer 2021-11-05 17:48:40 +02:00
Euclid Linden 7cdaebaefe Merged in euclid-14098 (pull request #762)
SL-14098, enable occlusion culling during reflection pass

Approved-by: Michael Pohoreski
2021-11-05 15:35:20 +00:00
Dave Houlton 747ccda0b4 SL-14098 re-enable occlusion culling during reflection pass 2021-11-04 16:21:17 -06:00
Dave Houlton 5e9351a41a SL-13565 occlusion/reflection tracy markup 2021-11-04 16:19:18 -06:00
Brad Kittenbrink 0a7a367088 SL-16299 fix warning about CFBundleIdentifier not matching PRODUCT_BUNDLE_IDENTIFIER 2021-11-04 14:35:12 -07:00
Nat Goodspeed 834e7ca088 SL-16202: Use large WorkQueue size limits for mainloop and General.
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-04 17:18:57 -04:00
Nat Goodspeed d848d9e888 SL-16202: Streamline WorkQueues in LLImageGLThread.
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-04 16:50:31 -04:00
Nat Goodspeed 89f2169e9d SL-16202: Add postIfOpen() methods to WorkQueue, LLThreadSafeQueue.
postIfOpen() provides a no-exception alternative to post(), which blocks if
full but throws if closed. postIfOpen() likewise blocks if full, but returns
true if able to post and false if the queue was closed.
2021-11-04 16:43:11 -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
Nat Goodspeed 7a5b921995 SL-16202: Merge branch 'sl-16220' into glthread 2021-11-04 15:40:30 -04:00
Andrey Lihatskiy a37a36c408 SL-16299 Updated dullahan to CT build 565428; entitlements cleanup 2021-11-04 01:10:46 +02:00
Andrey Lihatskiy e70415f1d7 SL-16299 Added entitlements for the app bundle signing 2021-11-03 20:01:57 +02:00
Andrey Lihatskiy 6921edcc39 SL-16293 Updated vlc to CT build 565299 2021-11-01 21:23:12 +02:00
Mnikolenko Productengine 3faba7515c SL-16237 FIXED Viewer hangs on login 2021-11-01 19:38:55 +02:00
Michael Pohoreski 2369af6999 Merged in SL-16127_More_tweaks (pull request #752)
SL-16127 More tweaks

Approved-by: Euclid Linden
Approved-by: Dave Parks
2021-11-01 16:30:01 +00:00
Ptolemy 1be8a8d10b Fix merge conflict 2021-10-29 15:11:42 -07:00
Dave Parks 68b75be652 SL-9436 Don't render 100% transparent objects. 2021-10-28 22:09:22 +00:00
Andrey Kleshchev 404e69e594 SL-15462 Convert waitForChannel() into state machine 2021-10-28 21:25:38 +03:00