This project is mirrored from https://git.alchemyviewer.org/alchemy/alchemy-next.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
- Nov 16, 2021
-
-
Dave Houlton authored
-
Mnikolenko Productengine authored
-
- Nov 15, 2021
-
-
Nat Goodspeed authored
following promotion of DRTVWR-545
-
Dave Houlton authored
This reverts commit 5188a26a, reversing changes made to 81908856.
-
- Nov 12, 2021
-
-
Dave Houlton authored
-
Dave Houlton authored
-
Dave Houlton authored
-
Nat Goodspeed authored
-
Andrey Kleshchev authored
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.
-
Andrey Kleshchev authored
-
Andrey Kleshchev authored
Make avatar cloud delay longer proportionally to load time
-
Andrey Kleshchev authored
-
Andrey Kleshchev authored
-
Andrey Kleshchev authored
-
- Nov 11, 2021
-
-
Brad Payne (Vir Linden) authored
-
Nat Goodspeed authored
-
- Nov 10, 2021
-
-
Vir Linden authored
SL-16329 - track frame time and jitter (as average deviation frame to frame) in stats window Approved-by: Euclid Linden Approved-by: Michael Pohoreski
-
Vir Linden authored
-
Mnikolenko Productengine authored
-
Nat Goodspeed authored
-
Nat Goodspeed authored
-
Nat Goodspeed authored
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.
-
Nat Goodspeed authored
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().
-
Mnikolenko Productengine authored
-
- Nov 09, 2021
-
-
Vir Linden authored
-
Brad Payne (Vir Linden) authored
-
Mnikolenko Productengine authored
-
- Nov 08, 2021
-
-
Andrey Lihatskiy authored
by Callum
-
Nat Goodspeed authored
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.
-
- Nov 06, 2021
-
-
Andrey Lihatskiy authored
-
- Nov 05, 2021
-
-
Nat Goodspeed authored
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.
-
Nat Goodspeed authored
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.
-
Mnikolenko Productengine authored
-
Euclid Linden authored
SL-14098, enable occlusion culling during reflection pass Approved-by: Michael Pohoreski
-
- Nov 04, 2021
-
-
Dave Houlton authored
-
Dave Houlton authored
-
Brad Kittenbrink authored
-
Nat Goodspeed authored
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.
-
Nat Goodspeed authored
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().
-
Nat Goodspeed authored
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.
-