summaryrefslogtreecommitdiff
path: root/indra/newview/llfeaturemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfeaturemanager.cpp')
-rwxr-xr-x[-rw-r--r--]indra/newview/llfeaturemanager.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index 2b39b771e7..ddb9d3bc43 100644..100755
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -479,6 +479,7 @@ void LLFeatureManager::parseGPUTable(std::string filename)
mGPUString = label;
mGPUClass = (EGPUClass) strtol(cls.c_str(), NULL, 10);
mGPUSupported = (BOOL) strtol(supported.c_str(), NULL, 10);
+ sscanf(expected_gl_version.c_str(), "%f", &mExpectedGLVersion);
}
}
#if LL_EXPORT_GPU_TABLE
@@ -704,6 +705,20 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)
switch (level)
{
case 0:
+#if LL_DARWIN
+ // This Mac-specific change is to insure that we force 'Basic Shaders' for all Mac
+ // systems which support them instead of falling back to fixed-function unnecessarily
+ // MAINT-2157
+ //
+ if (gGLManager.mGLVersion < 2.1f)
+ {
+ maskFeatures("LowFixedFunction");
+ }
+ else
+ { //same as low, but with "Basic Shaders" enabled
+ maskFeatures("Low");
+ }
+#else
if (gGLManager.mGLVersion < 3.f || gGLManager.mIsIntel)
{ //only use fixed function by default if GL version < 3.0 or this is an intel graphics chip
maskFeatures("LowFixedFunction");
@@ -712,6 +727,7 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)
{ //same as low, but with "Basic Shaders" enabled
maskFeatures("Low");
}
+#endif
break;
case 1:
maskFeatures("LowMid");