From f31cb4c790de84e297ced3045f33a7ba6dc85521 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 5 Oct 2011 15:15:49 -0400 Subject: storm-1581 (partial): reset graphics only when GPU id changes, not class, and provide better explanation in the alert message --- indra/newview/app_settings/settings.xml | 6 +++--- indra/newview/llstartup.cpp | 14 +++++++++----- indra/newview/llviewerwindow.cpp | 2 +- indra/newview/skins/default/xui/en/notifications.xml | 9 +++++++++ 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 15f1bbd1b1..cc27bcce3a 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4589,16 +4589,16 @@ Value 1 - LastGPUClass + LastGPUString Comment [DO NOT MODIFY] previous GPU class for tracking hardware changes Persist 1 Type - S32 + String Value - -1 + LastFeatureVersion diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 749acea6c1..18aa14a15c 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -367,7 +367,9 @@ bool idle_startup() // // Initialize stuff that doesn't need data from simulators // - + std::string lastGPU = gSavedSettings.getString("LastGPUString"); + std::string thisGPU = LLFeatureManager::getInstance()->getGPUString(); + if (LLFeatureManager::getInstance()->isSafe()) { LLNotificationsUtil::add("DisplaySetToSafe"); @@ -377,10 +379,12 @@ bool idle_startup() { LLNotificationsUtil::add("DisplaySetToRecommended"); } - else if ((gSavedSettings.getS32("LastGPUClass") != LLFeatureManager::getInstance()->getGPUClass()) && - (gSavedSettings.getS32("LastGPUClass") != -1)) + else if ( ! lastGPU.empty() && (lastGPU != thisGPU)) { - LLNotificationsUtil::add("DisplaySetToRecommended"); + LLSD subs; + subs["LAST_GPU"] = lastGPU; + subs["THIS_GPU"] = thisGPU; + LLNotificationsUtil::add("DisplaySetToRecommendedGPUChange", subs); } else if (!gViewerWindow->getInitAlert().empty()) { @@ -396,7 +400,7 @@ bool idle_startup() LLStartUp::startLLProxy(); gSavedSettings.setS32("LastFeatureVersion", LLFeatureManager::getInstance()->getVersion()); - gSavedSettings.setS32("LastGPUClass", LLFeatureManager::getInstance()->getGPUClass()); + gSavedSettings.setString("LastGPUString", thisGPU); // load dynamic GPU/feature tables from website (S3) LLFeatureManager::getInstance()->fetchHTTPTables(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 98ae746ca7..59fe5e870c 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1651,7 +1651,7 @@ LLViewerWindow::LLViewerWindow( if (LLFeatureManager::getInstance()->isSafe() || (gSavedSettings.getS32("LastFeatureVersion") != LLFeatureManager::getInstance()->getVersion()) - || (gSavedSettings.getS32("LastGPUClass") != LLFeatureManager::getInstance()->getGPUClass()) + || (gSavedSettings.getString("LastGPUString") != LLFeatureManager::getInstance()->getGPUString()) || (gSavedSettings.getBOOL("ProbeHardwareOnStartup"))) { LLFeatureManager::getInstance()->applyRecommendedSettings(); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 41a90f5984..1d5f9e731a 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2663,6 +2663,15 @@ Deed this [AREA] m² of land to the group '[GROUP_NAME]'? Display settings have been set to safe levels because you have specified the -safe option. + +Display settings have been set to recommended levels because your graphics card changed +from '[LAST_GPU]' +to '[THIS_GPU]' + + Date: Fri, 7 Oct 2011 14:38:00 -0400 Subject: storm-1581: modify feature table rules to increment version only when the intent is to reset all graphics preferences --- indra/newview/app_settings/settings.xml | 4 ++-- indra/newview/featuretable.txt | 4 ++++ indra/newview/featuretable_linux.txt | 4 ++++ indra/newview/featuretable_mac.txt | 4 ++++ indra/newview/featuretable_solaris.txt | 4 ++++ indra/newview/featuretable_xp.txt | 4 ++++ indra/newview/llstartup.cpp | 2 +- indra/newview/skins/default/xui/en/notifications.xml | 4 ++-- 8 files changed, 25 insertions(+), 5 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index cc27bcce3a..dd94d293c4 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4592,7 +4592,7 @@ LastGPUString Comment - [DO NOT MODIFY] previous GPU class for tracking hardware changes + [DO NOT MODIFY] previous GPU id string for tracking hardware changes Persist 1 Type @@ -4603,7 +4603,7 @@ LastFeatureVersion Comment - [DO NOT MODIFY] Version number for tracking hardware changes + [DO NOT MODIFY] Feature Table Version number for tracking rendering system changes Persist 1 Type diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index e12c2f7853..9ad313a9a7 100755 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -1,4 +1,8 @@ version 32 +// The version number above should be implemented IF AND ONLY IF some +// change has been made that is sufficiently important to justify +// resetting the graphics preferences of all users to the recommended +// defaults. This should be as rare an event as we can manage. // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt index 6e962f3c56..2dbdf3a76e 100644 --- a/indra/newview/featuretable_linux.txt +++ b/indra/newview/featuretable_linux.txt @@ -1,4 +1,8 @@ version 27 +// The version number above should be implemented IF AND ONLY IF some +// change has been made that is sufficiently important to justify +// resetting the graphics preferences of all users to the recommended +// defaults. This should be as rare an event as we can manage. // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index 2690e8ec70..996e574350 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,8 @@ version 30 +// The version number above should be implemented IF AND ONLY IF some +// change has been made that is sufficiently important to justify +// resetting the graphics preferences of all users to the recommended +// defaults. This should be as rare an event as we can manage. // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table diff --git a/indra/newview/featuretable_solaris.txt b/indra/newview/featuretable_solaris.txt index 7df75687f2..e7cae1abdc 100644 --- a/indra/newview/featuretable_solaris.txt +++ b/indra/newview/featuretable_solaris.txt @@ -1,4 +1,8 @@ version 15 +// The version number above should be implemented IF AND ONLY IF some +// change has been made that is sufficiently important to justify +// resetting the graphics preferences of all users to the recommended +// defaults. This should be as rare an event as we can manage. // NOTE: This is mostly identical to featuretable.txt with a few differences // Should be combined into one table diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt index a0245f5369..a53be10be1 100644 --- a/indra/newview/featuretable_xp.txt +++ b/indra/newview/featuretable_xp.txt @@ -1,4 +1,8 @@ version 31 +// The version number above should be implemented IF AND ONLY IF some +// change has been made that is sufficiently important to justify +// resetting the graphics preferences of all users to the recommended +// defaults. This should be as rare an event as we can manage. // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 18aa14a15c..ab2c5d7ad5 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -377,7 +377,7 @@ bool idle_startup() else if ((gSavedSettings.getS32("LastFeatureVersion") < LLFeatureManager::getInstance()->getVersion()) && (gSavedSettings.getS32("LastFeatureVersion") != 0)) { - LLNotificationsUtil::add("DisplaySetToRecommended"); + LLNotificationsUtil::add("DisplaySetToRecommendedFeatureChange"); } else if ( ! lastGPU.empty() && (lastGPU != thisGPU)) { diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 1d5f9e731a..03181d79cd 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2674,9 +2674,9 @@ to '[THIS_GPU]' -Display settings have been set to recommended levels based on your system configuration. +Display settings have been set to recommended levels because of a change to the rendering subsystem.