Fix rendering artifacts on Mac Mobile GeForce cards
parent
abb72591d4
commit
b2344cfd13
|
|
@ -280,6 +280,7 @@ void LLGLSLShader::unload()
|
|||
mTexture.clear();
|
||||
mUniform.clear();
|
||||
mShaderFiles.clear();
|
||||
mDefines.clear();
|
||||
|
||||
if (mProgramObject)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -622,6 +622,13 @@ void main()
|
|||
|
||||
#else
|
||||
frag_data[0] = final_color;
|
||||
|
||||
#ifdef UGLY_MAC_HACK
|
||||
// magic spec exp clamp fixes rendering artifacts on older mac GF drivers
|
||||
//
|
||||
final_specular = min(final_specular, vec4(1.0f, 1.0f, 1.0f, 0.125f));
|
||||
#endif
|
||||
|
||||
frag_data[1] = final_specular; // XYZ = Specular color. W = Specular exponent.
|
||||
frag_data[2] = final_normal; // XY = Normal. Z = Env. intensity.
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1210,8 +1210,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
|
|||
gDeferredSkinnedAlphaProgram.mFeatures.isAlphaLighting = true;
|
||||
gDeferredSkinnedAlphaProgram.mFeatures.disableTextureIndex = true;
|
||||
gDeferredSkinnedAlphaProgram.mShaderFiles.clear();
|
||||
gDeferredSkinnedAlphaProgram.mDefines.clear();
|
||||
|
||||
gDeferredSkinnedAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER_ARB));
|
||||
gDeferredSkinnedAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaF.glsl", GL_FRAGMENT_SHADER_ARB));
|
||||
gDeferredSkinnedAlphaProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED];
|
||||
|
|
@ -1262,6 +1260,16 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
|
|||
gDeferredMaterialProgram[i].addPermutation("HAS_SUN_SHADOW", mVertexShaderLevel[SHADER_DEFERRED] > 1 ? "1" : "0");
|
||||
bool has_skin = i & 0x10;
|
||||
gDeferredMaterialProgram[i].addPermutation("HAS_SKIN",has_skin ? "1" : "0");
|
||||
|
||||
#if LL_DARWIN
|
||||
// include spec exp clamp to fix older mac rendering artifacts
|
||||
//
|
||||
if (gGLManager.mIsMobileGF)
|
||||
{
|
||||
gDeferredMaterialProgram[i].addPermutation("UGLY_MAC_HACK","1");
|
||||
}
|
||||
#endif
|
||||
|
||||
if (has_skin)
|
||||
{
|
||||
gDeferredMaterialProgram[i].mFeatures.hasObjectSkinning = true;
|
||||
|
|
@ -1409,8 +1417,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
|
|||
}
|
||||
|
||||
gDeferredAlphaProgram.mShaderFiles.clear();
|
||||
gDeferredAlphaProgram.mDefines.clear();
|
||||
|
||||
gDeferredAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER_ARB));
|
||||
gDeferredAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaF.glsl", GL_FRAGMENT_SHADER_ARB));
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_INDEXED_TEX", "1");
|
||||
|
|
|
|||
Loading…
Reference in New Issue