diff options
author | Leslie Linden <leslie@lindenlab.com> | 2011-05-19 17:28:23 -0700 |
---|---|---|
committer | Leslie Linden <leslie@lindenlab.com> | 2011-05-19 17:28:23 -0700 |
commit | 19a06478d9863c451450b7c9e2f931ba587a3cec (patch) | |
tree | c7a700998ebd071b447ae1e50fb08be6f1eaf004 /indra/llrender/llgl.cpp | |
parent | a704394bb50012e3e8d3be358d286188afccbdf2 (diff) |
SH-1618 FIX -- Lighting and shadows crash ATI macs
* Fixed ATI mac "lighting and shadows" related crash
* Fixed up numerous GL errors on macs related to multiple color formats,
the use of glEnable/glDisable on textures above the texture unit count
and old ATI-specific code that was not appropriate for Mac.
* Disabled SSAO for ATI macs due to it not working with shadows
* Ongoing work to properly get shadows and SSAO functioning on ATI macs is required.
Reviewed by davep
Diffstat (limited to 'indra/llrender/llgl.cpp')
-rw-r--r-- | indra/llrender/llgl.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index f29ee0e57e..a460912e70 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -328,6 +328,7 @@ LLGLManager::LLGLManager() : mHasShaderObjects(FALSE), mHasVertexShader(FALSE), mHasFragmentShader(FALSE), + mNumTextureImageUnits(0), mHasOcclusionQuery(FALSE), mHasOcclusionQuery2(FALSE), mHasPointParameters(FALSE), @@ -534,6 +535,13 @@ bool LLGLManager::initGL() return false; } + if (mHasFragmentShader) + { + GLint num_tex_image_units; + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS_ARB, &num_tex_image_units); + mNumTextureImageUnits = num_tex_image_units; + } + setToDebugGPU(); initGLStates(); @@ -878,11 +886,13 @@ void LLGLManager::initExtensions() LL_INFOS("RenderInit") << "Disabling mip-map generation for Intel GPUs" << LL_ENDL; mHasMipMapGeneration = FALSE; } +#if !LL_DARWIN if (mIsATI && mHasMipMapGeneration) { LL_INFOS("RenderInit") << "Disabling mip-map generation for ATI GPUs (performance opt)" << LL_ENDL; mHasMipMapGeneration = FALSE; } +#endif // Misc glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, (GLint*) &mGLMaxVertexRange); |