From 8e9d27fdcdea805d5f9af02f853f5dfdfa7c7512 Mon Sep 17 00:00:00 2001
From: Graham Linden <graham@lindenlab.com>
Date: Tue, 14 Aug 2018 21:10:54 +0100
Subject: [PATCH] MAINT-8884 Re-arrange water norm/reflection tex binding to be
 less incorrect.

---
 indra/newview/lldrawpoolwater.cpp | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index e3dcc44c4d7..1e7d881bfe9 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -50,6 +50,8 @@
 #include "llsettingssky.h"
 #include "llsettingswater.h"
 
+#pragma optimize("", off)
+
 static float sTime;
 
 BOOL deferred_render = FALSE;
@@ -589,19 +591,32 @@ void LLDrawPoolWater::shade()
 	//bind normal map
 	S32 bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP);
 
-    if (mWaterNormp[0] && mWaterNormp[1])
+    if (mWaterNormp[0])
     {
 	    gGL.getTexUnit(bumpTex)->bind(mWaterNormp[0]) ;
-        gGL.getTexUnit(bumpTex + 1)->bind(mWaterNormp[1]) ;
 
 	    if (gSavedSettings.getBOOL("RenderWaterMipNormal"))
 	    {
 		    mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
-            mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
 	    }
 	    else 
 	    {
 		    mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_POINT);
+	    }
+	}
+
+    if (mWaterNormp[1])
+    {
+        bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP2);
+
+        gGL.getTexUnit(bumpTex)->bind(mWaterNormp[1]) ;
+
+	    if (gSavedSettings.getBOOL("RenderWaterMipNormal"))
+	    {
+            mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
+	    }
+	    else 
+	    {
             mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_POINT);
 	    }
 	}
-- 
GitLab