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(-) (limited to 'indra') 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]' + +