summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowwin32.cpp
AgeCommit message (Collapse)Author
2024-05-28Fix up llexception.h's cross-platform SEH wrapper.Nat Goodspeed
Introduce AlwaysReturn<void> specialization, which always discards any result of calling the specified callable with specified args. Derive new Windows_SEH_exception from LLException, not std::runtime_error. Put the various SEH functions in LL::seh nested namespace, e.g. LL::seh::catcher() as the primary API. Break out more levels of Windows SEH handler to work around the restrictions on functions containing __try/__except. The triadic catcher() overload now does little save declare a std::string stacktrace before forwarding the call to catcher_inner(), passing a reference to stacktrace along with the trycode, filter and handler functions. catcher_inner() accepts the stacktrace and the three function template arguments. It contains the __try/__except logic. It calls a new filter_() wrapper template, which calls fill_stacktrace() before forwarding the call to the caller's filter function. fill_stacktrace(), in the .cpp file, contains the logic to populate the stacktrace string -- unless the Structured Exception is stack overflow, in which case it puts an explanatory string instead. catcher_inner()'s __except clause passes not only the code, but also the stacktrace string, to the caller's handler function. It wraps the caller's handler function in always_return<rtype>(), where rtype is the type returned by the trycode function. This allows a handler to return a value, while also supporting the void handler case, e.g. one that throws a C++ exception. (This is why we need AlwaysReturn<void>: some trycode() functions are themselves void.) For the dyadic catcher() overload, introduce common_filter() containing the logic to distinguish a C++ exception from any other kind of Structured Exception. The fact that the stacktrace is captured before the filter function is called should permit capturing a stacktrace for a C++ exception as well as for most other Structured Exceptions. As before, the monadic catcher() overload supplies the rethrow() handler, in the .cpp file. Change existing calls from seh_catcher() to LL::seh::catcher().
2024-05-24Promote seh_catcher() et al. to llexception.{h,cpp} for general use.Nat Goodspeed
2024-05-01Merge branch 'marchcat/w-whitespace' into marchcat/x-ws-mergeAndrey Lihatskiy
2024-04-29#824 Process source files in bulk: replace tabs with spaces, convert CRLF to ↵Andrey Lihatskiy
LF, and trim trailing whitespaces as needed
2024-04-12Merge branch 'main' into marchcat/x-mergeAndrey Lihatskiy
# Conflicts: # indra/llimage/llimageworker.cpp # indra/llimage/llimageworker.h # indra/newview/llcontrolavatar.cpp # indra/newview/llfloaterprofiletexture.cpp # indra/newview/lloutfitslist.cpp # indra/newview/lloutfitslist.h # indra/newview/lltexturefetch.cpp
2024-03-15SL-18721 Restore release behaviorAndrey Kleshchev
Closing window correctly caused a significant amount of logout freezes with no known reproes. Temporarily returning to old behavior were thread was killes without closing window and will reenable in later maints to hopefully get a scenario or at least more data of what is causing the freeze.
2024-03-01SL-18721 Shutdown fixes #6Andrey Kleshchev
2024-02-08SL-18721 Shutdown fixes #4Andrey Kleshchev
2024-01-29SL-18721 Shutdown fixes #3Andrey Kleshchev
Fix dialog box being blank in task bar
2024-01-25Crash in switch contextAndrey Kleshchev
Looks like a crash at SetWindowLongPtr due to handle being zero
2024-01-22SL-18721 Shutdown fixesAndrey Kleshchev
1. After window closes viewer still takes some time to shut down, so added splash screen to not confuse users (and to see if something gets stuck) 2. Having two identical mWindowHandle caused confusion for me, so I split them. It looks like there might have been issues with thread being stuck because thread's handle wasn't cleaned up. 3. Made region clean mCacheMap immediately instead of spending time making copies on shutdown
2024-01-08Merge main (DRTVWR-596 GLTF Materials Maint) into DRTVWR-591-maint-XAndrey Kleshchev
# Conflicts: # indra/newview/VIEWER_VERSION.txt
2023-12-06SL-20664 Potential fix for crash on startup in switchContextRunitaiLinden
2023-11-30Merge branch 'DRTVWR-591-maint-X' into marchcat/591-x-pbr-mergeAndrey Lihatskiy
# Conflicts: # indra/llrender/llgl.cpp # indra/llrender/llvertexbuffer.cpp # indra/llui/llflatlistview.cpp # indra/newview/app_settings/settings.xml # indra/newview/lldrawpoolground.cpp # indra/newview/llinventorybridge.cpp # indra/newview/llinventorygallery.cpp # indra/newview/llspatialpartition.cpp # indra/newview/llviewercontrol.cpp # indra/newview/llviewertexture.cpp # indra/newview/llvosky.cpp # indra/newview/skins/default/xui/en/menu_inventory.xml
2023-10-23SL-13610 build fixMnikolenko Productengine
2023-10-23SL-13610 [MAC] Manufacturer based searchAndrey Kleshchev
2023-10-23SL-13610 [MAC] WIP enable initing devices by local idAndrey Kleshchev
2023-10-23SL-13610 [MAC] WIP List HID available devices in joystick selectionAndrey Kleshchev
Doesn't filter the list yet, just shows full list of usb devices Selecting visible devices doesn't work yet
2023-09-19SL-20177: Blind attempt at fixing crash in SetWindowLongPtr. Guess based on ↵Cosmic Linden
the fact that crashes started around the time VRAM accounting was added.
2023-05-10Merge pull request #208 from secondlife/SL-19690nat-goodspeed
SL-19690: Follow up on Rye Mutt's fix for shutdown crashes.
2023-05-08DRTVWR-559 Remove main window proc printf debugging.RunitaiLinden
2023-05-08SL-19690: Follow up on Rye Mutt's fix for shutdown crashes.Nat Goodspeed
Rather than continuing to propagate try/catch (Closed) (aka LLThreadSafeQueueInterrupt) constructs through the code base, make WorkQueueBase::post() return bool indicating success (i.e. ! isClosed()). This obviates postIfOpen(), which no one was using anyway. In effect, postIfOpen() is renamed post(), bypassing the exception when isClosed(). Review existing try/catch blocks of that sort, changing to test for post() returning false.
2023-05-03DRTVWR-559: Merge remote branch 'DRTVWR-559' into DRTVWR-559-zapfuncNat Goodspeed
Delete the debugLoggingEnabled() (changed to LL_DEBUGS()) stanzas deleted by the upstream.
2023-05-03DRTVWR-559: Replace debugLoggingEnabled() function with LL_DEBUGS().Nat Goodspeed
The trouble with debugLoggingEnabled() is that it locked mutexes and searched maps every time that call was reached. LL_DEBUGS() has the same functionality (albeit with idiosyncratic syntax) but performs expensive lookups only once per session, caching the result in a local static variable.
2023-05-02DRTVWR-559 Optimization pass, make it so profileAvatar can read back GPU ↵RunitaiLinden
timer without a frame stall.
2023-04-26Merge remote-tracking branch 'origin/DRTVWR-539' into DRTVWR-559-merge-539Brad Linden
2023-03-31Merge branch 'main' into DRTVWR-539Mnikolenko Productengine
# Conflicts: # indra/integration_tests/llui_libtest/CMakeLists.txt # indra/newview/llfloateravatarrendersettings.cpp
2023-03-29Merge remote-tracking branch 'origin/main' into DRTVWR-559Brad Linden
2023-03-10SL-19172 Texture streaming tune up. Incidental decruft.Dave Parks
2023-02-08DRTVWR-559 Remove some 32-bit color paranoia checks (potential fix for ↵Dave Parks
running under wine)
2023-01-19Optimizations, decruft, and intel compatibility pass (#53)RunitaiLinden
SL-18869, SL-18772 Overhaul VBO management, restore occlusion culling, intel compatibility pass, etc
2023-01-19SL-18999 IME disabling should be called in window's threadAndrey Kleshchev
For some reason positioning IME window works fine, but disabling and enabling ime works from window's thread only
2023-01-18SL-18985 Crash at std::basic_string::eraseAndrey Kleshchev
2023-01-12Merge branch 'main' into DRTVWR-573-maint-RAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/newview/llagent.cpp # indra/newview/llimview.cpp # indra/newview/llimview.h # indra/newview/llinventoryfunctions.cpp # indra/newview/llpanelmediasettingsgeneral.cpp # indra/newview/pipeline.cpp
2022-12-16SL-18719 GL 3.0/3.1 compatibility pass.Dave Parks
2022-12-13Merge branch 'main' into DRTVWR-539Mnikolenko Productengine
# Conflicts: # doc/contributions.txt # indra/newview/llappviewer.cpp # indra/newview/skins/default/colors.xml
2022-12-12Merge remote-tracking branch 'origin/main' into DRTVWR-559Brad Linden
2022-12-12DRTVWR-559 Fix for windows build.Dave Parks
2022-11-30SL-18154 WIP -- CPU sampling (AMD uProf) profile guided optimizations to ↵Dave Parks
reduce CPU usage of background threads.
2022-11-29SL-18682 WIP -- Add debug settings that aid in emulating low end hardware.Dave Parks
2022-11-25SL-18713 fix crash in handleCompositionMessage (#12)Maxim Nikolenko
2022-11-17SL-18154 Profile guided optimizations -- remove some unneeded operations and ↵Dave Parks
make LLDrawPoolMaterials less branchy.
2022-11-02SL-18136 fix for Japanese IMEMnikolenko Productengine
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-21Merge branch 'master' into DRTVWR-539Mnikolenko Productengine
# Conflicts: # indra/newview/llfloaterpreference.cpp # indra/newview/llviewercontrol.cpp
2022-10-20Merge branch 'master' into DRTVWR-565-maint-PAndrey Lihatskiy
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