summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2024-09-23Merge remote branch 'lua-script-args' into lua-script-argsNat Goodspeed
2024-09-23Use Lua command-line args to make frame_profile_quit.lua generic.Nat Goodspeed
Now the location to which to teleport and the camera focus point can both be specified by the caller, in this case the frame_profile bash script.
2024-09-20Fix trailing spaces.Nat Goodspeed
2024-09-20Update test for changed message in error case.Nat Goodspeed
2024-09-20Merge branch 'release/luau-scripting' into lua-script-argsNat Goodspeed
2024-09-20Add ability to pass command-line arguments to a Lua script.Nat Goodspeed
Introduce `ScriptCommand` class that parses a command line into a script name and optional args, using bash-like quoting and escaping. `ScriptCommand` searches for a file with that script name on a passed list of directories; the directories may be specified relative to a particular base directory. `ScriptCommand` supports the special case of a script name containing unescaped spaces. It guarantees that either the returned script file exists, or its `error()` string is non-empty. Replace `LLLeap::create()` logic, from which `ScriptCommand` was partly derived, with a `ScriptCommand` instance. Make `LLLUAmanager::runScriptFile()` use a `ScriptCommand` instance to parse the passed command line. Subsume `LLAppViewer::init()` script-path-searching logic for `--luafile` into `ScriptCommand`. In fact that lambda now simply calls `LLLUAmanager::runScriptFile()`. Make `lluau::dostring()` accept an optional vector of script argument strings. Following PUC-Rio Lua convention, pass these arguments into a Lua script as the predefined global `arg`, and also as the script's `...` argument. `LuaState::expr()` also accepts and passes through script argument strings. Change the log tag for the Lua script interruption message: if we want it, we can still enable it, but we don't necessarily want it along with all other "Lua" DEBUG messages. Remove `LuaState::script_finished_fn`, which isn't used any more. Also remove the corresponding `LLLUAmanager::script_finished_fn`. This allows us to simplify `~LuaState()` slightly, as well as the parameter signatures for `LLLUAmanager::runScriptFile()` and `runScriptLine()`.
2024-09-19Make login.lua enhance plain grid='agni' to required form.Nat Goodspeed
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-16WIP: edits in support of Lua script argsNat Goodspeed
2024-09-16Merge branch 'release/luau-scripting' into lua-profile-cmpNat Goodspeed
2024-09-13Remove autorun 'menus.lua' since menu_viewer.xml handles visibilityNat Goodspeed
2024-09-13Merge branch 'release/luau-scripting' into lua-profile-cmpNat Goodspeed
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-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-12Merge pull request #2543 from secondlife/roxie/webrtc-285Roxanne Skelly
mute icons were not showing during group call when user was muted
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.