From b33d4053eca36480098f764c7b7ad8f3516641ea Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Date: Tue, 18 Aug 2026 00:30:13 +0300
Subject: #1841 Fix viewer attempting to parse joystick key string into an llsd
Key already is an LLSD::String and needs no further parsing.
This parsing was added for command line handling and should be done
explicitly in command line's parser. Also extended event listeners,
there should be no ambiguity in what kind of data we are passing.
---
indra/newview/llcommandlineparser.cpp | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'indra/newview/llcommandlineparser.cpp')
diff --git a/indra/newview/llcommandlineparser.cpp b/indra/newview/llcommandlineparser.cpp
index 0734b12531..84d3ff90d5 100644
--- a/indra/newview/llcommandlineparser.cpp
+++ b/indra/newview/llcommandlineparser.cpp
@@ -611,6 +611,11 @@ void setControlValueCB(const LLCommandLineParser::token_vector_t& value,
ctrl->setValue(llsdArray, false);
}
+ else if (ctrl->isType(TYPE_LLSD))
+ {
+ // Command-line LLSD should support a notation format string
+ ctrl->setValueFromNotation(onevalue(option, value), false);
+ }
else
{
ctrl->setValue(onevalue(option, value), false);
--
cgit v1.3
From 60b7e3b78cc401318e4f895bb64b5688645b3462 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Date: Tue, 25 Aug 2026 20:18:58 +0300
Subject: #6153 Make hardware test more robust
---
indra/llcommon/llprocess.cpp | 5 ++
indra/llcommon/llprocess.h | 4 ++
indra/newview/app_settings/cmd_line.xml | 6 ++
indra/newview/llappviewer.cpp | 43 +++++++++---
indra/newview/llappviewerwin32.cpp | 18 ++++-
indra/newview/llcommandlineparser.cpp | 2 +-
indra/newview/llfeaturemanager.cpp | 114 +++++++++++++++++++++++++++++++-
7 files changed, 178 insertions(+), 14 deletions(-)
(limited to 'indra/newview/llcommandlineparser.cpp')
diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp
index e43f386af2..86e1f48377 100644
--- a/indra/llcommon/llprocess.cpp
+++ b/indra/llcommon/llprocess.cpp
@@ -1109,6 +1109,11 @@ bool LLProcess::kill(const LLProcessPtr& ptr, const std::string& who)
return !ptr || ptr->kill(who);
}
+void LLProcess::pump()
+{
+ tick();
+}
+
LLProcess::id LLProcess::getProcessID() const
{
if (!mChild)
diff --git a/indra/llcommon/llprocess.h b/indra/llcommon/llprocess.h
index 26f9a27837..a016b6a258 100644
--- a/indra/llcommon/llprocess.h
+++ b/indra/llcommon/llprocess.h
@@ -234,6 +234,10 @@ public:
bool kill(const std::string& who = "");
static bool kill(const LLProcessPtr& p, const std::string& who = "");
+ /// Manually drive pending I/O and check process state.
+ /// Use this when the mainloop is not yet running or was terminated.
+ void pump();
+
#if LL_WINDOWS
typedef int id;
typedef HANDLE handle;
diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml
index e16a5c7e76..bf7f9bab1f 100644
--- a/indra/newview/app_settings/cmd_line.xml
+++ b/indra/newview/app_settings/cmd_line.xml
@@ -90,6 +90,12 @@
ConnectAsGod
+ gpubenchmark
+
+
graphicslevel