From 79aede07e31f428e8adc0a2d45994450991afeb5 Mon Sep 17 00:00:00 2001 From: Beq Date: Tue, 22 Oct 2024 16:00:33 +0100 Subject: [PATCH 1/3] FIRE-34374 - additional bypass of LL_ERR --- indra/llrender/llimagegl.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 826861d64c..f106619d7a 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -1248,7 +1248,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt // << " bytes for a manual image W" << width << " H" << height << LL_ENDL; LL_WARNS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) << " bytes for a manual image W" << width << " H" << height << LL_ENDL; - return; + return; // } @@ -1274,8 +1274,13 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt if (!scratch) { LLError::LLUserWarningMsg::showOutOfMemory(); - LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) + // FIRE-34374 - OOM Crash 80% of which are in render debug text + // LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) + // << " bytes for a manual image W" << width << " H" << height << LL_ENDL; + LL_WARNS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) << " bytes for a manual image W" << width << " H" << height << LL_ENDL; + return; + // } U32 pixel_count = (U32)(width * height); From 524c1c58102358f19c5e28368ca91cb1a234860b Mon Sep 17 00:00:00 2001 From: Beq Date: Tue, 22 Oct 2024 16:03:32 +0100 Subject: [PATCH 2/3] [build] Make the redirect URL correct for each build type default to a placeholder for local builds for now. --- .../installers/windows/installer_template.nsi | 25 +++++++++++++---- indra/newview/installers/windows/lang_de.nsi | 4 +-- .../newview/installers/windows/lang_en-us.nsi | Bin 16212 -> 16004 bytes indra/newview/installers/windows/lang_es.nsi | Bin 16412 -> 16204 bytes indra/newview/installers/windows/lang_fr.nsi | Bin 17256 -> 17048 bytes indra/newview/installers/windows/lang_it.nsi | Bin 16050 -> 15842 bytes indra/newview/installers/windows/lang_ja.nsi | Bin 14044 -> 13836 bytes indra/newview/installers/windows/lang_pl.nsi | Bin 16436 -> 16228 bytes indra/newview/installers/windows/lang_ru.nsi | Bin 16364 -> 16156 bytes indra/newview/viewer_manifest.py | 26 +++++++++++++++++- 10 files changed, 47 insertions(+), 8 deletions(-) diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 1018b3d6db..29ae1e54f0 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -41,6 +41,7 @@ Unicode true # Enable unicode support # This placeholder is replaced by viewer_manifest.py %%VERSION%% +!include "WordFunc.nsh" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; - language files - one for each language (or flavor thereof) ;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the @@ -232,30 +233,44 @@ Call openLinkNewWindow ; Add the AVX2 check functions Function CheckCPUFlagsAVX2 Push $1 + Push $2 + Push $3 System::Call 'kernel32::IsProcessorFeaturePresent(i 40) i .r1' ; 40 is PF_AVX2_INSTRUCTIONS_AVAILABLE IntCmp $1 1 OK_AVX2 ; AVX2 not supported - MessageBox MB_OK $(MissingAVX2) - ${OpenURL} 'https://www.firestormviewer.org/early-access-beta-downloads-legacy-cpus' + ; Prepare the URL by concatenating '-legacy-cpus' to $DL_URL + StrCpy $2 "${DL_URL}" + StrCpy $2 "-legacy-cpus" /APPEND + ; Replace %DLURL% in the language string with the URL + ${WordReplace} "$(MissingAVX2)" "%DLURL%" "$2" "+*" $3 + MessageBox MB_OK "$3" + ${OpenURL} '$2' Quit OK_AVX2: + Pop $3 + Pop $2 Pop $1 Return FunctionEnd Function CheckCPUFlagsAVX2_Prompt Push $1 + Push $3 System::Call 'kernel32::IsProcessorFeaturePresent(i 40) i .r1' ; 40 is PF_AVX2_INSTRUCTIONS_AVAILABLE IntCmp $1 1 OK_AVX2 Pop $1 Return OK_AVX2: - MessageBox MB_YESNO $(AVX2Available) IDYES DownloadAVX2 IDNO ContinueInstall + ; Replace %DLURL% in the language string with the URL + ${WordReplace} "$(AVX2Available)" "%DLURL%" "${DL_URL}" "+*" $3 + + MessageBox MB_YESNO $3 IDYES DownloadAVX2 IDNO ContinueInstall DownloadAVX2: - ${OpenURL} 'https://www.firestormviewer.org/early-access-beta-downloads/' + ${OpenURL} '$3' Quit ContinueInstall: + Pop $3 Pop $1 Return FunctionEnd @@ -322,7 +337,7 @@ Call CheckWindowsVersion # Don't install On unsupported systems # IfErrors +2 0 # If error jump past setting SKIP_DIALOGS # StrCpy $SKIP_DIALOGS "true" IfErrors +3 0 # If error jump past setting SKIP_DIALOGS - StrCpy $SKIP_DIALOGS "true" + StrCpy $SKIP_DIALOGS "true" SetAutoClose true # diff --git a/indra/newview/installers/windows/lang_de.nsi b/indra/newview/installers/windows/lang_de.nsi index a11e4d505a..d0b4111d93 100755 --- a/indra/newview/installers/windows/lang_de.nsi +++ b/indra/newview/installers/windows/lang_de.nsi @@ -57,8 +57,8 @@ LangString CheckAdministratorUnInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende ; checkcpuflags LangString MissingSSE2 ${LANG_GERMAN} "Dieser PC besitzt möglicherweise keinen Prozessor mit SSE2-Unterstützung, die für die Ausführung von Firestorm ${VERSION_LONG} benötigt wird. Trotzdem installieren?" -LangString MissingAVX2 ${LANG_GERMAN} "Ihre CPU unterstützt keine AVX2-Anweisungen. Bitte laden Sie die Version für ältere CPUs von https://www.firestormviewer.org/early-access-beta-downloads-legacy-cpus/ herunter." -LangString AVX2Available ${LANG_GERMAN} "Ihre CPU unterstützt AVX2-Anweisungen. Sie können die für AVX2 optimierte Version für eine bessere Leistung unter https://www.firestormviewer.org/early-access-beta-downloads/ herunterladen. Möchten Sie sie jetzt herunterladen?" +LangString MissingAVX2 ${LANG_GERMAN} "Ihre CPU unterstützt keine AVX2-Anweisungen. Bitte laden Sie die Version für ältere CPUs von %DLURL%-legacy-cpus/ herunter." +LangString AVX2Available ${LANG_GERMAN} "Ihre CPU unterstützt AVX2-Anweisungen. Sie können die für AVX2 optimierte Version für eine bessere Leistung unter %DLURL%/ herunterladen. Möchten Sie sie jetzt herunterladen?" ; closesecondlife function (install) LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Firestorm ..." diff --git a/indra/newview/installers/windows/lang_en-us.nsi b/indra/newview/installers/windows/lang_en-us.nsi index 69cde24d32108fdb6e87e096a9bc92af7e9e6aba..dcdca3fc2424167ab4a0fa6e4c02ce89453b5108 100644 GIT binary patch delta 45 mcmcao*HXJ-hdi$;gA0QXLnuQKkW}5QtKiRwCiGD;Srz~qCJQ70 delta 133 zcmZpvy;8Sfhy3JUS`MbE42cXy3^@#y47xy8G7zRR6a%3yLlTfx0u<9_NMXolC}+q6 Xs>%oQQy7XjAC>oKq(Hl(VzMj%Je?qk diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi index cf36e452856ca2e57ceac97400e86c21994edfb7..88df05af6dde9041a0149837b2fc5d6ec65de28f 100755 GIT binary patch delta 46 ncmbQ!z<8!^gNg#LDuWAy4?`$J5Rg>eJX4{Q5lv{iQmZTg6pafM delta 134 zcmX?8H>ZJdgNnlB6decCRE9)`B8D7>N(NmZD;Wq=8H#~WmmvwrDglb=GNdr%Gn6yr Y0afJ#`6&#=n++8@87a_yT(MOa0Dn3kQ2+n{ diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi index 5312e31426c8fc2ac0e137342f22ac4e3d907e65..c3f7a643a6bcafaf40a113756d09eb010e1010e4 100755 GIT binary patch delta 57 zcmaFS#yF#uaf6Z)uPTEJgAYR}LlBTu-8@}sI-@X(5Q9F09)rThDruqAS)RNQyGeZP?sSI$SMJf=`y4+1-uEO}m41{Ve&hERqeAgQ{UUm=Z%R84?+a7;+dY8FYcHWFSmsC?>Fyu3oGvonP ee+^Z1Dh$a-RbW;`p6}bx( delta 106 zcmaD-x21t`gM`B5N!kv|sSJq>MGQF%l?=K-Rx%K#G86-$E<+NKRRR>#oqSPSc(a;9 P1S1I=L^t;-UXuj?(#sn+ diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi index c7bb70ad02e5106f57ee501d6baaae72cd2bf90a..aa65abb6e04be26659a599f9ea75a6c38a4a8c6f 100755 GIT binary patch delta 45 mcmaD;Kc{YkngXvXgA0QXLnuQKkW}3~TcME=O=zN0v@8G^f(rfs delta 133 zcmbPJ_ojY>n!@B39S74?hD3%Uh8%`U23;U483f diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index f1e706b0dd..548a85b2dc 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -281,6 +281,8 @@ class ViewerManifest(LLManifest,FSViewerManifest): channel_type='release' elif channel_qualifier.startswith('beta'): channel_type='beta' + elif channel_qualifier.startswith('alpha'): + channel_type='alpha' # Use our more-or-less-standard channel types instead of LL's #elif channel_qualifier.startswith('project'): # channel_type='project' @@ -288,6 +290,10 @@ class ViewerManifest(LLManifest,FSViewerManifest): # channel_type='test' elif channel_qualifier.startswith('nightly'): channel_type='nightly' + elif channel_qualifier.startswith('manual'): + channel_type='manual' + elif channel_qualifier.startswith('profiling'): + channel_type='profiling' else: channel_type='private' return channel_type @@ -928,6 +934,22 @@ class Windows_x86_64_Manifest(ViewerManifest): return result # + def dl_url_from_channel(self): + if self.channel_type() == 'release': + return 'https://www.firestormviewer.org/choose-your-platform' + elif self.channel_type() == 'beta': + return 'https://www.firestormviewer.org/early-access-beta-downloads' + elif self.channel_type() == 'alpha': + return 'https://www.firestormviewer.org/early-access-alpha-downloads' + elif self.channel_type() == 'manual': + return 'https://www.firestormviewer.org/early-access-manual-downloads' + elif self.channel_type() == 'profiling': + return 'https://www.firestormviewer.org/profiling-downloads' + elif self.channel_type() == 'nightly': + return 'https://www.firestormviewer.org/firestorm-nightly-build-downloads' + else: + return '' + def package_finish(self): # a standard map of strings for replacing in the templates @@ -939,7 +961,8 @@ class Windows_x86_64_Manifest(ViewerManifest): 'final_exe' : self.final_exe(), 'flags':'', 'app_name':self.app_name(), - 'app_name_oneword':self.app_name_oneword() + 'app_name_oneword':self.app_name_oneword(), + 'dl_url':self.dl_url_from_channel() } substitution_strings = self.fs_splice_grid_substitution_strings( substitution_strings ) # Add grid args @@ -974,6 +997,7 @@ class Windows_x86_64_Manifest(ViewerManifest): OutFile "%(installer_file)s" !define INSTNAME "%(app_name_oneword)s" !define SHORTCUT "%(app_name)s" + !define DL_URL "%(dl_url)s" !define URLNAME "secondlife" !define IS64BIT "%(is64bit)d" !define ISAVX2 "%(isavx2)d" From 7dc08a7d07a8b84fb279684c5ae9132964eef6ea Mon Sep 17 00:00:00 2001 From: Beq Date: Tue, 22 Oct 2024 17:28:22 +0100 Subject: [PATCH 3/3] Fix the icon paths for non-standard builds --- indra/newview/viewer_manifest.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 548a85b2dc..9fa11fd534 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -367,10 +367,14 @@ class ViewerManifest(LLManifest,FSViewerManifest): def icon_path(self): # Add -os for oss builds + chan = self.channel_type() + if chan in ['alpha', 'nightly','manual', 'profiling']: + chan = 'test' + if self.fs_is_opensim(): - return "icons/" + self.channel_type() + "-os" + return "icons/" + chan + "-os" # - return "icons/" + self.channel_type() + return "icons/" + chan def extract_names(self,src): """Extract contributor names from source file, returns string"""