From 88553c9eb1aee59d092cbd73c64da82497fd095f Mon Sep 17 00:00:00 2001
From: Graham Madarasz <graham@lindenlab.com>
Date: Wed, 12 Jun 2013 12:19:48 -0700
Subject: [PATCH] Cleanup rollback and try point MIPs experiment to see if
 that's what is hosing the Mac on 10.6.8

---
 indra/llappearance/llpolymorph.cpp   | 10 ++--------
 indra/newview/llface.cpp             | 22 +++++-----------------
 indra/newview/llspatialpartition.cpp |  5 +----
 indra/newview/pipeline.cpp           |  2 +-
 4 files changed, 9 insertions(+), 30 deletions(-)

diff --git a/indra/llappearance/llpolymorph.cpp b/indra/llappearance/llpolymorph.cpp
index 5e5813b9ac..93c2f15a53 100644
--- a/indra/llappearance/llpolymorph.cpp
+++ b/indra/llappearance/llpolymorph.cpp
@@ -568,12 +568,6 @@ void LLPolyMorphTarget::apply( ESex avatar_sex )
 
 		F32 *maskWeightArray = (mVertMask) ? mVertMask->getMorphMaskWeights() : NULL;
 
-		LLVector4a default_norm;
-		LLVector4a default_binorm;
-
-		default_norm.set(0,1,0,1);
-		default_binorm.set(1,0,0,1);
-
 		for(U32 vert_index_morph = 0; vert_index_morph < mMorphData->mNumIndices; vert_index_morph++)
 		{
 			S32 vert_index_mesh = mMorphData->mVertexIndices[vert_index_morph];
@@ -606,7 +600,7 @@ void LLPolyMorphTarget::apply( ESex avatar_sex )
 
 			// guard against degenerate input data before we create NaNs below!
 			//
-			norm.normalize3fast_checked(&default_norm);
+			norm.normalize3fast();
 			normals[vert_index_mesh] = norm;
 
 			// calculate new binormals
@@ -626,7 +620,7 @@ void LLPolyMorphTarget::apply( ESex avatar_sex )
 			LLVector4a& normalized_binormal = binormals[vert_index_mesh];
 
 			normalized_binormal.setCross3(norm, tangent); 			
-			normalized_binormal.normalize3fast_checked(&default_binorm);
+			normalized_binormal.normalize3fast();
 
 			tex_coords[vert_index_mesh] += mMorphData->mTexCoords[vert_index_morph] * delta_weight * maskWeight;
 		}
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index b34370fa87..f021f4ed0f 100755
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -942,9 +942,7 @@ LLVector2 LLFace::surfaceToTexture(LLVector2 surface_coord, const LLVector4a& po
 		LLVector4a volume_normal;
 		LLVector3 v_normal(normal.getF32ptr());
 		volume_normal.load3(mDrawablep->getVOVolume()->agentDirectionToVolume(v_normal).mV);
-		LLVector4a default_norm;
-		default_norm.set(0,1,0,1);
-		volume_normal.normalize3fast_checked(&default_norm);
+		volume_normal.normalize3fast();
 		
 		if (texgen == LLTextureEntry::TEX_GEN_PLANAR)
 		{
@@ -1917,9 +1915,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
 							binormal.load3(t.mV);
 						}
 
-						LLVector4a default_binorm;
-						default_binorm.set(1,0,0,1);
-						binormal.normalize3fast_checked(&default_binorm);
+						binormal.normalize3fast();
 
 						LLVector2 tc = bump_tc[i];
 						tc += LLVector2( bump_s_primary_light_ray.dot3(tangent).getF32(), bump_t_primary_light_ray.dot3(binormal).getF32() );
@@ -2007,13 +2003,11 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
 			LLFastTimer t(FTM_FACE_GEOM_NORMAL);
 			mVertexBuffer->getNormalStrider(norm, mGeomIndex, mGeomCount, map_range);
 			F32* normals = (F32*) norm.get();
-			LLVector4a default_norm;
-			default_norm.set(0,1,0,1);
 			for (S32 i = 0; i < num_vertices; i++)
 			{	
 				LLVector4a normal;
 				mat_normal.rotate(vf.mNormals[i], normal);
-				normal.normalize3fast_checked(&default_norm);
+				normal.normalize3fast();
 				normal.store4a(normals);
 				normals += 4;
 			}
@@ -2036,14 +2030,11 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
 			mask.clear();
 			mask.setElement<3>();
 
-			LLVector4a default_tangent;
-			default_tangent.set(0,0,1,1);
-
 			for (S32 i = 0; i < num_vertices; i++)
 			{
 				LLVector4a tangent_out;
 				mat_normal.rotate(vf.mTangents[i], tangent_out);
-				tangent_out.normalize3fast_checked(&default_tangent);
+				tangent_out.normalize3fast();
 				tangent_out.setSelectWithMask(mask, vf.mTangents[i], tangent_out);
 				tangent_out.store4a(tangents);
 				
@@ -2258,10 +2249,7 @@ BOOL LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
 		dist *= 16.f;
 	}
 
-	LLVector4a default_lookat;
-	default_lookat.set(0,0,1,1);
-
-	lookAt.normalize3fast_checked(&default_lookat);	
+	lookAt.normalize3fast();	
 
 	//get area of circle around node
 	F32 app_angle = atanf((F32) sqrt(size_squared) / dist);
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index dc99fd469b..78401020a6 100755
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -1259,15 +1259,12 @@ F32 LLSpatialPartition::calcDistance(LLSpatialGroup* group, LLCamera& camera)
 
 	F32 dist = 0.f;
 
-	LLVector4a default_eyevec;
-	default_eyevec.set(0,0,1,1);
-
 	if (group->mDrawMap.find(LLRenderPass::PASS_ALPHA) != group->mDrawMap.end())
 	{
 		LLVector4a v = eye;
 
 		dist = eye.getLength3().getF32();
-		eye.normalize3fast_checked(&default_eyevec);
+		eye.normalize3fast();
 
 		if (!group->isState(LLSpatialGroup::ALPHA_DIRTY))
 		{
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 72912db041..a2a5552f3c 100755
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -1395,7 +1395,7 @@ void LLPipeline::createLUTBuffers()
 			LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_R16F, lightResX, lightResY, GL_RED, GL_FLOAT, ls, false);
 			//LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_UNSIGNED_BYTE, lightResX, lightResY, GL_RED, GL_UNSIGNED_BYTE, ls, false);
 			gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
-			gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR);
+			gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_POINT);
 			
 			delete [] ls;
 		}
-- 
GitLab