From 9212c1f33e6790c50957c4c46b8e1a386990aef9 Mon Sep 17 00:00:00 2001
From: AndreyL ProductEngine <alihatskiy@productengine.com>
Date: Tue, 4 Jun 2019 00:03:03 +0300
Subject: [PATCH] SL-11341 Skip storing the previous gamma value on Intel GPUs
 + more logging

---
 indra/llwindow/llwindowwin32.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 27787a51a87..97cd31de81a 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -2994,6 +2994,7 @@ BOOL LLWindowWin32::restoreGamma()
 {
 	if (mCustomGammaSet != FALSE)
 	{
+        LL_DEBUGS("Window") << "Restoring gamma" << LL_ENDL;
 		mCustomGammaSet = FALSE;
 		return SetDeviceGammaRamp(mhDC, mPrevGammaRamp);
 	}
@@ -3007,8 +3008,15 @@ BOOL LLWindowWin32::setGamma(const F32 gamma)
 	//Get the previous gamma ramp to restore later.
 	if (mCustomGammaSet == FALSE)
 	{
-		if (GetDeviceGammaRamp(mhDC, mPrevGammaRamp) == FALSE)
-			return FALSE;
+        if (!gGLManager.mIsIntel) // skip for Intel GPUs (see SL-11341)
+        {
+            LL_DEBUGS("Window") << "Getting the previous gamma ramp to restore later" << LL_ENDL;
+            if(GetDeviceGammaRamp(mhDC, mPrevGammaRamp) == FALSE)
+            {
+                LL_WARNS("Window") << "Failed to get the previous gamma ramp" << LL_ENDL;
+                return FALSE;
+            }
+        }
 		mCustomGammaSet = TRUE;
 	}
 
-- 
GitLab