diff --git a/.gitignore b/.gitignore
index 839d14bc0df0f4a1515480a4228836ac21a0be1e..e9b544a6ce86890c25db16c585fe80953f0256b0 100755
--- a/.gitignore
+++ b/.gitignore
@@ -7,9 +7,18 @@
 *.pyc
 *.rej
 *.swp
+*.vcxproj
+*.filters
+*.sln
+*.depend
+*.stamp
+*.rc
+
 *~
 
 # Specific paths and/or names
+CMakeCache.txt
+cmake_install.cmake
 LICENSES
 build-darwin-*
 build-linux-*
@@ -17,6 +26,10 @@ debian/files
 debian/secondlife-appearance-utility*
 debian/secondlife-viewer*
 indra/.distcc
+indra/cmake/*
+indra/out/*
+
+indra/packages/*
 build-vc80/
 build-vc100/
 build-vc120/
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 8c96ccd10748041f1751f360ac9dbff970843c2d..bea54f0b69f48984cd553147d18339e6ec555264 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -9235,7 +9235,7 @@
   <key>RenderMaxVRAMBudget</key>
   <map>
     <key>Comment</key>
-    <string>Maximum amount of texture memory to budget for, or 0 for autodetect.  Requires restart.</string>
+    <string>Maximum amount of texture memory to budget for (in MB), or 0 for autodetect.  Requires restart.</string>
     <key>Persist</key>
     <integer>1</integer>
     <key>Type</key>
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index cd9ff0192e9f892021790e928f7c97b510fe395d..684cf55b6b2721cbe66c212e37e198fd510598a6 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -535,7 +535,6 @@ void LLDrawPoolBump::endFullbrightShiny()
 	if( cube_map )
 	{
 		cube_map->disable();
-        cube_map->restoreMatrix();
         if (shader->mFeatures.hasReflectionProbes)
         {
             gPipeline.unbindReflectionProbes(*shader);
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index b3403fda0fda636798c542bae530cc9b00c0aa85..81b3c23417dda7d27e0100979796b4e6ec5a1fad 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1215,6 +1215,16 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()
 	ctrl_shadow->setEnabled(enabled);
 	shadow_text->setEnabled(enabled);
 
+    if (!LLFeatureManager::instance().isFeatureAvailable("RenderFSAASamples"))
+    {
+        getChildView("fsaa")->setEnabled(FALSE);
+    }
+
+    if (!LLFeatureManager::instance().isFeatureAvailable("RenderReflectionProbeDetail"))
+    {
+        getChildView("ReflectionDetail")->setEnabled(FALSE);
+    }
+
 	// Hardware settings
 	
 	if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderCompressTextures"))
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 47cb9e9732d327d7ebffc45c55b07ba812b096a8..2e76103773a1ee7c38c35e78984759d4ae50775d 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -4062,7 +4062,7 @@ void LLViewerObject::updateTextures()
 
 void LLViewerObject::boostTexturePriority(BOOL boost_children /* = TRUE */)
 {
-	if (isDead())
+	if (isDead() || !getVolume())
 	{
 		return;
 	}
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index dc0785f9901fac0c9a9a794c03d4a96904b259b8..816fa6607e7c018ab8fae7544f3cdf105d37edaf 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -789,7 +789,33 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
 		max_value = llmin((S32) mObjects.size(), mCurLazyUpdateIndex + num_updates);
 	}
 
-#if 0
+	// Iterate through some of the objects and lazy update their texture priorities
+	for (i = mCurLazyUpdateIndex; i < max_value; i++)
+	{
+		objectp = mObjects[i];
+		if (!objectp->isDead())
+		{
+			num_objects++;
+
+			//  Update distance & gpw 
+			objectp->setPixelAreaAndAngle(agent); // Also sets the approx. pixel area
+			objectp->updateTextures();	// Update the image levels of textures for this object.
+		}
+	}
+
+	mCurLazyUpdateIndex = max_value;
+	if (mCurLazyUpdateIndex == mObjects.size())
+	{
+		// restart
+		mCurLazyUpdateIndex = 0;
+		mCurBin = 0; // keep in sync with index (mObjects.size() could have changed)
+	}
+	else
+	{
+		mCurBin = (mCurBin + 1) % NUM_BINS;
+	}
+
+#if 1
 	// Slam priorities for textures that we care about (hovered, selected, and focused)
 	// Hovered
 	// Assumes only one level deep of parenting
@@ -822,32 +848,6 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
 	LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func);
 #endif
 
-	// Iterate through some of the objects and lazy update their texture priorities
-	for (i = mCurLazyUpdateIndex; i < max_value; i++)
-	{
-		objectp = mObjects[i];
-		if (!objectp->isDead())
-		{
-			num_objects++;
-
-			//  Update distance & gpw 
-			objectp->setPixelAreaAndAngle(agent); // Also sets the approx. pixel area
-			objectp->updateTextures();	// Update the image levels of textures for this object.
-		}
-	}
-
-	mCurLazyUpdateIndex = max_value;
-	if (mCurLazyUpdateIndex == mObjects.size())
-	{
-		// restart
-		mCurLazyUpdateIndex = 0;
-		mCurBin = 0; // keep in sync with index (mObjects.size() could have changed)
-	}
-	else
-	{
-		mCurBin = (mCurBin + 1) % NUM_BINS;
-	}
-
 	LLVOAvatar::cullAvatarsByPixelArea();
 }
 
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 41b57b8a6ba22df5e2bc6853bd7ab54fb5e86ef1..038935963d73b78c8e06077772fb1af9d15b5a01 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -800,7 +800,13 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
 		{
 			continue;
 		}
-		
+
+        // clear out boost selected periodically
+        if (imagep->getBoostLevel() == LLGLTexture::BOOST_SELECTED)
+        {
+            imagep->setBoostLevel(LLGLTexture::BOOST_NONE);
+        }
+
 		F32 vsize;
 		F32 old_size = face->getVirtualSize();
 
diff --git a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml
index 4a08cc5285bb9fd2c04c94a8bf8ce529238892c6..75b50c0e395bfe5ff0cd47d42b93c139671f7938 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml
@@ -666,7 +666,7 @@
    layout="topleft"
    left_delta="130"
    top_delta="0"
-   name="ReflectionDetial"
+   name="ReflectionDetail"
    width="150">
     <combo_box.item
       label="Disabled"