From afca69a93e7a7f53e22952180267a043d2f02877 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 06:50:22 +0100 Subject: [PATCH 01/29] BOOL to bool --- indra/llwindow/llwindowmacosx.cpp | 2 +- indra/llwindow/llwindowmacosx.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 94e7de333f..98ec86305b 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -1656,7 +1656,7 @@ ECursorType LLWindowMacOSX::getCursor() const // Legacy cursor setting from main program //void LLWindowMacOSX::initCursors() -void LLWindowMacOSX::initCursors(BOOL useLegacyCursors) +void LLWindowMacOSX::initCursors(bool useLegacyCursors) { initPixmapCursor(UI_CURSOR_NO, 8, 8); initPixmapCursor(UI_CURSOR_WORKING, 1, 1); diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index f66b66db1b..e3589603bc 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -159,7 +159,7 @@ protected: ~LLWindowMacOSX(); //void initCursors(); - void initCursors(BOOL useLegacyCursors); // Legacy cursor setting from main program + void initCursors(bool useLegacyCursors); // Legacy cursor setting from main program bool isValid() override; void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size); From b2e4ccbf26efe37baa324c767aea1e43e09d8752 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 07:03:12 +0100 Subject: [PATCH 02/29] Updated handling of unsupported primitive modes Added a warning message and return false if prim->mMode is not of expected types. --- indra/newview/gltf/primitive.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/indra/newview/gltf/primitive.cpp b/indra/newview/gltf/primitive.cpp index e1579374d4..549c558ff6 100644 --- a/indra/newview/gltf/primitive.cpp +++ b/indra/newview/gltf/primitive.cpp @@ -134,6 +134,13 @@ struct MikktMesh idx[1] = tri_idx + 1; idx[2] = tri_idx + 2; } + // unknown mode leaves idx uninitialised + else + { + LL_WARNS("GLTF") << "Unsupported primitive mode for conversion to triangles: " << (S32) prim->mMode << LL_ENDL; + return false; + } + // if (indexed) { From ec4ad10e1afda4ba1c7bf5f1605e7e78626a1d6d Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 09:51:55 +0100 Subject: [PATCH 03/29] Use the default compiler version on Linux --- .github/workflows/build_viewer.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml index 48cbc704de..e16b3e970e 100644 --- a/.github/workflows/build_viewer.yml +++ b/.github/workflows/build_viewer.yml @@ -93,11 +93,11 @@ jobs: with: swap-storage: false - - name: Set gcc version on Linux - if: runner.os == 'Linux' - run: | - echo "CC=gcc-10" >> $GITHUB_ENV - echo "CXX=g++-10" >> $GITHUB_ENV + # - name: Set gcc version on Linux + # if: runner.os == 'Linux' + # run: | + # echo "CC=gcc-10" >> $GITHUB_ENV + # echo "CXX=g++-10" >> $GITHUB_ENV - name: Setup rclone and download the folder From 6f72927d0936bcefc44833d5bc6d7c44517e0603 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 10:48:01 +0100 Subject: [PATCH 04/29] Try a nasty hack to keep Mac happy --- indra/newview/pipeline.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 83f564c6e3..13b8ba19b2 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -103,7 +103,13 @@ #include "llmutelist.h" #include "lltoolpie.h" #include "llnotifications.h" +// hacky BOOL workaround +#ifndef BOOL +#define BOOL bool +#endif +// #include "llpathinglib.h" +#undef BOOL // hacky BOOL workaround #include "llfloaterpathfindingconsole.h" #include "llfloaterpathfindingcharacters.h" #include "llfloatertools.h" From 2a078c7ba4fe8ec45eb0232dd6d6334666a2bbaa Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 11:32:27 +0100 Subject: [PATCH 05/29] Missing override for pedantic Clang --- indra/newview/llfloaterbump.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llfloaterbump.h b/indra/newview/llfloaterbump.h index 7f618aa324..fff4d95280 100644 --- a/indra/newview/llfloaterbump.h +++ b/indra/newview/llfloaterbump.h @@ -49,7 +49,7 @@ public: void onOpen(const LLSD& key) override; // Instant bump list floater update - /*virtual*/ void draw(); + /*virtual*/ void draw() override; void setDirty() { mDirty = true; } static LLFloaterBump* getInstance(); From 5a50d6e5d69a73212152ecea36da83458e4757eb Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 15:57:34 +0100 Subject: [PATCH 06/29] More temporary BOOL hackery until we get a new lib --- indra/newview/llfloaterpathfindingcharacters.cpp | 6 ++++++ indra/newview/llfloaterpathfindingconsole.h | 6 ++++++ indra/newview/llpathfindingmanager.cpp | 6 ++++++ indra/newview/llpathfindingnavmeshzone.cpp | 6 ++++++ indra/newview/llpathfindingpathtool.h | 7 ++++++- 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloaterpathfindingcharacters.cpp b/indra/newview/llfloaterpathfindingcharacters.cpp index 0df0e3c9ec..f4829f0352 100644 --- a/indra/newview/llfloaterpathfindingcharacters.cpp +++ b/indra/newview/llfloaterpathfindingcharacters.cpp @@ -36,12 +36,18 @@ #include "llfloaterreg.h" #include "llfloaterpathfindingobjects.h" #include "llhandle.h" +// hacky BOOL workaround +#ifndef BOOL +#define BOOL bool +#endif +// #include "llpathfindingcharacter.h" #include "llpathfindingcharacterlist.h" #include "llpathfindingmanager.h" #include "llpathfindingobject.h" #include "llpathfindingobjectlist.h" #include "llpathinglib.h" +#undef BOOL // hacky BOOL workaround #include "llquaternion.h" #include "llsd.h" #include "lluicolortable.h" diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h index bcbc94e10e..fe0a9290ca 100644 --- a/indra/newview/llfloaterpathfindingconsole.h +++ b/indra/newview/llfloaterpathfindingconsole.h @@ -33,9 +33,15 @@ #include "llfloater.h" #include "llhandle.h" +// hacky BOOL workaround +#ifndef BOOL +#define BOOL bool +#endif +// #include "llpathfindingnavmeshzone.h" #include "llpathfindingpathtool.h" #include "llpathinglib.h" +#undef BOOL // hacky BOOL workaround #include "v4color.h" class LLButton; diff --git a/indra/newview/llpathfindingmanager.cpp b/indra/newview/llpathfindingmanager.cpp index 5e7bc4fb3b..1eb0072eb6 100644 --- a/indra/newview/llpathfindingmanager.cpp +++ b/indra/newview/llpathfindingmanager.cpp @@ -41,6 +41,11 @@ #include "llagent.h" #include "llhttpnode.h" #include "llnotificationsutil.h" +// hacky BOOL workaround +#ifndef BOOL +#define BOOL bool +#endif +// #include "llpathfindingcharacterlist.h" #include "llpathfindinglinkset.h" #include "llpathfindinglinksetlist.h" @@ -48,6 +53,7 @@ #include "llpathfindingnavmeshstatus.h" #include "llpathfindingobject.h" #include "llpathinglib.h" +#undef BOOL // hacky BOOL workaround #include "llsingleton.h" #include "llsd.h" #include "lltrans.h" diff --git a/indra/newview/llpathfindingnavmeshzone.cpp b/indra/newview/llpathfindingnavmeshzone.cpp index 012cc11eee..8f6da9d545 100644 --- a/indra/newview/llpathfindingnavmeshzone.cpp +++ b/indra/newview/llpathfindingnavmeshzone.cpp @@ -38,10 +38,16 @@ #include #include "llagent.h" +// hacky BOOL workaround +#ifndef BOOL +#define BOOL bool +#endif +// #include "llpathfindingmanager.h" #include "llpathfindingnavmesh.h" #include "llpathfindingnavmeshstatus.h" #include "llpathinglib.h" +#undef BOOL // hacky BOOL workaround #include "llsd.h" #include "lluuid.h" #include "llviewercontrol.h" diff --git a/indra/newview/llpathfindingpathtool.h b/indra/newview/llpathfindingpathtool.h index 248af63cf0..943784909f 100644 --- a/indra/newview/llpathfindingpathtool.h +++ b/indra/newview/llpathfindingpathtool.h @@ -29,8 +29,13 @@ #include #include - +// hacky BOOL workaround +#ifndef BOOL +#define BOOL bool +#endif +// #include "llpathinglib.h" +#undef BOOL // hacky BOOL workaround #include "llsingleton.h" #include "lltool.h" From 7d65940610d5884486abbe12fa21e0ddb1cd0c55 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 19 Jul 2024 17:28:30 +0100 Subject: [PATCH 07/29] Mac build was failing due to undefined "executable" Take the executable declaration code from upstream --- indra/newview/viewer_manifest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 6ad6235c21..206098044f 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1535,6 +1535,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path(libfile) oldpath = os.path.join("@rpath", libfile) + executable = self.dst_path_of(self.channel()) self.run_command( ['install_name_tool', '-change', oldpath, '@executable_path/../Resources/%s' % libfile, From 92cf520253b7ca663f9bd0acc5b83b235dd6207e Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 24 Jul 2024 13:41:28 +0100 Subject: [PATCH 08/29] Try to fix the packaging of webrtc on Mac --- indra/newview/viewer_manifest.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 206098044f..43883c8cb2 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1535,11 +1535,9 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path(libfile) oldpath = os.path.join("@rpath", libfile) - executable = self.dst_path_of(self.channel()) self.run_command( ['install_name_tool', '-change', oldpath, - '@executable_path/../Resources/%s' % libfile, - executable]) + '@executable_path/../Resources/%s' % libfile]) # dylibs is a list of all the .dylib files we expect to need # in our bundled sub-apps. For each of these we'll create a From a2694e8511ce00b87b4f12daacf78d00e96ee369 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 24 Jul 2024 15:23:06 +0100 Subject: [PATCH 09/29] Try this instead --- indra/newview/viewer_manifest.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 43883c8cb2..11d8aee586 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1535,9 +1535,11 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path(libfile) oldpath = os.path.join("@rpath", libfile) + executable = self.dst_path_of("Firestorm.app") self.run_command( - ['install_name_tool', '-change', oldpath, - '@executable_path/../Resources/%s' % libfile]) + ['install_name_tool', '-change', + oldpath, + '@executable_path/../Resources/%s' % libfile, executable]) # dylibs is a list of all the .dylib files we expect to need # in our bundled sub-apps. For each of these we'll create a From baee0a8e0772d6c7536b3416f02ba63cc90b36e2 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 24 Jul 2024 17:46:26 +0100 Subject: [PATCH 10/29] Running out of ideas --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 11d8aee586..edf692e9cb 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1535,7 +1535,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path(libfile) oldpath = os.path.join("@rpath", libfile) - executable = self.dst_path_of("Firestorm.app") + executable = self.dst_path_of(libfile) self.run_command( ['install_name_tool', '-change', oldpath, From eeba1c7f66c5884ad821f72b52535906907c7ab9 Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 25 Jul 2024 21:19:51 +0100 Subject: [PATCH 11/29] Add missing subdir, suggested by Melodey --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index edf692e9cb..10c473045a 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1539,7 +1539,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.run_command( ['install_name_tool', '-change', oldpath, - '@executable_path/../Resources/%s' % libfile, executable]) + '@executable_path/../Contents/Resources/%s' % libfile, executable]) # dylibs is a list of all the .dylib files we expect to need # in our bundled sub-apps. For each of these we'll create a From cf3314340b515d79afc1dfa1733031acd6da0573 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 26 Jul 2024 15:16:07 +0200 Subject: [PATCH 12/29] Fix broken texture panel when not using new layout --- indra/newview/llpanelface.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 5f2718e54a..0d41439e41 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -603,8 +603,6 @@ LLPanelFace::LLPanelFace() mTitleMediaText(NULL), mNeedMediaTitle(true) { - buildFromFile("panel_tools_texture.xml"); // switchable edit texture/materials - USE_TEXTURE = LLTrans::getString("use_texture"); // Extended copy & paste buttons //mCommitCallbackRegistrar.add("PanelFace.menuDoToSelected", boost::bind(&LLPanelFace::menuDoToSelected, this, _2)); @@ -612,8 +610,11 @@ LLPanelFace::LLPanelFace() // // Find all faces with same texture + mCommitCallbackRegistrar.add("BuildTool.Flip", boost::bind(&LLPanelFace::onCommitFlip, _1, _2)); mCommitCallbackRegistrar.add("BuildTool.SelectSameTexture", boost::bind(&LLPanelFace::onClickBtnSelectSameTexture, this, _1, _2)); // + + buildFromFile("panel_tools_texture.xml"); // switchable edit texture/materials } LLPanelFace::~LLPanelFace() From 6c5231d56ece96eb53fa349a8733338353c3cedb Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 26 Jul 2024 15:20:37 +0200 Subject: [PATCH 13/29] Fix broken callback initialization for PBR terrain panel --- indra/newview/llfloaterregioninfo.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 6caf972b39..e2820c375d 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -912,8 +912,11 @@ void LLPanelRegionInfo::initCtrl(const std::string& name) template void LLPanelRegionInfo::initAndSetCtrl(CTRL*& ctrl, const std::string& name) { - initCtrl(name); + // Fix broken initialization + //initCtrl(name); ctrl = findChild(name); + if (ctrl) + ctrl->setCommitCallback(boost::bind(&LLPanelRegionInfo::onChangeAnything, this)); } void LLPanelRegionInfo::onClickManageTelehub() From 4ac9016a3acdd0f8f921b6bdf50665a716dc4828 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 26 Jul 2024 14:30:02 +0100 Subject: [PATCH 14/29] Another tweak to get webrtc in the right place --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 10c473045a..253f2884dc 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1539,7 +1539,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.run_command( ['install_name_tool', '-change', oldpath, - '@executable_path/../Contents/Resources/%s' % libfile, executable]) + '@executable_path/../Contents/Frameworks/%s' % libfile, executable]) # dylibs is a list of all the .dylib files we expect to need # in our bundled sub-apps. For each of these we'll create a From b33b06e133decb4a4e8193996e3cdb5e30606320 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 26 Jul 2024 14:31:24 +0100 Subject: [PATCH 15/29] Make version identification clearer for support teams --- indra/newview/fsfloaterim.cpp | 33 +++++++++++++++++++++++++-- indra/newview/llversioninfo.cpp | 40 +++++++++++++++++++++++++++++++++ indra/newview/llversioninfo.h | 14 ++++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) diff --git a/indra/newview/fsfloaterim.cpp b/indra/newview/fsfloaterim.cpp index d66c9b5961..fc176e3dc0 100644 --- a/indra/newview/fsfloaterim.cpp +++ b/indra/newview/fsfloaterim.cpp @@ -471,13 +471,42 @@ void FSFloaterIM::sendMsgFromInputEditor(EChatType type) if (FSData::getInstance()->isTestingGroup(mSessionID)) { if(chat_prefix_testing) - utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + { + auto viewer_maturity = LLVersionInfo::getInstance()->getFSViewerMaturity(); + if( viewer_maturity == LLVersionInfo::FSViewerMaturity::RELEASE_VIEWER ) + { + utf8_text.insert(insert_pos, "(Release) "); + } + else if( viewer_maturity == LLVersionInfo::FSViewerMaturity::UNOFFICIAL_VIEWER ) + { + utf8_text.insert(insert_pos, "(Unofficial) "); + } + else // In testing groups we'll allow all non-release recognised channels. + { + utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + } + } + } //For release support groups, only display the short version(Major.Minor.Patch) since chat can speed by. This makes it easier on Support's eyes. else if(FSData::getInstance()->isSupportGroup(mSessionID)) { if(chat_prefix_support) - utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + { + auto viewer_maturity = LLVersionInfo::getInstance()->getFSViewerMaturity(); + if( viewer_maturity == LLVersionInfo::FSViewerMaturity::UNOFFICIAL_VIEWER ) + { + utf8_text.insert(insert_pos, "(Unofficial) "); + } + else if( viewer_maturity != LLVersionInfo::FSViewerMaturity::RELEASE_VIEWER ) + { + utf8_text.insert(insert_pos, "(pre-Release) "); + } + else + { + utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + } + } } } diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp index 36228ad91b..577dc55f5a 100644 --- a/indra/newview/llversioninfo.cpp +++ b/indra/newview/llversioninfo.cpp @@ -211,7 +211,47 @@ LLVersionInfo::ViewerMaturity LLVersionInfo::getViewerMaturity() } return maturity; } +// Add FS specific maturity grading +LLVersionInfo::FSViewerMaturity LLVersionInfo::getFSViewerMaturity() +{ + FSViewerMaturity maturity; + std::string channel = getChannel(); + + + static const boost::regex is_manual_channel("\\bManualx64\\b"); + static const boost::regex is_beta_channel("\\bBetax64\\b"); + static const boost::regex is_alpha_channel("\\bAlphax64\\b"); + static const boost::regex is_release_channel("\\bReleasex64\\b"); + static const boost::regex is_nightly_channel("\\bNightlyx64\\b"); + + if (ll_regex_search(channel, is_release_channel)) + { + maturity = FSViewerMaturity::RELEASE_VIEWER; + } + else if (ll_regex_search(channel, is_beta_channel)) + { + maturity = FSViewerMaturity::BETA_VIEWER; + } + else if (ll_regex_search(channel, is_alpha_channel)) + { + maturity = FSViewerMaturity::ALPHA_VIEWER; + } + else if (ll_regex_search(channel, is_manual_channel)) + { + maturity = FSViewerMaturity::MANUAL_VIEWER; + } + else if (ll_regex_search(channel, is_nightly_channel)) + { + maturity = FSViewerMaturity::NIGHTLY_VIEWER; + } + else + { + maturity = FSViewerMaturity::UNOFFICIAL_VIEWER; + } + return maturity; +} +// std::string LLVersionInfo::getReleaseNotes() { return mReleaseNotes; diff --git a/indra/newview/llversioninfo.h b/indra/newview/llversioninfo.h index 3830e45f48..99bf255f74 100644 --- a/indra/newview/llversioninfo.h +++ b/indra/newview/llversioninfo.h @@ -109,6 +109,20 @@ public: } ViewerMaturity; ViewerMaturity getViewerMaturity(); +// Add an FS specific viewer maturity enum + using FSViewerMaturity = + enum class FSViewerMaturityEnum + { + UNOFFICIAL_VIEWER=0, + ALPHA_VIEWER, + MANUAL_VIEWER, + BETA_VIEWER, + NIGHTLY_VIEWER, + RELEASE_VIEWER, + }; + FSViewerMaturity getFSViewerMaturity(); +// + /// get the release-notes URL, once it becomes available -- until then, /// return empty string std::string getReleaseNotes(); From fff95dc0e87c62ee8ca15c69da800f9ca96e12c1 Mon Sep 17 00:00:00 2001 From: MelodyOwo Date: Fri, 26 Jul 2024 18:08:09 -0400 Subject: [PATCH 16/29] Make Clang Happier --- indra/newview/llfloateravatar.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llfloateravatar.h b/indra/newview/llfloateravatar.h index b1b504a0ba..6d9a4b1a5a 100644 --- a/indra/newview/llfloateravatar.h +++ b/indra/newview/llfloateravatar.h @@ -43,7 +43,7 @@ private: LLMediaCtrl* mAvatarPicker; // Avatar chooser does not change between OpenSim grids - /*virtual*/ void onOpen(const LLSD& key); + /*virtual*/ void onOpen(const LLSD& key) override; void handleUrlChanged(const std::string& url); boost::signals2::connection mAvatarPickerUrlChangedSignal; From 96b8a9ec52146d2d80ae030a3040cc0ed9b9b9b9 Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 05:55:35 +0100 Subject: [PATCH 17/29] Modify Firestorm.app embedded path. Based on `http://qin.laya.com/tech_coding_help/dylib_linking.html` (thanks Brad) In the past, I tried this, but I think it failed to find the executable. Given that the change needs to be made to the executable, this should have worked. Trying again, but this time with Contents folder in the right place. --- indra/newview/viewer_manifest.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 253f2884dc..e0c0061c4e 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1535,7 +1535,8 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path(libfile) oldpath = os.path.join("@rpath", libfile) - executable = self.dst_path_of(libfile) + executable = self.dst_path_of("Firestorm.app") + print(f"debug: oldpath={oldpath} executable={executable} libfile={libfile}") self.run_command( ['install_name_tool', '-change', oldpath, From ce536fd5f37696cd1aed868edf9f64a00f0e427e Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 08:13:14 +0100 Subject: [PATCH 18/29] mac packaging: exit loop cleanly on hdi detach success --- indra/newview/viewer_manifest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 568d0a41b4..6d8c4756ed 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1913,6 +1913,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): for tries in range(10): try: self.run_command(['hdiutil', 'detach', '-force', devfile]) + break # Exit loop if detach worked except ManifestError as err: print(f"detach failed on attempt {tries}") time.sleep(1) From e157a2db35a6fe9b106376d710fc83c69b5774da Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sat, 27 Jul 2024 12:00:44 +0200 Subject: [PATCH 19/29] Move PR guidelines doc to doc folder --- README.md | 2 +- FS_PR_GUIDELINES.md => doc/FS_PR_GUIDELINES.md | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename FS_PR_GUIDELINES.md => doc/FS_PR_GUIDELINES.md (100%) diff --git a/README.md b/README.md index 0943130420..e78a22fd54 100644 --- a/README.md +++ b/README.md @@ -23,4 +23,4 @@ Build instructions for each operating system can be found using the links below ## Contribute -Help make Firestorm better! You can get involved with improvements by filing bugs and suggesting enhancements via [JIRA](https://jira.firestormviewer.org) or [creating pull requests](FS_PR_GUIDELINES.md). +Help make Firestorm better! You can get involved with improvements by filing bugs and suggesting enhancements via [JIRA](https://jira.firestormviewer.org) or [creating pull requests](doc/FS_PR_GUIDELINES.md). diff --git a/FS_PR_GUIDELINES.md b/doc/FS_PR_GUIDELINES.md similarity index 100% rename from FS_PR_GUIDELINES.md rename to doc/FS_PR_GUIDELINES.md From 612c91ade9b440edd79bed2ae57cdff4c2b94985 Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 08:13:14 +0100 Subject: [PATCH 20/29] mac packaging: exit loop cleanly on hdi detach success --- indra/newview/viewer_manifest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index e0c0061c4e..30db674798 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1954,6 +1954,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): for tries in range(10): try: self.run_command(['hdiutil', 'detach', '-force', devfile]) + break # Exit loop if detach worked except ManifestError as err: print(f"detach failed on attempt {tries}") time.sleep(1) From 8de3e13e5350af7d3facff635af6f72d0bd95138 Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 12:02:14 +0100 Subject: [PATCH 21/29] Try setting executable to reference Contents/MacOS --- indra/newview/viewer_manifest.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 30db674798..970c277648 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1425,6 +1425,9 @@ class Darwin_x86_64_Manifest(ViewerManifest): idnadir = os.path.join(pkgdir, "lib", "python", "idna") with self.prefix(src="", dst="Contents"): # everything goes in Contents + with self.prefix(dst="MacOS"): + executable = self.dst_path_of("Firestorm.app") # locate the executable within the bundle. + bugsplat_db = self.args.get('bugsplat') print(f"debug: bugsplat_db={bugsplat_db}") if bugsplat_db: @@ -1535,7 +1538,6 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path(libfile) oldpath = os.path.join("@rpath", libfile) - executable = self.dst_path_of("Firestorm.app") print(f"debug: oldpath={oldpath} executable={executable} libfile={libfile}") self.run_command( ['install_name_tool', '-change', From 665d99934d44a53497731a6c12f650a03965af0b Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 14:51:15 +0100 Subject: [PATCH 22/29] Firestorm not Firestorm.app and revert to Resources as per LL --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 970c277648..0c00b36944 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1426,7 +1426,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): with self.prefix(src="", dst="Contents"): # everything goes in Contents with self.prefix(dst="MacOS"): - executable = self.dst_path_of("Firestorm.app") # locate the executable within the bundle. + executable = self.dst_path_of("Firestorm") # locate the executable within the bundle. bugsplat_db = self.args.get('bugsplat') print(f"debug: bugsplat_db={bugsplat_db}") From 21d6248a8cfc4136fae654a230ff863e953f9e3d Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 18:14:11 +0100 Subject: [PATCH 23/29] Now we have the right binary, get the lib from the right place. --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 0c00b36944..1701be232b 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1542,7 +1542,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.run_command( ['install_name_tool', '-change', oldpath, - '@executable_path/../Contents/Frameworks/%s' % libfile, executable]) + '@executable_path/../Contents/Resources/%s' % libfile, executable]) # dylibs is a list of all the .dylib files we expect to need # in our bundled sub-apps. For each of these we'll create a From 80730d097a4b4e3f30f9fd008cb2c5107238fe8d Mon Sep 17 00:00:00 2001 From: Beq Date: Sat, 27 Jul 2024 20:24:28 +0100 Subject: [PATCH 24/29] Fix: Off by one level --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 1701be232b..2727dff1d6 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1542,7 +1542,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.run_command( ['install_name_tool', '-change', oldpath, - '@executable_path/../Contents/Resources/%s' % libfile, executable]) + '@executable_path/../Resources/%s' % libfile, executable]) # dylibs is a list of all the .dylib files we expect to need # in our bundled sub-apps. For each of these we'll create a From d163d9032314335825b6f713e388342dde9174e7 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 28 Jul 2024 16:17:23 +0200 Subject: [PATCH 25/29] Fix callbacks for PBR region terrain panel not getting wired up properly --- indra/newview/llfloaterregioninfo.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 8807509a2e..3ef44bf74a 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -852,8 +852,9 @@ void LLPanelRegionInfo::initCtrl(const std::string& name) template void LLPanelRegionInfo::initAndSetCtrl(CTRL*& ctrl, const std::string& name) { - initCtrl(name); ctrl = findChild(name); + if (ctrl) + ctrl->setCommitCallback(boost::bind(&LLPanelRegionInfo::onChangeAnything, this)); } void LLPanelRegionInfo::onClickManageTelehub() From 2d69e4d2396d4d5d2e2b9d4959e668e57c08efd0 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 29 Jul 2024 10:09:56 +0200 Subject: [PATCH 26/29] Fix trailing whitespaces --- indra/llwebrtc/llwebrtc.cpp | 6 +++--- indra/llwebrtc/llwebrtc.h | 4 ++-- indra/llwebrtc/llwebrtc_impl.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp index d5bd913315..6dc632aba4 100644 --- a/indra/llwebrtc/llwebrtc.cpp +++ b/indra/llwebrtc/llwebrtc.cpp @@ -458,7 +458,7 @@ void ll_set_device_module_render_device(rtc::scoped_refptrSetPlayoutDevice(webrtc::AudioDeviceModule::kDefaultDevice); } - else + else { device_module->SetPlayoutDevice(device); } @@ -656,7 +656,7 @@ void LLWebRTCImpl::freePeerConnection(LLWebRTCPeerConnectionInterface* peer_conn // Most peer connection (signaling) happens on // the signaling thread. -LLWebRTCPeerConnectionImpl::LLWebRTCPeerConnectionImpl() : +LLWebRTCPeerConnectionImpl::LLWebRTCPeerConnectionImpl() : mWebRTCImpl(nullptr), mPeerConnection(nullptr), mMute(false), @@ -1171,7 +1171,7 @@ void LLWebRTCPeerConnectionImpl::OnSuccess(webrtc::SessionDescriptionInterface * { observer->OnOfferAvailable(mangled_sdp); } - + mPeerConnection->SetLocalDescription(std::unique_ptr( webrtc::CreateSessionDescription(webrtc::SdpType::kOffer, mangled_sdp)), rtc::scoped_refptr(this)); diff --git a/indra/llwebrtc/llwebrtc.h b/indra/llwebrtc/llwebrtc.h index f447ea990a..54eefc8554 100644 --- a/indra/llwebrtc/llwebrtc.h +++ b/indra/llwebrtc/llwebrtc.h @@ -129,7 +129,7 @@ class LLWebRTCDeviceInterface }; virtual void setAudioConfig(AudioConfig config) = 0; - + // instructs webrtc to refresh the device list. virtual void refreshDevices() = 0; @@ -231,7 +231,7 @@ class LLWebRTCSignalingObserver class LLWebRTCPeerConnectionInterface { public: - + struct InitOptions { // equivalent of PeerConnectionInterface::IceServer diff --git a/indra/llwebrtc/llwebrtc_impl.h b/indra/llwebrtc/llwebrtc_impl.h index 6672f8ce90..2fb5525519 100644 --- a/indra/llwebrtc/llwebrtc_impl.h +++ b/indra/llwebrtc/llwebrtc_impl.h @@ -235,7 +235,7 @@ class LLWebRTCImpl : public LLWebRTCDeviceInterface, public webrtc::AudioDeviceS // The factory that allows creation of native webrtc PeerConnections. rtc::scoped_refptr mPeerConnectionFactory; - + rtc::scoped_refptr mAudioProcessingModule; // more native webrtc stuff From ff891ca38d1a8d84bc1676020f6ac1272964e81e Mon Sep 17 00:00:00 2001 From: Beq Date: Mon, 29 Jul 2024 21:30:58 +0100 Subject: [PATCH 27/29] FIRE-34277 - particles are refusing to rez Oddly, calling getPixelArea() before calcPixelArea() is correct. This makes no sense but things break if we don't! --- indra/newview/llviewertexturelist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 80e9fcb089..a0b97cc86e 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -915,13 +915,13 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag if (face && face->getViewerObject() && face->getTextureEntry()) { + F32 vsize = face->getPixelArea(); // Fix Blurry textures and use importance weight F32 radius; F32 cos_angle_to_view_dir; BOOL in_frustum = face->calcPixelArea(cos_angle_to_view_dir, radius); static LLCachedControl bias_unimportant_threshold(gSavedSettings, "TextureBiasUnimportantFactor", 0.25f); // - F32 vsize = face->getPixelArea(); // scale desired texture resolution higher or lower depending on texture scale const LLTextureEntry* te = face->getTextureEntry(); From c6c2a51e9cb984aa3ca5bcf6d264cdc724025d9f Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 30 Jul 2024 10:20:07 +0200 Subject: [PATCH 28/29] Don't show negative amount of available memory in texture console --- indra/newview/llviewertexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 530e106a77..21e7db2ddf 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -559,7 +559,7 @@ void LLViewerTexture::updateClass() // try to leave half a GB for everyone else, but keep at least 768MB for ourselves F32 target = llmax(budget - 512.f, MIN_VRAM_BUDGET); - sFreeVRAMMegabytes = target - used; + sFreeVRAMMegabytes = llmax(target - used, 0.f); F32 over_pct = llmax((used-target) / target, 0.f); // Restrict texture memory by available physical system memory From 73788b2c67fffffdd29cce40d99f1aa01912fa3e Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 30 Jul 2024 10:31:13 +0200 Subject: [PATCH 29/29] FIRE-34348: Update outdated tool tip for point lights --- .../skins/default/xui/de/panel_preferences_graphics1.xml | 2 +- .../skins/default/xui/en/panel_preferences_graphics1.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml index 763493f4b8..b99e651361 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml @@ -70,7 +70,7 @@ - + Punkt. Beleucht. (Neustart erf.): diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml index c23b69d2b5..98acbce12f 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -404,7 +404,7 @@ layout="topleft" left_delta="-5" name="local lights_label" - tool_tip="Affects the number of rendered light sources when Advanced Lighting Model is disabled. A restart is required to change mode."> + tool_tip="Affects the number of rendered. A restart is required to change mode."> Point Lighting (restart required)