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);
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 69cde24d32..dcdca3fc24 100644
Binary files a/indra/newview/installers/windows/lang_en-us.nsi and b/indra/newview/installers/windows/lang_en-us.nsi differ
diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi
index cf36e45285..88df05af6d 100755
Binary files a/indra/newview/installers/windows/lang_es.nsi and b/indra/newview/installers/windows/lang_es.nsi differ
diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi
index 5312e31426..c3f7a643a6 100755
Binary files a/indra/newview/installers/windows/lang_fr.nsi and b/indra/newview/installers/windows/lang_fr.nsi differ
diff --git a/indra/newview/installers/windows/lang_it.nsi b/indra/newview/installers/windows/lang_it.nsi
index d7447ed46b..f7a6b6120b 100755
Binary files a/indra/newview/installers/windows/lang_it.nsi and b/indra/newview/installers/windows/lang_it.nsi differ
diff --git a/indra/newview/installers/windows/lang_ja.nsi b/indra/newview/installers/windows/lang_ja.nsi
index b0d8958984..9890e21546 100755
Binary files a/indra/newview/installers/windows/lang_ja.nsi and b/indra/newview/installers/windows/lang_ja.nsi differ
diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi
index 3356eed567..424f30267b 100644
Binary files a/indra/newview/installers/windows/lang_pl.nsi and b/indra/newview/installers/windows/lang_pl.nsi differ
diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi
index c7bb70ad02..aa65abb6e0 100755
Binary files a/indra/newview/installers/windows/lang_ru.nsi and b/indra/newview/installers/windows/lang_ru.nsi differ
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index f1e706b0dd..9fa11fd534 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
@@ -361,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"""
@@ -928,6 +938,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 +965,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 +1001,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"