diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp
index a96df6ae9accab857efdd7ad70b741c48ef88f62..45ad3a32251b79c7a86c383c4d998a4a4bd265e8 100644
--- a/indra/llcharacter/lljoint.cpp
+++ b/indra/llcharacter/lljoint.cpp
@@ -1038,7 +1038,7 @@ void LLJoint::updateWorldMatrix()
 	{
 		sNumUpdates++;
 		mXform.updateMatrix(FALSE);
-        mWorldMatrix.loadu(mXform.getWorldMatrix());
+        mWorldMatrix = mXform.getWorldMatrix();
 		mDirtyFlags = 0x0;
 	}
 }
diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index 6e8f45d1bf280e4c48e6ce5eb043e2b5d9214af5..4f22f3d098cda0a1efd1dcbc1cadd3d8bc300aba 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -808,7 +808,7 @@ ll_convert_cp_forms(ll_convert_wstr_alias, std::wstring, std::string,  ll_conver
  * Converts incoming string into utf8 string
  *
  */
-LL_COMMON_API std::string ll_convert_string_to_utf8_string(std::string_view in);
+LL_COMMON_API std::string ll_convert_string_to_utf8_string(const std::string& in);
 
 /// Get Windows message string for passed GetLastError() code
 // VS 2013 doesn't let us forward-declare this template, which is what we
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 4375dab7f04d5e3af6151f84ea61f29b3069fa15..e88e4a101b13f65c8ff82786019fa4bce5b89949 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -1378,10 +1378,6 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
         case GL_ALPHA8:
             intformat = GL_COMPRESSED_ALPHA;
             break;
-        case GL_RED:
-        case GL_R8:
-            intformat = GL_COMPRESSED_RED;
-            break;
         default:
             LL_WARNS() << "Could not compress format: " << std::hex << intformat << std::dec << LL_ENDL;
             break;
@@ -1398,7 +1394,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
 
 void LLImageGL::setManualImage3D(U32 target, S32 miplevel, S32 intformat, S32 width, S32 height, S32 depth, U32 pixformat, U32 pixtype, const void* pixels, bool allow_compression)
 {
-	LL_RECORD_BLOCK_TIME(FTM_SET_MANUAL_IMAGE);
+    LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
 	stop_glerror();
 	glTexImage3D(target, miplevel, intformat, width, height, depth, 0, pixformat, pixtype, pixels);
 	stop_glerror();
diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h
index 9001ca310a79e2f965f964ed558c43eaddb16c18..251d6bf5bb852be48ebf68b1d30d46ce747f81bd 100644
--- a/indra/llwindow/llwindow.h
+++ b/indra/llwindow/llwindow.h
@@ -133,7 +133,6 @@ class LLWindow : public LLInstanceTracker<LLWindow>
 	virtual BOOL pasteTextFromPrimary(LLWString &dst);
 	virtual BOOL copyTextToPrimary(const LLWString &src);
  
-	virtual void setWindowTitle(const std::string& title) {}
 	virtual void flashIcon(F32 seconds) = 0;
 	virtual F32 getGamma() = 0;
 	virtual BOOL setGamma(const F32 gamma) = 0; // Set the gamma
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index bdfb281d550100838becf6ac4baaa3af38f19f7a..2d379ceb42a6696db95ae48543f77e8e3989fab7 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -1256,7 +1256,7 @@ BOOL LLWindowMacOSX::copyTextToClipboard(const LLWString &s)
 	return result;
 }
 
-void LLWindowMacOSX::setWindowTitle(const std::string& title)
+void LLWindowMacOSX::setTitle(const std::string title)
 {
 	setTitle(title);
 }
diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h
index ca8175f21729a2d220149eeebd761f59f65d0375..8067e8644bf59545e2ee4b03a3943fda8cecf700 100644
--- a/indra/llwindow/llwindowmacosx.h
+++ b/indra/llwindow/llwindowmacosx.h
@@ -76,7 +76,7 @@ class LLWindowMacOSX : public LLWindow
 	BOOL isClipboardTextAvailable() override;
 	BOOL pasteTextFromClipboard(LLWString &dst) override;
 	BOOL copyTextToClipboard(const LLWString & src) override;
-	void setWindowTitle(const std::string& title) override;
+	void setTitle(const std::string title) override;
 	void flashIcon(F32 seconds) override;
 	F32 getGamma() override;
 	BOOL setGamma(const F32 gamma) override; // Set the gamma
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index af2440a0d8f2eb31e129b1259f4bba729be20ce5..1ff43e7f35b1784db7e371ed6ca3ca04b138c9ce 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -2908,7 +2908,7 @@ std::vector<std::string> LLWindowSDL::getDynamicFallbackFontList()
 #endif
 }
 
-void LLWindowSDL::setWindowTitle(const std::string& title)
+void LLWindowSDL::setTitle(const std::string title)
 {
 	if(mWindow)
 	{
diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h
index a6e45f21823bd11011c1b1c181b726726eb46aeb..115ac6b5b48443d0f98220b961aeb519219d7cd1 100644
--- a/indra/llwindow/llwindowsdl.h
+++ b/indra/llwindow/llwindowsdl.h
@@ -91,7 +91,7 @@ class LLWindowSDL final : public LLWindow
 	/*virtual*/ BOOL isPrimaryTextAvailable() override;
 	/*virtual*/ BOOL pasteTextFromPrimary(LLWString &dst) override;
 	/*virtual*/ BOOL copyTextToPrimary(const LLWString & src) override;
-	/*virtual*/ void setWindowTitle(const std::string& title) override;
+	/*virtual*/ void setTitle(const std::string title) override;
 	/*virtual*/ void flashIcon(F32 seconds) override;
 	/*virtual*/ F32 getGamma() override;
 	/*virtual*/ BOOL setGamma(const F32 gamma) override; // Set the gamma
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index bf742d0a75c8602dac3c0169e63110fe945ef503..061d9590fa07e6a4a79d614bfc03326eaa507647 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -1999,7 +1999,7 @@ void LLWindowWin32::setTitle(const std::string title)
     // to support non-ascii usernames (and region names?)
     mWindowThread->post([=]()
         {
-            SetWindowTextA(mWindowHandle, title.c_str());
+			SetWindowText(mWindowHandle, ll_convert_string_to_wide(title).c_str());
         });
 }
 
@@ -2260,13 +2260,6 @@ void LLWindowWin32::gatherInput()
         {
             continue;
         }
-
-        // For async host by name support.  Really hacky.
-        if (gAsyncMsgCallback && (LL_WM_HOST_RESOLVED == msg.message))
-        {
-            LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("gi - callback");
-            gAsyncMsgCallback(msg);
-        }
     }
 
     {
@@ -3372,11 +3365,6 @@ BOOL LLWindowWin32::pasteTextFromClipboard(LLWString &dst)
 	return success;
 }
 
-void LLWindowWin32::setWindowTitle(const std::string& title)
-{
-	SetWindowText(mWindowHandle, ll_convert_string_to_wide(title).c_str());
-}
-
 BOOL LLWindowWin32::copyTextToClipboard(const LLWString& wstr)
 {
 	BOOL success = FALSE;
diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h
index 0e355bc337349e101a149f9513fc24e20df58c2c..0eb6dd981effe9a40998507dd8f6c97f383f1005 100644
--- a/indra/llwindow/llwindowwin32.h
+++ b/indra/llwindow/llwindowwin32.h
@@ -123,7 +123,6 @@ class LLWindowWin32 : public LLWindow
 	/*virtual*/ BOOL isClipboardTextAvailable();
 	/*virtual*/ BOOL pasteTextFromClipboard(LLWString &dst);
 	/*virtual*/ BOOL copyTextToClipboard(const LLWString &src);
-	/*virtual*/ void setWindowTitle(const std::string& title) override;
 	/*virtual*/ void flashIcon(F32 seconds);
 	/*virtual*/ F32 getGamma();
 	/*virtual*/ BOOL setGamma(const F32 gamma); // Set the gamma
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 29416bdb263b60cc1fab74fba798394b461563be..40d8f48c991c194bb7d1a4169ec74972db6008d5 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -2213,7 +2213,7 @@ LLVector3 LLAgentCamera::getCameraOffsetInitial()
     // getCameraOffsetInitial and getFocusOffsetInitial can be called on update from idle before init()
     static LLCachedControl<LLVector3> camera_offset_initial (gSavedSettings, "CameraOffsetRearView", LLVector3());
 // [RLVa:KB] - @setcam_eyeoffset
-	return convert_from_llsd<LLVector3>( (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? camera_offset_initial : mRlvCameraOffsetInitialControl->get(), TYPE_VEC3, "");
+	return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? camera_offset_initial : convert_from_llsd<LLVector3>(mRlvCameraOffsetInitialControl->get(), TYPE_VEC3, "");
 // [/RLVa:KB]	
 //	return camera_offset_initial;
 }
@@ -2222,7 +2222,7 @@ LLVector3d LLAgentCamera::getFocusOffsetInitial()
 {
     static LLCachedControl<LLVector3d> focus_offset_initial(gSavedSettings, "FocusOffsetRearView", LLVector3d());
 // [RLVa:KB] - @setcam_focusoffset
-	return convert_from_llsd<LLVector3d>( (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? focus_offset_initial : mRlvFocusOffsetInitialControl->get(), TYPE_VEC3D, "");
+	return (ECameraPreset::CAMERA_RLV_SETCAM_VIEW != mCameraPreset) ? focus_offset_initial :convert_from_llsd<LLVector3d>(mRlvFocusOffsetInitialControl->get(), TYPE_VEC3D, "");
 // [/RLVa:KB]
 //	return focus_offset_initial;
 }
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 2cc39fc76fa6930424182d31518005eab895361b..c13ea9dfdded518a85fa94a9c02868066cf520e0 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -5621,7 +5621,7 @@ void LLAppViewer::handleLoginComplete()
 	{
 		setCrashUserMetadata(gAgent.getID(), gAgentAvatarp->getFullname());
 		gWindowTitle.append(" - ").append(gAgentAvatarp->getFullname());
-		gViewerWindow->setWindowTitle(gWindowTitle);
+		gViewerWindow->getWindow()->setTitle(gWindowTitle);
 	}
 
 	mOnLoginCompleted();
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index abab043f04a028f5cec3198ce01b7db94342541c..8547462899eb5460e5e1995e1ac7ea9f44d0dd81 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -1416,12 +1416,9 @@ LLCamera LLSpatialBridge::transformCamera(LLCamera& camera)
 
 void LLSpatialBridge::transformExtents(const LLVector4a* src, LLVector4a* dst)
 {
-    LLMatrix4 mat = mDrawable->getXform()->getWorldMatrix();
+    LLMatrix4a mat = mDrawable->getXform()->getWorldMatrix();
     mat.invert();
-
-    LLMatrix4a world_to_bridge(mat);
-
-    matMulBoundBox(world_to_bridge, src, dst);
+	mat.mulBoundBox(src,dst);
 }
 
 
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index a2f03baff220e5ffe7002f1fd956cc12ee52496b..a92afead03745708c18de18a5be2c729c903cc2b 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -107,7 +107,7 @@ static void prepare_alpha_shader(LLGLSLShader* shader, bool textureGamma, bool d
         shader->bind();
     }
     shader->uniform1i(LLShaderMgr::NO_ATMO, (LLPipeline::sRenderingHUDs) ? 1 : 0);
-    shader->uniform1f(LLShaderMgr::DISPLAY_GAMMA, (gamma > 0.1f) ? 1.0f / gamma : (1.0f / 2.2f));
+    //shader->uniform1f(LLShaderMgr::DISPLAY_GAMMA, (gamma > 0.1f) ? 1.0f / gamma : (1.0f / 2.2f));
 
     if (LLPipeline::sImpostorRender)
     {
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index eda336f9abc85ca065d48337c78052cf16c05707..b15573d728fd0aedc46d437c426a1e476d246d8a 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -934,13 +934,3 @@ LLColor3 LLDrawPoolAvatar::getDebugColor() const
 {
 	return LLColor3(0.f, 1.f, 0.f);
 }
-
-
-LLVertexBufferAvatar::LLVertexBufferAvatar()
-: LLVertexBuffer(sDataMask, 
-	GL_STREAM_DRAW_ARB) //avatars are always stream draw due to morph targets
-{
-    LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR
-}
-
-
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index db0fb2a3940270bf5ba9f10385ce2565f9529e9a..1ab81eccb8fe322f266e48d0778e553b9d8e3cb0 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -582,10 +582,12 @@ void LLDrawPoolWater::renderWater()
         if (deferred_render)
         {
             if (shader->getUniformLocation(LLShaderMgr::DEFERRED_NORM_MATRIX) >= 0)
-            {
-                glh::matrix4f norm_mat = get_current_modelview().inverse().transpose();
-                shader->uniformMatrix4fv(LLShaderMgr::DEFERRED_NORM_MATRIX, 1, FALSE, norm_mat.m);
-            }
+			{
+				LLMatrix4a norm_mat = get_current_modelview();
+				norm_mat.invert();
+				norm_mat.transpose();
+				shader->uniformMatrix4fv(LLShaderMgr::DEFERRED_NORM_MATRIX, 1, FALSE, norm_mat.getF32ptr());
+			}
         }
 
         shader->uniform2fv(LLShaderMgr::DEFERRED_SCREEN_RES, 1, screenRes);
@@ -615,7 +617,7 @@ void LLDrawPoolWater::renderWater()
         shader->uniform4fv(LLShaderMgr::WATER_FOGCOLOR, 1, fog_color.mV);
 
         shader->uniform3fv(LLShaderMgr::WATER_SPECULAR, 1, light_diffuse.mV);
-        shader->uniform1f(LLShaderMgr::WATER_SPECULAR_EXP, light_exp);
+        //shader->uniform1f(LLShaderMgr::WATER_SPECULAR_EXP, light_exp);
 
         shader->uniform2fv(LLShaderMgr::WATER_WAVE_DIR1, 1, pwater->getWave1Dir().mV);
         shader->uniform2fv(LLShaderMgr::WATER_WAVE_DIR2, 1, pwater->getWave2Dir().mV);
@@ -632,8 +634,8 @@ void LLDrawPoolWater::renderWater()
 
         shader->uniform1i(LLShaderMgr::SUN_UP_FACTOR, sun_up ? 1 : 0);
         shader->uniform1f(LLShaderMgr::WATER_SUN_ANGLE, sunAngle);
-        shader->uniform1f(LLShaderMgr::WATER_SCALED_ANGLE, scaledAngle);
-        shader->uniform1f(LLShaderMgr::WATER_SUN_ANGLE2, 0.1f + 0.2f * sunAngle);
+        //shader->uniform1f(LLShaderMgr::WATER_SCALED_ANGLE, scaledAngle);
+        //shader->uniform1f(LLShaderMgr::WATER_SUN_ANGLE2, 0.1f + 0.2f * sunAngle);
         shader->uniform1i(LLShaderMgr::WATER_EDGE_FACTOR, edge ? 1 : 0);
 
         LLVector4 rotated_light_direction = environment.getRotatedLightNorm();
@@ -678,7 +680,7 @@ void LLDrawPoolWater::renderWater()
         shader->disableTexture(LLShaderMgr::BUMP_MAP);
         shader->disableTexture(LLShaderMgr::DIFFUSE_MAP);
         shader->disableTexture(LLShaderMgr::WATER_REFTEX);
-        shader->disableTexture(LLShaderMgr::WATER_SCREENDEPTH);
+        //shader->disableTexture(LLShaderMgr::WATER_SCREENDEPTH);
 
         // clean up
         shader->unbind();
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index 4d3bf02a9c354c42709f9669bdd02e3b1e3070b1..cd583e85268bccec3c253783a0ad7aacb8c6accb 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -200,9 +200,9 @@ void LLDrawPoolWLSky::renderSkyHaze() const
             sky_shader->bindTexture(LLShaderMgr::HALO_MAP, halo_tex);
 
             LLSettingsVOSky* voskysetp = ((LLSettingsVOSky*)mCurrentSky.get());
-            F32 moisture_level = (float)voskysetp->getSkyMoistureLevelFast();
-            F32 droplet_radius = (float)voskysetp->getSkyDropletRadiusFast();
-            F32 ice_level = (float)voskysetp->getSkyIceLevelFast();
+            F32 moisture_level = (float)voskysetp->getSkyMoistureLevel();
+            F32 droplet_radius = (float)voskysetp->getSkyDropletRadius();
+            F32 ice_level = (float)voskysetp->getSkyIceLevel();
 
             // hobble halos and rainbows when there's no light source to generate them
             if (!voskysetp->getIsSunUp() && !voskysetp->getIsMoonUp())
@@ -292,7 +292,7 @@ void LLDrawPoolWLSky::renderStarsDeferred() const
 
     LLSettingsVOSky* voskysetp = ((LLSettingsVOSky*)mCurrentSky.get());
 
-    F32 star_alpha = voskysetp->getStarBrightnessFast() / 500.0f;
+    F32 star_alpha = voskysetp->getStarBrightness() / 500.0f;
 
 	// If start_brightness is not set, exit
 	if(star_alpha < 0.001f)
@@ -368,7 +368,7 @@ void LLDrawPoolWLSky::renderSkyClouds() const
 
         LLSettingsVOSky* voskysetp = ((LLSettingsVOSky*)mCurrentSky.get());
 
-        F32 cloud_variance = voskysetp->getCloudVarianceFast();
+        F32 cloud_variance = voskysetp->getCloudVariance();
         F32 blend_factor = voskysetp->getBlendFactor();
 
         // if we even have sun disc textures to work with...
@@ -394,7 +394,7 @@ void LLDrawPoolWLSky::renderSkyClouds() const
 
         cloud_shader->uniform1f(LLShaderMgr::BLEND_FACTOR, blend_factor);
         cloud_shader->uniform1f(LLShaderMgr::CLOUD_VARIANCE, cloud_variance);
-        cloudshader->uniform1f(LLShaderMgr::SUN_MOON_GLOW_FACTOR, psky->getSunMoonGlowFactor());
+        cloud_shader->uniform1f(LLShaderMgr::SUN_MOON_GLOW_FACTOR, voskysetp->getSunMoonGlowFactor());
 
 		/// Render the skydome
         renderDome(cloud_shader);
@@ -502,7 +502,7 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
 
             LLSettingsVOSky* voskysetp = ((LLSettingsVOSky*)mCurrentSky.get());
 
-            F32 moon_brightness = (float)voskysetp->getMoonBrightnessFast();
+            F32 moon_brightness = (float)voskysetp->getMoonBrightness();
             LLColor4 moon_color(gSky.mVOSkyp->getMoon().getColor());
             
             moon_shader->uniform1f(LLShaderMgr::MOON_BRIGHTNESS, moon_brightness);
diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp
index 3952abab80a0548d36874ff9a108a410ddf59b0d..56c32733346b2d764e5777baf66463b860d6d8e1 100644
--- a/indra/newview/llenvironment.cpp
+++ b/indra/newview/llenvironment.cpp
@@ -696,7 +696,7 @@ namespace
             // Ideally we need to check for texture in injection, but
             // in this case user is setting value explicitly, potentially
             // with different transitions, don't ignore it
-            F64 result = lerp(value, injection->mValue.asReal(), mix);
+            F64 result = ll_lerp(value, injection->mValue.asReal(), mix);
             injection->mLastValue = LLSD::Real(result);
             this->mSettings[injection->mKeyName] = injection->mLastValue;
         }
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 01bc3c21f2a2fcb8002ebc8338e644e42e609dc2..02d86dbc7f268ee4da128acc0c0747545e9f88fe 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -610,7 +610,7 @@ void LLFace::renderSelected(LLViewerTexture *imagep, const LLColor4& color)
 					glPolygonOffset(-1.f, -1.f);
 					gGL.multMatrix(volume->getRelativeXform());
 					const LLVolumeFace& vol_face = rigged->getVolumeFace(getTEOffset());
-                    LLVertexBuffer::drawElements(LLRender::TRIANGLES,vol_face.mNumVertices, vol_face.mPositions, vol_face.mTexCoords, vol_face.mNumIndices, vol_face.mIndices);
+                    LLVertexBuffer::drawElements(LLRender::TRIANGLES,vol_face.mPositions, vol_face.mTexCoords, vol_face.mNumIndices, vol_face.mIndices);
 				}
 			}
 		}
@@ -648,7 +648,7 @@ void renderFace(LLDrawable* drawable, LLFace *face)
         if (volume)
         {
             const LLVolumeFace& vol_face = volume->getVolumeFace(face->getTEOffset());
-            LLVertexBuffer::drawElements(LLRender::TRIANGLES, vol_face.mNumVertices, vol_face.mPositions, NULL, vol_face.mNumIndices, vol_face.mIndices);
+            LLVertexBuffer::drawElements(LLRender::TRIANGLES, vol_face.mPositions, NULL, vol_face.mNumIndices, vol_face.mIndices);
         }
     }
 }
@@ -1243,7 +1243,7 @@ bool LLFace::canRenderAsMask()
 
 BOOL LLFace::getGeometryVolume(const LLVolume& volume,
 							   const S32 &f,
-								const LLMatrix4a& mat_vert, const LLMatrix4a& mat_normal,
+								const LLMatrix4a& mat_vert_in, const LLMatrix4a& mat_norm_in,
 								const U16 &index_offset,
 								bool force_rebuild)
 {
@@ -1475,7 +1475,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
         }
         else
         {
-            mat_vert.loadu(mat_vert_in);
+            mat_vert = mat_vert_in;
         }
     }
 
@@ -1490,13 +1490,13 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
             }
 
             //TODO -- cache this (check profile marker above)?
-            glh::matrix4f m((F32*) skin->mBindShapeMatrix.getF32ptr());
-            m = m.inverse().transpose();
-            mat_normal.loadu(m.m);
+			mat_normal = skin->mBindShapeMatrix;
+			mat_normal.invert();
+			mat_normal.transpose();
         }
         else
         {
-            mat_normal.loadu(mat_norm_in);
+            mat_normal = mat_norm_in;
         }
     }
 
diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h
index 8eebf73e13afaa363f7e03cd90d66d7dc7898dc2..5544a99fac45e0eee3ed7aefaad3df8fad5834e0 100644
--- a/indra/newview/llspatialpartition.h
+++ b/indra/newview/llspatialpartition.h
@@ -204,22 +204,22 @@ class LLSpatialGroup final : public LLOcclusionCullingGroup
 
 	void* operator new(std::size_t size)
 	{
-		return aligned_new<64>(size);
+		return ll_aligned_malloc<64>(size);
 	}
 
 	void operator delete(void* ptr, std::size_t size)
 	{
-		aligned_delete<64>(ptr, size);
+		ll_aligned_free<64>(ptr);
 	}
 
 	void* operator new[](std::size_t size)
 	{
-		return aligned_new<64>(size);
+		return ll_aligned_malloc<64>(size);
 	}
 
 	void operator delete[](void* ptr, std::size_t size)
 	{
-		aligned_delete<64>(ptr, size);
+		ll_aligned_free<64>(ptr);
 	}
 
 	static U32 sNodeCount;
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 36ac00e87e8c9ac44bfe62109c6f90732d4a060f..3697cca787f88e8fff89324f26160622952a42e6 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -197,7 +197,6 @@ LLGLSLShader			gDeferredTreeShadowProgram;
 LLGLSLShader            gDeferredSkinnedTreeShadowProgram;
 LLGLSLShader			gDeferredAvatarProgram;
 LLGLSLShader			gDeferredAvatarAlphaProgram;
-LLGLSLShader			gDeferredAvatarAlphaWaterProgram;
 LLGLSLShader			gDeferredLightProgram;
 LLGLSLShader			gDeferredMultiLightProgram[16];
 LLGLSLShader			gDeferredSpotLightProgram;
@@ -366,7 +365,6 @@ LLViewerShaderMgr::LLViewerShaderMgr() :
 	mShaderList.push_back(&gDeferredUnderWaterProgram);	
     mShaderList.push_back(&gDeferredTerrainWaterProgram);
 	mShaderList.push_back(&gDeferredAvatarAlphaProgram);
-	mShaderList.push_back(&gDeferredAvatarAlphaWaterProgram);
 	mShaderList.push_back(&gDeferredWLSkyProgram);
 	mShaderList.push_back(&gDeferredWLCloudProgram);
     mShaderList.push_back(&gDeferredWLMoonProgram);
@@ -2404,10 +2402,10 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
         gDeferredSkinnedShadowFullbrightAlphaMaskProgram.mShaderFiles.push_back(make_pair("deferred/shadowAlphaMaskF.glsl", GL_FRAGMENT_SHADER_ARB));
 
         gDeferredSkinnedShadowFullbrightAlphaMaskProgram.clearPermutations();
-        if (gGLManager.mHasDepthClamp)
-        {
-            gDeferredSkinnedShadowFullbrightAlphaMaskProgram.addPermutation("DEPTH_CLAMP", "1");
-        }
+        //if (gGLManager.mHasDepthClamp)
+        //{
+        //    gDeferredSkinnedShadowFullbrightAlphaMaskProgram.addPermutation("DEPTH_CLAMP", "1");
+        //}
         gDeferredSkinnedShadowFullbrightAlphaMaskProgram.addPermutation("IS_FULLBRIGHT", "1");
         gDeferredSkinnedShadowFullbrightAlphaMaskProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
         success = gDeferredSkinnedShadowFullbrightAlphaMaskProgram.createShader(NULL, NULL);
@@ -2633,62 +2631,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
 		gDeferredAvatarAlphaProgram.mFeatures.hasLighting = true;
 	}
 
-	if (success)
-	{
-		gDeferredAvatarAlphaWaterProgram.mName = "Deferred Avatar Underwater Alpha Shader";
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasSkinning = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.calculatesLighting = false;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasLighting = false;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.isAlphaLighting = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.disableTextureIndex = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasSrgb = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.encodesNormal = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.calculatesAtmospherics = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasAtmospherics = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasTransport = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasGamma = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasWaterFog = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.isDeferred = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasShadows = true;
-
-		gDeferredAvatarAlphaWaterProgram.mShaderFiles.clear();
-		gDeferredAvatarAlphaWaterProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER));
-		gDeferredAvatarAlphaWaterProgram.mShaderFiles.push_back(make_pair("deferred/alphaF.glsl", GL_FRAGMENT_SHADER));
-
-		gDeferredAvatarAlphaWaterProgram.clearPermutations();
-		gDeferredAvatarAlphaWaterProgram.addPermutation("USE_DIFFUSE_TEX", "1");
-		gDeferredAvatarAlphaWaterProgram.addPermutation("IS_AVATAR_SKIN", "1");
-		gDeferredAvatarAlphaWaterProgram.addPermutation("WATER_FOG", "1");
-
-		if (use_sun_shadow)
-		{
-			gDeferredAvatarAlphaWaterProgram.addPermutation("HAS_SHADOW", "1");
-		}
-
-		if (ambient_kill)
-		{
-			gDeferredAvatarAlphaWaterProgram.addPermutation("AMBIENT_KILL", "1");
-		}
-
-		if (sunlight_kill)
-		{
-			gDeferredAvatarAlphaWaterProgram.addPermutation("SUNLIGHT_KILL", "1");
-		}
-
-		if (local_light_kill)
-		{
-			gDeferredAvatarAlphaWaterProgram.addPermutation("LOCAL_LIGHT_KILL", "1");
-		}
-		gDeferredAvatarAlphaWaterProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
-		gDeferredAvatarAlphaWaterProgram.mShaderGroup = LLGLSLShader::SG_WATER;
-
-		success = gDeferredAvatarAlphaWaterProgram.createShader(NULL, NULL);
-		llassert(success);
-
-		gDeferredAvatarAlphaWaterProgram.mFeatures.calculatesLighting = true;
-		gDeferredAvatarAlphaWaterProgram.mFeatures.hasLighting = true;
-	}
-
 	if (success)
 	{
 		gDeferredPostGammaCorrectProgram.mName = "Deferred Gamma Correction Post Process";
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 9a0a29b8f5b3fe9a1b1b2eafb99d775b7083465e..692a1c339a0604c0b232a1f74afc38739ca5c08f 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -6152,11 +6152,6 @@ bool LLViewerWindow::getUIVisibility()
 	return mUIVisible;
 }
 
-void LLViewerWindow::setWindowTitle(const std::string& title)
-{
-	mWindow->setWindowTitle(title);
-}
-
 ////////////////////////////////////////////////////////////////////////////
 //
 // LLPickInfo
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index fd78ee5618f65f54daadababec42c320249ab996..6086180d535e290068cdfd4153de2e1c72c8d21b 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -175,7 +175,6 @@ class LLViewerWindow final : public LLWindowCallbacks
 	void			setUIVisibility(bool);
 	bool			getUIVisibility();
 	void			handlePieMenu(S32 x, S32 y, MASK mask);
-	void			setWindowTitle(const std::string& title);
 
 	BOOL handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, EMouseClickType clicktype, BOOL down);