summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowwin32.cpp
AgeCommit message (Collapse)Author
2022-11-17SL-18154 Profile guided optimizations -- remove some unneeded operations and ↵Dave Parks
make LLDrawPoolMaterials less branchy.
2022-10-26Merged in SL-17005_cosmic_win8 (pull request #1106)Sabrina Shanman
SL-17005: Clean up debug code
2022-10-21Merge branch 'master' (DRTVWR-548) into DRTVWR-559Andrey Kleshchev
# Conflicts: # indra/llrender/llgl.cpp # indra/llrender/llrendertarget.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/app_settings/shaders/class1/deferred/materialF.glsl # indra/newview/llfloaterpreference.cpp # indra/newview/llviewercontrol.cpp # indra/newview/llviewermenu.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/llvovolume.cpp
2022-10-13SL-18190 Potential fix for sapping CPU when "sleeping"Dave Parks
2022-10-06SL-18190 Water shader WIP. Better parallax correction for sphere probes. ↵Dave Parks
Reduce probe memory footprint. Remove framebuffer copies and move to deprecate stencil buffer usage.
2022-08-30Merge remote-tracking branch 'remotes/origin/DRTVWR-563' into DRTVWR-559Dave Parks
2022-08-26Merge branch 'DRTVWR-563' of bitbucket.org:lindenlab/viewer into DRTVWR-563Dave Parks
2022-08-26SL-17997 Follow up from beta breakers results.Dave Parks
2022-08-18SL-17005: Clean up debug codeCosmic Linden
2022-08-11SL-17005: (WIP) (Debug) Add logging and debug settings to assist in ↵Cosmic Linden
understanding Windows 8 failure modes. Most of this should be removed later
2022-08-09SL-17005: (WIP) (DEBUG) Add logging for graphics adaptersCosmic Linden
2022-08-09SL-17005: Fix crash in initDX when no factoryCosmic Linden
2022-06-29Merge branch 'master' (DRTVWR-543) into DRTVWR-559Andrey Kleshchev
# Conflicts: # autobuild.xml # indra/llrender/llgl.cpp # indra/newview/CMakeLists.txt # indra/newview/llvovolume.cpp
2022-06-29Merge branch 'master' into DRTVWR-548-maint-NAndrey Lihatskiy
# Conflicts: # doc/contributions.txt # indra/newview/llviewercontrol.cpp
2022-06-08SL-17005 Tweak target VRAM usage and add some log spam to help zero in on ↵Dave Parks
good targets.
2022-06-03SL-17515 FIXED Extreme Mouse Sensitivity for Certain ActionsMnikolenko Productengine
2022-05-30SL-17474 Device context not properly released at shutdownAndrey Kleshchev
2022-05-20SL-17287 Instrument and optimize cubemap render. Fix for cubemap snapshots ↵Dave Parks
doing a full resolution render instead of a 512x512 render.
2022-05-20SL-17287 Update Tracy to 0.8.1. Clean up GPU instrumentation.Dave Parks
2022-05-18SL-17219: Merge 'DRTVWR-546' of lindenlab/viewer into SL-17219Nat Goodspeed
Update task branch from main project branch.
2022-04-29SL-17124 make sure window thread wakes up to proces 'quit' messageAndrey Kleshchev
2022-04-29SL-17124 switchContext and loadShaderFile crashesAndrey Kleshchev
- Do not try initializing shaders if requirements are not met or if window does not exist - Warn user before closing window. Situation is unexpected, there is chance of more issues, like a freeze or a crash on close() - mHasMultitexture is a solid requirement, if it is not present, we won't be able to run
2022-04-18Merge branch master (D540) into DRTVWR-546Andrey Kleshchev
# Conflicts: # indra/llcommon/llsdutil.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/lldrawpoolalpha.cpp # indra/newview/lldrawpoolwater.cpp
2022-03-29Merge remote-tracking branch 'remotes/origin/DRTVWR-546' into SL-17005Dave Parks
2022-03-29SL-17005 WIP - Use D3D/DXGI to query for available VRAM on WindowsDave Parks
2022-03-29SL-17074 fix ALT-F4 handling without impacting alt-zoomDave Houlton
2022-03-24SL-17074 Fix Alt-F4 handling bugDave Houlton
2022-03-01Merge branch 'master' (DRTVWR-557) into DRTVWR-546Andrey Kleshchev
# Conflicts: # autobuild.xml # doc/contributions.txt # indra/cmake/GLOD.cmake # indra/llcommon/tests/llprocess_test.cpp # indra/newview/VIEWER_VERSION.txt # indra/newview/lldrawpoolavatar.cpp # indra/newview/llfloatermodelpreview.cpp # indra/newview/llmodelpreview.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/llvovolume.cpp # indra/newview/viewer_manifest.py
2022-02-28Merge branch 'master' into DRTVWR-540-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llcommon/llsys.cpp # indra/newview/app_settings/key_bindings.xml # indra/newview/llfloatereditextdaycycle.cpp
2022-02-17SL-16815 Remove frame stalls from occlusion queries, bumpmap updates, and ↵Dave Parks
querying for available video memory.
2022-01-14SL-16606: Add profiler category WIN32Ptolemy
2021-12-17SL-16454 FIXED Performance viewer login screen is blackMnikolenko Productengine
2021-12-13SL-16467 FIXED "Keyboard layout" is not switchedMnikolenko Productengine
2021-12-09SL-16480 Followup -- fix for unintialized mRect/mClientRect and bad ↵Runitai Linden
getClientRectInScreenSpace
2021-12-09SL-16480 Fix for window not saving its position on exit.Runitai Linden
2021-11-30SL-16386 remove references to (const true) LLGLSLShader::sNoFixedFunctionDave Houlton
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-23SL-16400: Address a couple shutdown crashes.Nat Goodspeed
It can happen that we try to post() work for LLWindowWin32's window thread after the thread's WorkQueue has been closed. Also, instead of giving the "General" ThreadPool static lifespan, put it on the heap, anchored with a static unique_ptr.
2021-11-23SL-16400: Add ThreadPool::start() method, and call it.Nat Goodspeed
It's sometimes important to finish other initialization before launching the threads in the ThreadPool, so make that an explicit step. In particular, we were launching the LLImageGL texture thread before initializing the GL context, resulting in all gray textures.
2021-11-23Merge branch 'glthread' of ssh://bitbucket.org/lindenlab/viewer into glthreadxNat Goodspeed
2021-11-23SL-16094: Fix second startup hang.Nat Goodspeed
Add LLWindowWin32Thread::Post(), like post() except it uses PostMessage() to send the work item to the window thread. Support this in mainWindowProc(). Move LLWindowWin32::recreateWindow()'s destroy_window_handler() call onto the window thread. Delaying destruction of the old HWND ensures that we can use PostMessage() and GetMessage() with that HWND to pass the lambda work item. Moreover, it's likely to be less buggy to call DestroyWindow() on the same thread that created the window. Make recreateWindow()'s window thread lambda bind the window class parameters by value, rather than binding 'this' and back-referencing LLWindowWin32 members. Make recreateWindow() construct the window thread lambda and then decide whether to pass it to the window thread using post() or Post(), depending on whether we have a current HWND -- therefore whether the window thread is blocked on GetMessage(). That means we can eliminate the kickWindowThread() call. Make destroy_window_handler() accept HWND by value rather than by non-const reference. Since it doesn't attempt to modify the caller's value, this is a better match for the function's semantics anyway -- but importantly, it lets us pass a const HWND.
2021-11-22SL-16094 More profile hooks for threading code, remove redundant ↵Runitai Linden
wglCreateContextAttribs call
2021-11-20SL-16289 Rigged mesh rendering overhaulDave Parks
2021-11-15SL-16094: In LLWindowWin32::recreateWindow(), kick window threadNat Goodspeed
before blocking on the pending future. Otherwise the window thread can remain blocked in a GetMessage() call and deadlock the app.
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-10Merge branch 'DRTVWR-546' into glthreadNat Goodspeed
2021-11-10SL-16094: Statically link to Windows IMM32.LIB.Nat Goodspeed
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-09SL-16330 Clean up vertical sync handling, add to UIMnikolenko Productengine
2021-11-08SL-16094: Zap thread safety land mine; thin PostMessage() calls.Nat Goodspeed
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.