summaryrefslogtreecommitdiff
path: root/indra/newview/llfeaturemanager.cpp
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2007-03-02 21:25:50 +0000
committerSteven Bennetts <steve@lindenlab.com>2007-03-02 21:25:50 +0000
commit4dabd9c0472deb49573fdafef2fa413e59703f19 (patch)
tree06c680d6a2047e03838d6548bccd26c7baf9d652 /indra/newview/llfeaturemanager.cpp
parentd4462963c6ba5db2088723bbedc7b60f1184c594 (diff)
merge release@58699 beta-1-14-0@58707 -> release
Diffstat (limited to 'indra/newview/llfeaturemanager.cpp')
-rw-r--r--indra/newview/llfeaturemanager.cpp323
1 files changed, 13 insertions, 310 deletions
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index bee2f879ac..e3b5a2bb68 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -137,7 +137,7 @@ BOOL LLFeatureList::maskList(LLFeatureList &mask)
}
#if 0 && !LL_RELEASE_FOR_DOWNLOAD
- llinfos << "After appling mask " << mask.mName << llendl;
+ llinfos << "After applying mask " << mask.mName << llendl;
dump();
#endif
return TRUE;
@@ -276,7 +276,6 @@ BOOL LLFeatureManager::loadFeatureTables()
}
}
file.close();
- //flp->dump();
return TRUE;
}
@@ -361,10 +360,11 @@ void LLFeatureManager::loadGPUClass()
llinfos << "GPU is " << label << llendl;
mGPUString = label;
mGPUClass = (S32) strtol(cls, NULL, 10);
+ file.close();
+ return;
}
}
file.close();
- //flp->dump();
llwarns << "Couldn't match GPU to a class: " << gGLManager.getRawGLString() << llendl;
}
@@ -382,11 +382,7 @@ void LLFeatureManager::initCPUFeatureMasks()
{
maskFeatures("RAM256MB");
}
- else if (gSysMemory.getPhysicalMemory() <= 512*1024*1024)
- {
- //maskFeatures("RAM512MB");
- }
-
+
if (gSysCPU.getMhz() < 1100)
{
maskFeatures("CPUSlow");
@@ -449,7 +445,11 @@ void LLFeatureManager::initGraphicsFeatureMasks()
}
if (gGLManager.mIsIntel)
{
- maskFeatures("Brookdale");
+ maskFeatures("Intel");
+ }
+ if (gGLManager.mGLVersion < 1.5f)
+ {
+ maskFeatures("OpenGLPre15");
}
if (gGLManager.mIsMobilityRadeon9000)
@@ -464,303 +464,6 @@ void LLFeatureManager::initGraphicsFeatureMasks()
extern LLOSInfo gSysOS;
-
-BOOL bad_hardware_dialog(const LLString &info_str, const LLString &url)
-{
- if (!gSavedSettings.getWarning("AboutBadPCI"))
- {
- return FALSE;
- }
-
- // XUI:translate
- std::string msg = llformat(
- "[SECOND_LIFE] has detected that there may be a problem with.\n"
- "hardware or drivers on your computer. Often resolving these\n"
- "issues can result in enhanced stability and performance.\n"
- " \n"
- "%s\n"
- " \n"
- "Would you like to view a web page with more detailed\n"
- "information on this problem?\n", info_str.c_str());
-
- // Warn them that runnin without DirectX 9 will
- // not allow us to tell them about driver issues
- S32 button = OSMessageBox(msg.c_str(),
- "Warning",
- OSMB_YESNO);
- if (OSBTN_YES== button)
- {
- llinfos << "User quitting after detecting bad drivers" << llendl;
- spawn_web_browser(url.c_str());
- return TRUE;
- }
- else
- {
- // Don't warn about bad PCI stuff again, they've clicked past it.
- gSavedSettings.setWarning("AboutBadPCI", FALSE);
- }
- return FALSE;
-}
-
-BOOL LLFeatureManager::initPCIFeatureMasks()
-{
-#if LL_WINDOWS
- BOOL exit_after_bad = FALSE;
-
- BOOL is_2000 = FALSE;
- BOOL is_xp = FALSE;
-
- if (gSysOS.mMajorVer != 5)
- {
- // Unknown windows version number, exit!"
- llwarns << "Unknown Windows major version " << gSysOS.mMajorVer << ", aborting detection!" << llendl;
- return FALSE;
- }
- if (gSysOS.mMinorVer == 0)
- {
- is_2000 = TRUE;
- }
- else if (gSysOS.mMinorVer == 1)
- {
- is_xp = TRUE;
- }
- else
- {
- llwarns << "Unknown Windows minor version " << gSysOS.mMinorVer << ", aborting detection!" << llendl;
- return FALSE;
- }
-
- // This only works on Win32, as it relies on DX9 hardware detection
- // The PCI masks are actually the inverse of the normal masks
- // We actually look through the masks,and see if any hardware matches it.
- // This is because the masks encode logic about
-
- // Check for the broken AMD AGP controllers (751, 761, 762)
-
- // Horrible cruddy fixed lookup table.
- // Figure out what OS we're on, the version numbers are different. Sigh...
-
- LLDXDriverFile *dfilep = NULL;
- LLDXDevice *devp = NULL;
-
- // AMD(1022) AGP controllers
- // 7007 AMD-751 AGP Controller
- // 700F AMD-761 AGP Controller
- // 700D AMD-762 AGP Controller
- devp = gDXHardware.findDevice("VEN_1022", "DEV_7007|DEV_700F|DEV_700D");
- if (devp)
- {
- // We're just pretty much screwed here, there are big problems with this hardware
- // We've got trouble with the most recent nVidia drivers. Check for this and warn.
-
- // Note: Need to detect that we're running with older nVidia hardware, probably
- exit_after_bad |= bad_hardware_dialog("AMD AGP Controller",
- AMD_AGP_URL);
- }
-
- // VIA(1106) AGP Controllers
- // These need upgrading on both Win2K and WinXP
- //
- // 8305 VT8363/8365 CPU to AGP - Apollo KT133/KM133
- // 8598 VT82C598MVP/694X CPU to AGP - Apollo MVP3/Pro133A
- // 8605 VT8605 CPU to AGP - Apollo PM133
- // B091 VT8633 CPU to AGP - Apollo Pro 266
- // B099 VT8366/A/T CPU to AGP - Apollo KT266/A/333
- // B168 VT8235 CPU to AGP (AGP 2.0/3.0) - ProSavageDDR P4X333 chipset
- // B188 VT8237 CPU to AGP (AGP 2.0/3.0) - K8T800
- // B198 VT8237 CPU to AGP (AGP 2.0/3.0) - ProSavageDDR P4X600 chipset
-
- devp = gDXHardware.findDevice("VEN_1106",
- "DEV_8305|DEV_8598|DEV_8605|DEV_B091|"
- "DEV_B099|DEV_B168|DEV_B188|DEV_B198");
- if (devp)
- {
- BOOL out_of_date = FALSE;
- // Wanted driver: VIAAGP1.SYS
- // Version Format: M.mm.0000.vvvv
- // M.mm - Major/minor OS version (5.0 for Win2000, 5.1 for WinXP)
- // vvvv - driver version number
- //
- // Notes:
- // 3442 is most recent as of 2/25/04, probably want at least 3430 (seems to be a common version)
-
- // These are DELIBERATE assignments inside if statements, blech.
- if (dfilep = devp->findDriver("pci.sys"))
- {
- // Old driver: pci.sys
- // Version: 5.01.2600.xxxx
- //
- // Notes:
- // Default WinXP driver for B168, B198?
-
- // Old driver: pci.sys
- // Version: 5.01.2195.xxxx
- //
- // Notes:
- // Default Win2K driver for 8305?
-
- llwarns << "Detected pci.sys" << llendl;
- write_debug("Old driver (pci.sys) for VIA detected!");
- out_of_date = TRUE;
- }
- else if (dfilep = devp->findDriver("VIAAGP.SYS"))
- {
- // Old driver: VIAAGP.SYS
- // Version: 5.01.2600.xxxx
- //
- // Notes:
- // Default WinXP driver for B09x?
-
- llwarns << "Detected VIAAGP.SYS" << llendl;
- write_debug("Old driver (VIAAGP.SYS) for VIA detected!");
- out_of_date = TRUE;
- }
- else if (dfilep = devp->findDriver("VIAAGP1.SYS"))
- {
- if (dfilep->mVersion.getField(3) < 3430)
- {
- // They're using a pretty old version of the VIA AGP drivers
- // Maybe they want to upgrade?
- llwarns << "Detected VIAAGP1.SYS" << llendl;
- write_debug("Old driver (VIAAGP1.SYS) for VIA detected!");
- out_of_date = TRUE;
- }
- }
- if (out_of_date)
- {
- exit_after_bad |= bad_hardware_dialog("Out of date VIA AGP chipset driver",
- VIA_URL);
- }
- }
-
- // Intel(8086) AGP controllers (Win2K)
- // These particular controllers only may need drivers on Win2K
- //
- // 1A31 82845[MP|MZ] Processor to AGP Controller
- // 2532 82850/860 Processor to AGP Controller
- if (is_2000)
- {
- devp = gDXHardware.findDevice("VEN_8086",
- "DEV_1A31");
- if (devp)
- {
- if (dfilep = devp->findDriver("pci.sys"))
- {
- // Old driver: pci.sys
- // Version 5.01.21[9|6]5.xxxx
- //
- // Notes:
- // Default driver for Win2K? Not sure what the "correct" driver is -
- // maybe some variant of AGP440.SYS?
- llwarns << "Detected pci.sys" << llendl;
- write_debug("Old driver (pci.sys) for Intel 82845/850 on Win2K detected!");
- exit_after_bad |= bad_hardware_dialog("Out of date Intel chipset driver",
- INTEL_CHIPSET_URL);
- }
- }
- }
-
- /* Removed 4/3/2006 by JC
- After talking with Doug, we don't know what the proper driver
- and/or version number should be for Intel 865. Regardless, this
- code would _always_ complain if you had that chipset.
-
- // Intel(8086) AGP controllers (All)
- // These particular controllers may need drivers on both Win2K and WinXP
- //
- // 2561 82845G/GL/GE/PE/GV Processor to AGP Controller
- // 2571 82865G/PE/P/GV/28248P Processor to AGP Controller
- devp = gDXHardware.findDevice("VEN_8086",
- "DEV_2571");
- if (devp)
- {
- // Wanted driver: AGP440.SYS(?)
- //
- // Notes:
- // Not sure, need to verify with an actual 82865/75 (Dell 8300?)
-
- // Old driver: pci.sys
- // Version 5.01.21[9|6]5.xxxx
- //
- // Notes:
- // Default driver for Win2K? Not sure what the "correct" driver is -
- // maybe some variant of AGP440.SYS?
- exit_after_bad |= bad_hardware_dialog("Out of date Intel chipset driver",
- INTEL_CHIPSET_URL);
- }
- */
-
-
- // SiS(1039) AGP controllers (All)
- // These particular controllers may need drivers on both Win2K and WinXP
- //
- // 0001 SiS 530
- // 0002 SiS SG86C202(???)
- // 0003 SiS 648FX
- devp = gDXHardware.findDevice("VEN_1039",
- "DEV_0001|DEV_0002|DEV_0003");
- if (devp)
- {
- BOOL out_of_date = FALSE;
- // Wanted driver: SISAGPX.SYS
- //
- // Notes:
- // Not sure, need to verify with an actual 82865/75 (Dell 8300?)
-
- // Old driver: pci.sys
- // Version 5.01.21[9|6]5.xxxx
- //
- // Notes:
- // Default driver for Win2K? Not sure what the "correct" driver is -
- // maybe some variant of AGP440.SYS?
- if (dfilep = devp->findDriver("pci.sys"))
- {
- // Old driver: pci.sys
- // Version 5.01.21[9|6]5.xxxx
- //
- llwarns << "Detected pci.sys" << llendl;
- write_debug("Old driver (pci.sys) for SiS detected!");
- out_of_date = TRUE;
- }
-
- if (dfilep = devp->findDriver("sisagp.sys"))
- {
- // Old driver: pci.sys
- // Version 5.01.21[9|6]5.xxxx
- //
- llwarns << "Detected sisagp.sys" << llendl;
- write_debug("Old driver (sisagp.sys) for SiS detected!");
- out_of_date = TRUE;
- }
-
- if (dfilep = devp->findDriver("sisagpx.sys"))
- {
- // Old driver: pci.sys
- // Version 7.02.0000.xxxx
- //
- // Notes:
- // Default driver for Win2K? Not sure what the "correct" driver is -
- // maybe some variant of AGP440.SYS?
- if (dfilep->mVersion.getField(3) < 1160)
- {
- out_of_date = TRUE;
- llwarns << "Detected sisagpx.sys" << llendl;
- write_debug("Old driver (sisagpx.sys) for SiS detected!");
- }
- }
- if (out_of_date)
- {
- exit_after_bad |= bad_hardware_dialog("Out of date SiS chipset driver",
- SIS_CHIPSET_URL);
- }
- }
-
- return exit_after_bad;
-#else
- return TRUE;
-#endif
-}
-
void LLFeatureManager::applyRecommendedFeatures()
{
// see featuretable.txt
@@ -770,14 +473,14 @@ void LLFeatureManager::applyRecommendedFeatures()
dump();
#endif
- // Enabling AGP
- if (getRecommendedLevel("RenderAGP"))
+ // Enabling VBO
+ if (getRecommendedLevel("RenderVBO"))
{
- gSavedSettings.setBOOL("RenderUseAGP", TRUE);
+ gSavedSettings.setBOOL("RenderVBOEnable", TRUE);
}
else
{
- gSavedSettings.setBOOL("RenderUseAGP", FALSE);
+ gSavedSettings.setBOOL("RenderVBOEnable", FALSE);
}
// Anisotropic rendering