summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-09-18Merge pull request #2573 from secondlife/lua-profile-cmpnat-goodspeed
Add script to compare a Frame Profile JSON stats file vs. a baseline file.
2024-09-16Add LLFloaterAbout info (esp. GPU info) to Frame Profile stats dumpNat Goodspeed
With the About info added, `getProfileStatsContext()` need not redundantly add `"channel"`, `"version"` or `"region"`. Slightly improve the efficiency of `LlsdToJson()` and `LlsdFromJson()` by preallocating the known size of the source array or map. (Unfortunately the C++ `LLSD` class offers us no way to preallocate a map.) In `LLAppViewer::getViewerInfo()`, avoid immediate successive calls to `gAgent.getRegion()`.
2024-09-16Merge branch 'release/luau-scripting' into lua-profile-cmpNat Goodspeed
2024-09-16Merge pull request #2574 from secondlife/lua-consolesnat-goodspeed
Restore LUA debug consoles in viewer menu and tie visibility to feature flag (from #2571)
2024-09-13Remove autorun 'menus.lua' since menu_viewer.xml handles visibilityNat Goodspeed
2024-09-13Zap stray trailing space.Nat Goodspeed
2024-09-13Merge pull request #2571 from Ansariel/lua-consolesnat-goodspeed
Restore LUA debug consoles in viewer menu and tie visibility to feature flag
2024-09-13Merge branch 'release/luau-scripting' into lua-profile-cmpNat Goodspeed
2024-09-13Add script to compare a Frame Profile JSON stats file vs. baseline.Nat Goodspeed
Extract `latest_file()` logic replicated in profile_pretty.py and profile_csv.py out to logsdir.py, and use for new profile_cmp.py.
2024-09-13Add context info to Develop->Render Tests->Frame Profile stats file.Nat Goodspeed
Specifically, add the viewer version, the machine ID, the grid, the region name and ID, the parcel name and ID and the timestamp. This is both richer and less fragile than trying to extract that information from the generated filename: e.g. we now have region and parcel names. Instead of making `LLGLSLShader::finishProfile()` mess with file I/O, pass it a reference to a `boost::json::value` to be filled in with statistics, if it's a `boost::json::object`. Otherwise it's `boost::json::null`, meaning no report. Make llviewerdisplay.cpp's `display()` function instantiate a `boost::json::value` to pass to `finishProfile()`. That lets llviewerdisplay.cpp also set the `"context"` entry, with a new `getProfileStatsContext()` function quite similar to `getProfileStatsFilename()`.
2024-09-13Restore LUA debug consoles in viewer menu and tie visibility to feature flagAnsariel
2024-09-13Merge PR#2515 Fix remaining occurrences of fake BOOL by AnsarielAndrey Kleshchev
2024-09-13Merge pull request #2548 from secondlife/lua-frame-profilenat-goodspeed
Make Develop->Render Tests->Frame Profile dump JSON to a file too (#2412)
2024-09-12Merge branch 'develop' into release/luau-scriptingNat Goodspeed
2024-09-12Convenience tweak for passing a Mac "Second Life Mumble.app" bundleNat Goodspeed
2024-09-12#2166 Avatar does not move its lips when the corresponding checkbox is checkedAlexander Gavriliuk
2024-09-12Add frame_profile.lua to TP to known spot and take frame profile.Nat Goodspeed
frame_profile.lua teleports home when done. Further add frame_profile bash script to run the specified viewer, automatically log into said known spot, take frame profile and quit. The frame_profile bash script runs frame_profile_quit.lua. frame_profile_quit.lua is derived from frame_profile.lua, but different: it doesn't teleport either way because it assumes autologin to the target location, and because it logs out instead of returning home.
2024-09-12Mediate "LLAppViewer" "userQuit" et al. via "mainloop" WorkQueue.Nat Goodspeed
Empirically, this works better than engaging the respective LLAppViewer methods directly.
2024-09-12Let test_animation.lua cope with the case of 0 animations.Nat Goodspeed
2024-09-12Add script to convert frame profile JSON file to CSV.Nat Goodspeed
Also slightly refactor profile_pretty.py.
2024-09-12Merge pull request #2543 from secondlife/roxie/webrtc-285Roxanne Skelly
mute icons were not showing during group call when user was muted
2024-09-12Add a JSON frame profile stats file pretty-printer script.Nat Goodspeed
2024-09-12Support "LLTeleportHandler" "teleport" regionname="home".Nat Goodspeed
2024-09-12Replace glh_linear usage with GLM (#2554)Rye Mutt
2024-09-12Fix warning spam from missing call to unmapBuffer introduced in #2544 (#2556)Rye Mutt
2024-09-12Don't allow LLAttachmentsMgr to iterate COF items when there is no ↵Maxim Nikolenko
questionable links there
2024-09-12Recursively package all of indra/newview/scripts/lua.Nat Goodspeed
Instead of trying to continue mirroring the lua subdirectory structure in viewer_manifest.py, and enumerating the relevant file extensions, just pack up the whole subtree.
2024-09-12Add LLAgent.teleport() Lua functionNat Goodspeed
that wraps existing "LLTeleportHandler" LEAP listener.
2024-09-12Disable happy-path destructor semantics when unwinding C++ stack.Nat Goodspeed
If the C++ runtime is already handling an exception, don't try to launch more Lua operations.
2024-09-12Populate the viewer package's lua/auto subdir as well as require.Nat Goodspeed
2024-09-12#2542 Buoyant NametagsAlexander Gavriliuk
2024-09-12Work around broken MS `std::basic_ostream`.Nat Goodspeed
MSVC's `std::basic_ostream<CHAR>` template is not implemented in a general way: it can only be instantiated for certain specific `CHAR` types. Declaring a `std::basic_ostringstream<llwchar>` fails on MSVC with C2941. Fortunately both llstring.cpp functions that build a `LLWString` incrementally have the same characteristics: (a) they each build it one character at a time, and (b) the length of the result `LLWString` won't exceed the known length of the input string. So it works to declare a `std::vector<llwchar>`, `reserve()` the input length and `push_back()` individual characters. Then we can use `LLWString`'s range constructor to immediately allocate the right size.
2024-09-12Specialize `std::numpunct<llwchar>` to fix broken MS `basic_ostream`.Nat Goodspeed
MSVC's `std::basic_ostream<CHAR>` template is not implemented in a general way: it can only be instantiated for certain specific `CHAR` types. Declaring a `std::basic_ostringstream<llwchar>` fails on MSVC with C2941. The ugly workaround from Stack Overflow is to clone-and-edit Microsoft's `std::numpunct` template, locally specializing it for the desired `CHAR` type.
2024-09-12Give `LLGLSLShader::finishProfile()` a static default string param.Nat Goodspeed
`finishProfile()` is called at least once within a `__try` block. If we default its `report_name` parameter to a temporary `std::string`, that temporary must be destroyed when the stack is unwound, which `__try` forbids.
2024-09-11Merge pull request #2551 from secondlife/roxie/webrtc-1436Roxanne Skelly
Fix issue with improper reporting as to whether voice is working.
2024-09-12Fix names in group chat sometimes showing as "Loading..." and never resolve ↵Ansariel Hiller
(#2547)
2024-09-12Fix incorrect operator warning and possible dereferencing of null pointer ↵Ansariel Hiller
(#2546)
2024-09-11Fix issue with improper reporting as to whether voice is working.Roxie Linden
This fixes #1436, an issue where the 'call button' sometimes got greyed out when it shouldn't have been. Vivox is now 'working' (and the call button can be enabled) when it's logged in. WebRTC is 'working' (and the call button can be enabled) when the coroutine is active.
2024-09-11Make Develop->Render Tests->Frame Profile dump JSON to a file too.Nat Goodspeed
Make `LLGLSLShader::finishProfile()` accept a string pathname instead of a bool and, in addition to logging statistics to the viewer log, output statistics to that file as JSON. The calls that used to pass `emit_report=false` now pass `report_name=std::string()`. Make llviewerdisplay.cpp's `display()` function synthesize a profile filename in the viewer's logs directory, and pass that filename to `LLGLSLShader::finishProfile()`.
2024-09-10Merge pull request #2544 from secondlife/davep-profile-session-9/10cosmic-linden
Profile guided optimizations
2024-09-10Profile guided optimizationsRunitaiLinden
2024-09-10Merge remote-tracking branch 'origin/release/2024.08-DeltaFPS' into developBrad Linden
2024-09-10mute icons were not showing during group call when user was mutedRoxie Linden
This fixes: https://github.com/secondlife/viewer-private/issues/285 When processing messages from the voice server, the volume and not the mute status was being checked with respect to retrieving the mute status.
2024-09-10In llstring.cpp, build result strings using basic_ostringstream<T>.Nat Goodspeed
Many of the string conversion functions in llstring.cpp would build their result strings using successive concatenation operations, piece by piece. This can be expensive in allocations. Instead, use a std::basic_ostringstream of char type appropriate to the return string type to aggregate piecewise string building.
2024-09-10Fix risky signature of `wchar_to_utf8chars()`. Add `ll_convert()` alias.Nat Goodspeed
`wchar_to_utf8chars()` used to require a `char*` output buffer with no length, assuming that its caller knew enough to provide a buffer of sufficient length. In fact a `char[8]` buffer suffices, but nothing in the header indicated that. Eliminate the output parameter and return `std::string`. Fix the few existing callers. Also set an `ll_convert_alias` so that `ll_convert_to<std::string>(llwchar)` directly calls `wchar_to_utf8chars()`. Replace instances of the workaround `wstring_to_utf8str(LLWString(1, llwchar))`.
2024-09-10#2460 Max-Non-Impostors uses a bad shape (code formatting)Alexander Gavriliuk
2024-09-10#2460 Max-Non-Impostors uses a bad shapeAlexander Gavriliuk
2024-09-10#2434 Intel HD4000 compatibility pass (#2541)Dave Parks
* #2434 Intel HD4000 compatibility pass * Fixes crash on old drivers when loading shaders * Fixes 30 second hang on startup * Fixes occasional dev build crash in LLWearableList --------- Co-authored-by: Brad Linden <brad@lindenlab.com>
2024-09-10llinstancetracker.h was missing an #include from last merge.Nat Goodspeed
2024-09-10Pass std::string_view by value, not by const reference.Nat Goodspeed
Consensus seems to be that (a) string_view is, in effect, already a reference, (b) it's small enough to make pass-by-value reasonable and (c) the optimizer can reason about values way better than it can about references.