From e6da5a4bbaaefa81a058087ddc567caa459b58b7 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Tue, 13 Sep 2011 18:05:44 -0400 Subject: SH-2353 FIX selection streaming cost always says 0.0 PE found that the streaming cost function definition wasn't lining up with its inherited function definition. Fixed the inhereted funciton definition to add the new parameter. Selection streaming cost works again, though client-side generated. Should probably depricate/remove this feature. --- indra/newview/llviewerobject.cpp | 2 +- indra/newview/llviewerobject.h | 2 +- indra/newview/llvovolume.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index d20b6641d3..c5c841d666 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -3217,7 +3217,7 @@ F32 LLViewerObject::getLinksetPhysicsCost() return mLinksetPhysicsCost; } -F32 LLViewerObject::getStreamingCost(S32* bytes, S32* visible_bytes) +F32 LLViewerObject::getStreamingCost(S32* bytes, S32* visible_bytes, F32* unscaled_value) const { return 0.f; } diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 53e951e483..be5b9819b1 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -340,7 +340,7 @@ public: virtual void setScale(const LLVector3 &scale, BOOL damped = FALSE); - virtual F32 getStreamingCost(S32* bytes = NULL, S32* visible_bytes = NULL); + virtual F32 getStreamingCost(S32* bytes = NULL, S32* visible_bytes = NULL, F32* unscaled_value = NULL) const; virtual U32 getTriangleCount(); virtual U32 getHighLODTriangleCount(); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 6b0a5d8642..380d63c77b 100755 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -3579,7 +3579,7 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e bool special_cursor = specialHoverCursor(); for (S32 i = start_face; i < end_face; ++i) { - if (!special_cursor && !pick_transparent && getTE(i)->getColor().mV[3] == 0.f) + if (!special_cursor && !pick_transparent && getTE(i) && getTE(i)->getColor().mV[3] == 0.f) { //don't attempt to pick completely transparent faces unless //pick_transparent is true continue; -- cgit v1.2.3 From e550533e23323ebf8e380f7d88387fc04740bc2e Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Fri, 16 Sep 2011 15:59:19 -0400 Subject: SH-2434 WIP testing possibility of always using unnested mutex locks to see if that makes a difference. --- indra/llcommon/llthread.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h index c732e3bc77..0fa98e5c45 100644 --- a/indra/llcommon/llthread.h +++ b/indra/llcommon/llthread.h @@ -151,15 +151,15 @@ protected: //============================================================================ -#define MUTEX_DEBUG (LL_DEBUG || LL_RELEASE_WITH_DEBUG_INFO) +//#define MUTEX_DEBUG (LL_DEBUG || LL_RELEASE_WITH_DEBUG_INFO) -#ifdef MUTEX_DEBUG +//#ifdef MUTEX_DEBUG // We really shouldn't be using recursive locks. Make sure of that in debug mode. #define MUTEX_FLAG APR_THREAD_MUTEX_UNNESTED -#else +//#else // Use the fastest platform-optimal lock behavior (can be recursive or non-recursive). -#define MUTEX_FLAG APR_THREAD_MUTEX_DEFAULT -#endif +//#define MUTEX_FLAG APR_THREAD_MUTEX_DEFAULT +//#endif class LL_COMMON_API LLMutexBase { -- cgit v1.2.3 From aeec2661071ff14c3a9526a24a629443264a635b Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Tue, 20 Sep 2011 12:11:04 -0400 Subject: SH-2434 revert mac viewer sometimes freezes at start up mutex mode change was ineffective, reverting the patch. Will do future tests on a sidebranch. --- indra/llcommon/llthread.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h index 3f7f918f57..b631b96252 100644 --- a/indra/llcommon/llthread.h +++ b/indra/llcommon/llthread.h @@ -151,15 +151,15 @@ protected: //============================================================================ -//#define MUTEX_DEBUG (LL_DEBUG || LL_RELEASE_WITH_DEBUG_INFO) +#define MUTEX_DEBUG (LL_DEBUG || LL_RELEASE_WITH_DEBUG_INFO) -//#ifdef MUTEX_DEBUG +#ifdef MUTEX_DEBUG // We really shouldn't be using recursive locks. Make sure of that in debug mode. #define MUTEX_FLAG APR_THREAD_MUTEX_UNNESTED -//#else +#else // Use the fastest platform-optimal lock behavior (can be recursive or non-recursive). -//#define MUTEX_FLAG APR_THREAD_MUTEX_DEFAULT -//#endif +#define MUTEX_FLAG APR_THREAD_MUTEX_DEFAULT +#endif class LL_COMMON_API LLMutexBase { -- cgit v1.2.3 From 812b6c60edbdae57cbe77b9c60c74a4bcbaf24ca Mon Sep 17 00:00:00 2001 From: prep Date: Wed, 21 Sep 2011 15:01:15 -0400 Subject: Fix for sh-2467 --- indra/newview/llfloatermodelpreview.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 75e775072b..b31fa620fe 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -5066,6 +5066,8 @@ BOOL LLModelPreview::render() if (!mModel[mPreviewLOD].empty()) { + mFMP->childEnable("reset_btn"); + bool regen = mVertexBuffer[mPreviewLOD].empty(); if (!regen) { @@ -5563,6 +5565,7 @@ void LLFloaterModelPreview::onReset(void* user_data) assert_main_thread(); LLFloaterModelPreview* fmp = (LLFloaterModelPreview*) user_data; + fmp->childDisable("reset_btn"); LLModelPreview* mp = fmp->mModelPreview; std::string filename = mp->mLODFile[3]; -- cgit v1.2.3 From f3f841bddfb8d54929b911e930aa8babebddd487 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 26 Sep 2011 14:41:21 -0400 Subject: SH-2425 FIX - customized upload permissions info for damballah/staging --- indra/newview/llfloatermodelpreview.cpp | 5 +++++ 1 file changed, 5 insertions(+) mode change 100644 => 100755 indra/newview/llfloatermodelpreview.cpp diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp old mode 100644 new mode 100755 index e4046b06aa..77e9b4eeb8 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -496,6 +496,11 @@ BOOL LLFloaterModelPreview::postBuild() { validate_url = "http://secondlife.com/my/account/mesh.php"; } + else if (current_grid == "damballah") + { + // Staging grid has its own naming scheme. + validate_url = "http://secondlife-staging.com/my/account/mesh.php"; + } else { validate_url = llformat("http://secondlife.%s.lindenlab.com/my/account/mesh.php",current_grid.c_str()); -- cgit v1.2.3 From bc1dbcb3a041cff43c5e5d38d24aee4f095834c0 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 26 Sep 2011 17:57:00 -0400 Subject: SH-2501 FIX - spelling fix --- indra/newview/skins/default/xui/en/floater_model_preview.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 2eea286c8b..6c60b3e0e9 100755 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -789,7 +789,7 @@ --> - + - Step 2: Analyse + Step 2: Analyze Date: Wed, 28 Sep 2011 14:52:27 -0400 Subject: Fix for sh-2500 --- indra/newview/llfloatermodelpreview.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 77e9b4eeb8..527a868db2 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -3309,7 +3309,7 @@ void LLModelPreview::rebuildUploadData() F32 max_scale = 0.f; //reorder materials to match mBaseModel - for (U32 i = 0; i < LLModel::NUM_LODS; i++) + for (U32 i = 0; i < LLModel::NUM_LODS-1; i++) { if (mBaseModel.size() == mModel[i].size()) { @@ -5085,7 +5085,7 @@ BOOL LLModelPreview::render() } //make sure material lists all match - for (U32 i = 0; i < LLModel::NUM_LODS; i++) + for (U32 i = 0; i < LLModel::NUM_LODS-1; i++) { if (mBaseModel.size() == mModel[i].size()) { -- cgit v1.2.3 From 93e3d9e2ec0cc06cbc378ffcf23e66ed569db5f3 Mon Sep 17 00:00:00 2001 From: prep linden Date: Fri, 30 Sep 2011 15:40:27 -0400 Subject: Fix for sh-2483 --- indra/newview/llfloatermodelpreview.cpp | 6 ++++++ indra/newview/llfloatermodelpreview.h | 3 ++- indra/newview/skins/default/xui/en/floater_model_preview.xml | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 527a868db2..213127046d 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -749,6 +749,11 @@ void LLFloaterModelPreview::draw() if (!mModelPreview->mLoading) { + if ( mModelPreview->getLoadState() == LLModelLoader::ERROR_MATERIALS ) + { + childSetTextArg("status", "[STATUS]", getString("status_material_mismatch")); + } + else if ( mModelPreview->getLoadState() > LLModelLoader::ERROR_PARSING ) { childSetTextArg("status", "[STATUS]", getString(LLModel::getStatusString(mModelPreview->getLoadState() - LLModelLoader::ERROR_PARSING))); @@ -3321,6 +3326,7 @@ void LLModelPreview::rebuildUploadData() if ( !mModel[i][j]->matchMaterialOrder(mBaseModel[j], refFaceCnt, modelFaceCnt ) ) { + setLoadState( LLModelLoader::ERROR_MATERIALS ); mFMP->childDisable( "calculate_btn" ); } } diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h index 47de99ce25..64324854a5 100644 --- a/indra/newview/llfloatermodelpreview.h +++ b/indra/newview/llfloatermodelpreview.h @@ -70,7 +70,8 @@ public: GENERATING_VERTEX_BUFFERS, GENERATING_LOD, DONE, - ERROR_PARSING //basically loading failed + ERROR_PARSING, //basically loading failed + ERROR_MATERIALS, } eLoadState; U32 mState; diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 6c60b3e0e9..5e0d66b9b9 100755 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -6,6 +6,7 @@ Error: Dae parsing issue - see log for details. + Error: Material of model is not a subset of reference model. Loading... Generating Meshes... Error: Vertex number is more than 65534, aborted! -- cgit v1.2.3 From 0559c2c24f1d82989793922601a4d0df57e04349 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 17 Nov 2011 13:20:24 -0500 Subject: SH-2663 WIP, SH-2667 FIX - better logic for when to copy temp files, only uninstall V2 when called from auto-update, clean temp files when done --- .../installers/windows/installer_template.nsi | 97 ++++++++++++++++++---- 1 file changed, 82 insertions(+), 15 deletions(-) diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 02ca7cbb3a..8a6114f0d5 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -115,6 +115,7 @@ Var COMMANDLINE ; command line passed to this installer, set in .onInit Var SHORTCUT_LANG_PARAM ; "--set InstallLanguage de", passes language to viewer Var SKIP_DIALOGS ; set from command line in .onInit. autoinstall ; GUI and the defaults. +Var DO_UNINSTALL_V2 ; If non-null, path to a previous Viewer 2 installation that will be uninstalled. ;;; Function definitions should go before file includes, because calls to ;;; DLLs like LangDLL trigger an implicit file include, so if that call is at @@ -310,6 +311,29 @@ Function CheckNetworkConnection FunctionEnd +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Function CheckWillUninstallV2 +; +; If we are being called through auto-update, we need to uninstall any +; existing V2 installation. Otherwise, we wind up with +; SecondLifeViewer2 and SecondLifeViewer installations existing side +; by side no indication which to use. +; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function CheckWillUninstallV2 + + StrCpy $DO_UNINSTALL_V2 "" + + StrCmp $SKIP_DIALOGS "true" 0 CHECKV2_DONE + StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" CHECKV2_DONE ; don't uninstall our own install dir. + IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" CHECKV2_FOUND CHECKV2_DONE + +CHECKV2_FOUND: + StrCpy $DO_UNINSTALL_V2 "true" + +CHECKV2_DONE: + +FunctionEnd + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Save user files to temp location ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -334,7 +358,7 @@ Push $2 ExpandEnvStrings $2 $2 CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0" - CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0" + CopyFiles /SILENT "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0" CONTINUE: IntOp $0 $0 + 1 @@ -350,7 +374,7 @@ Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 CreateDirectory "$TEMP\SecondLifeSettingsBackup\AllUsers\" - CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\" + CopyFiles /SILENT "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\" Pop $0 FunctionEnd @@ -377,7 +401,7 @@ Push $2 ExpandEnvStrings $2 $2 CreateDirectory "$2\Application Data\SecondLife\" - CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLife\" + CopyFiles /SILENT "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLife\" CONTINUE: IntOp $0 $0 + 1 @@ -393,11 +417,53 @@ Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 CreateDirectory "$2\Application Data\SecondLife\" - CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLife\" + CopyFiles /SILENT "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLife\" +Pop $0 + +FunctionEnd + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Remove temp dirs +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function RemoveTempUserFiles + +Push $0 +Push $1 +Push $2 + + StrCpy $0 0 ; Index number used to iterate via EnumRegKey + + LOOP: + EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 + StrCmp $1 "" DONE ; no more users + + ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" + StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + + ; Required since ProfileImagePath is of type REG_EXPAND_SZ + ExpandEnvStrings $2 $2 + + RMDir /r "$TEMP\SecondLifeSettingsBackup\$0\*" + + CONTINUE: + IntOp $0 $0 + 1 + Goto LOOP + DONE: + +Pop $2 +Pop $1 +Pop $0 + +; Copy files in Documents and Settings\All Users\SecondLife +Push $0 + ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" + StrCmp $0 "" +2 + RMDir /r "$TEMP\SecondLifeSettingsBackup\AllUsers\*" Pop $0 FunctionEnd + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Clobber user files - TEST ONLY ; This is here for testing, generally not desirable to call it. @@ -864,9 +930,12 @@ Call CheckIfAdministrator ; Make sure the user can install/uninstall Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version Call CloseSecondLife ; Make sure we're not running Call CheckNetworkConnection ; ping secondlife.com +Call CheckWillUninstallV2 ; See if a V2 install exists and will be removed. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Call PreserveUserFiles +StrCmp $DO_UNINSTALL_V2 "" PRESERVE_DONE + Call PreserveUserFiles +PRESERVE_DONE: ;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. ;Call RemoveCacheFiles ; Installing over removes potentially corrupted @@ -951,17 +1020,15 @@ WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" ; write out uninstaller WriteUninstaller "$INSTDIR\uninst.exe" -; Remove existing "Second Life Viewer 2" install if any. -StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE ; unless that's the install directory -IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE - -SLV2_FOUND: -ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2' -Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind. -RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty. +; Uninstall existing "Second Life Viewer 2" install if needed. +StrCmp $DO_UNINSTALL_V2 "" REMOVE_SLV2_DONE + ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2' + Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind. + RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty. -SLV2_DONE: -Call RestoreUserFiles + Call RestoreUserFiles + Call RemoveTempUserFiles +REMOVE_SLV2_DONE: ; end of default section SectionEnd -- cgit v1.2.3