diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 52aa2a3be397fbaecaa30bc56ddb08b3ae446731..7396209e2734d8561ef4a0b30ef358a7030c17d6 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4589,21 +4589,21 @@ <key>Value</key> <integer>1</integer> </map> - <key>LastGPUClass</key> + <key>LastGPUString</key> <map> <key>Comment</key> - <string>[DO NOT MODIFY] previous GPU class for tracking hardware changes</string> + <string>[DO NOT MODIFY] previous GPU id string for tracking hardware changes</string> <key>Persist</key> <integer>1</integer> <key>Type</key> - <string>S32</string> + <string>String</string> <key>Value</key> - <integer>-1</integer> + <string></string> </map> <key>LastFeatureVersion</key> <map> <key>Comment</key> - <string>[DO NOT MODIFY] Version number for tracking hardware changes</string> + <string>[DO NOT MODIFY] Feature Table Version number for tracking rendering system changes</string> <key>Persist</key> <integer>1</integer> <key>Type</key> diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index e12c2f7853c8ba6f6e65f0e9a6e833cfbe114fc5..9ad313a9a7508cb0f55af4a6636df7268360a35a 100644 --- 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 6e962f3c567e2063b1dc4e4710d27dd2a0edcae9..2dbdf3a76edb8f82005eecd2de607f2a4c61f196 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 2690e8ec70800fd76b3c8583af315d2f7bbc72f1..996e57435025730f702feb1f1191ae56aa20d6a2 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 7df75687f213a96191a5f73edbe2511f943b05cd..e7cae1abdcede63791a93515bbd9ea753fd9477c 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 a0245f5369070dd5ed6fee3f49f594584a6065b6..a53be10be138a0794d94cd4c6c4a7777ca95a981 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 e03ad2db9497e12386f20bfe2214116a4b2a7eff..e62227fa3c7f48e621923996ae8ec410cc3ec3ec 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -366,7 +366,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"); @@ -374,12 +376,14 @@ bool idle_startup() else if ((gSavedSettings.getS32("LastFeatureVersion") < LLFeatureManager::getInstance()->getVersion()) && (gSavedSettings.getS32("LastFeatureVersion") != 0)) { - LLNotificationsUtil::add("DisplaySetToRecommended"); + LLNotificationsUtil::add("DisplaySetToRecommendedFeatureChange"); } - 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()) { @@ -395,7 +399,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 b84db6b1c0c5cb126cb2fe43960501c43639fa68..8576d811965f9ff4beec87a04898212af40707aa 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1657,7 +1657,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 f510b3c5bac9015866f130ffc0fbbf3ba8d98a09..6720d8131ec73517f7e2979dc7d99a65deb71b79 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2665,9 +2665,18 @@ Display settings have been set to safe levels because you have specified the -sa <notification icon="alertmodal.tga" - name="DisplaySetToRecommended" + name="DisplaySetToRecommendedGPUChange" type="alertmodal"> -Display settings have been set to recommended levels based on your system configuration. +Display settings have been set to recommended levels because your graphics card changed +from '[LAST_GPU]' +to '[THIS_GPU]' + </notification> + + <notification + icon="alertmodal.tga" + name="DisplaySetToRecommendedFeatureChange" + type="alertmodal"> +Display settings have been set to recommended levels because of a change to the rendering subsystem. </notification> <notification