summaryrefslogtreecommitdiff
path: root/indra/newview/llfeaturemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfeaturemanager.cpp')
-rw-r--r--indra/newview/llfeaturemanager.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index 9f3df54b05..6d6dc675de 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -30,7 +30,6 @@
#include <fstream>
#include <boost/regex.hpp>
-#include <boost/assign/list_of.hpp>
#include "llfeaturemanager.h"
#include "lldir.h"
@@ -184,15 +183,15 @@ void LLFeatureList::dump()
}
}
-static const std::vector<std::string> sGraphicsLevelNames = boost::assign::list_of
- ("Low")
- ("LowMid")
- ("Mid")
- ("MidHigh")
- ("High")
- ("HighUltra")
- ("Ultra")
-;
+static const std::vector<std::string> sGraphicsLevelNames = {
+ "Low",
+ "LowMid",
+ "Mid",
+ "MidHigh",
+ "High",
+ "HighUltra",
+ "Ultra"
+};
U32 LLFeatureManager::getMaxGraphicsLevel() const
{
@@ -260,7 +259,6 @@ bool LLFeatureManager::loadFeatureTables()
// *TODO - if I or anyone else adds something else to the skipped list
// make this data driven. Put it in the feature table and parse it
// correctly
- mSkippedFeatures.insert("RenderAnisotropic");
mSkippedFeatures.insert("RenderGamma");
mSkippedFeatures.insert("RenderVBOEnable");
mSkippedFeatures.insert("RenderFogRatio");
@@ -446,9 +444,9 @@ bool LLFeatureManager::loadGPUClass()
if (gGLManager.getRawGLString().find("Radeon") != std::string::npos && checkRDNA35() && gGLManager.mDriverVersionVendorString.find("25.") != std::string::npos)
{
- LL_WARNS("RenderInit") << "Detected AMD RDNA3.5 GPU on a known bad driver; disabling shader profiling to prevent freezes." << LL_ENDL;
- mSkipProfiling = true;
- LLGLSLShader::sCanProfile = false;
+ LL_WARNS("RenderInit") << "Detected AMD RDNA3.5 GPU on a known bad driver; disabling benchmark and occlusion culling to prevent freezes." << LL_ENDL;
+ gSavedSettings.setBOOL("SkipBenchmark", true);
+ gSavedSettings.setBOOL("UseOcclusion", false);
}
if (!gSavedSettings.getBOOL("SkipBenchmark"))
@@ -509,17 +507,16 @@ bool LLFeatureManager::loadGPUClass()
mGPUClass = GPU_CLASS_5;
}
- #if LL_WINDOWS
- const F32Gigabytes MIN_PHYSICAL_MEMORY(8);
-
LLMemory::updateMemoryInfo();
+ #if LL_WINDOWS || LL_LINUX
+ const F32Gigabytes MIN_PHYSICAL_MEMORY(8);
F32Gigabytes physical_mem = LLMemory::getMaxMemKB();
if (MIN_PHYSICAL_MEMORY > physical_mem && mGPUClass > GPU_CLASS_1)
{
// reduce quality on systems that don't have enough memory
mGPUClass = (EGPUClass)(mGPUClass - 1);
}
- #endif //LL_WINDOWS
+ #endif //LL_WINDOWS || LL_LINUX
} //end if benchmark
else
{
@@ -755,6 +752,10 @@ void LLFeatureManager::applyBaseMasks()
{
maskFeatures("VRAMLT2GB");
}
+ if (!gGLManager.mHasAnisotropic || 2.f > gGLManager.mMaxAnisotropy)
+ {
+ maskFeatures("AnisotropicMissing");
+ }
if (gGLManager.mGLVersion < 3.99f)
{
maskFeatures("GL3");