From 744646eb71fd9d1d1161ae1132bfe8a9a2c7dd9d Mon Sep 17 00:00:00 2001
From: Runitai Linden <davep@lindenlab.com>
Date: Mon, 22 Nov 2021 19:12:39 -0600
Subject: [PATCH] SL-16400 Fix for grey textures (hack).

---
 indra/llrender/llimagegl.cpp | 4 ++++
 indra/llrender/llimagegl.h   | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index e623baa6533..eda61d3c74e 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -2268,6 +2268,10 @@ void LLImageGLThread::run()
     LL_PROFILE_ZONE_SCOPED;
     // We must perform setup on this thread before actually servicing our
     // WorkQueue, likewise cleanup afterwards.
+    while (mContext == nullptr)
+    { // HACK -- wait for mContext to be initialized since this thread will usually start before mContext is set
+        std::this_thread::sleep_for(std::chrono::milliseconds(1));
+    }
     mWindow->makeContextCurrent(mContext);
     gGL.init();
     ThreadPool::run();
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index 27496def1d6..ae773bb3625 100644
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -324,7 +324,7 @@ class LLImageGLThread : public LLSimpleton<LLImageGLThread>, LL::ThreadPool
 
 private:
     LLWindow* mWindow;
-    void* mContext;
+    void* mContext = nullptr;
     LLAtomicBool mFinished;
 };
 
-- 
GitLab