diff options
author | Steven Bennetts <steve@lindenlab.com> | 2007-03-02 21:25:50 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2007-03-02 21:25:50 +0000 |
commit | 4dabd9c0472deb49573fdafef2fa413e59703f19 (patch) | |
tree | 06c680d6a2047e03838d6548bccd26c7baf9d652 /indra/newview/llfeaturemanager.cpp | |
parent | d4462963c6ba5db2088723bbedc7b60f1184c594 (diff) |
merge release@58699 beta-1-14-0@58707 -> release
Diffstat (limited to 'indra/newview/llfeaturemanager.cpp')
-rw-r--r-- | indra/newview/llfeaturemanager.cpp | 323 |
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 |