summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2022-11-30 14:22:10 -0600
committerDave Parks <davep@lindenlab.com>2022-11-30 14:22:10 -0600
commitdc4f65a2ec1fdd65a77223baaadec38ba38c3bb6 (patch)
tree1c2954f38c06e693bfa6cf62c570fde9cfc72c86 /indra
parent0186707937852922521eeced28687231d8407deb (diff)
SL-18745 Fix for LLVertexBuffer assertion on shutdown.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llreflectionmapmanager.cpp23
-rw-r--r--indra/newview/llreflectionmapmanager.h3
-rw-r--r--indra/newview/pipeline.cpp2
3 files changed, 28 insertions, 0 deletions
diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp
index 8282aa2507..e8ad813ed2 100644
--- a/indra/newview/llreflectionmapmanager.cpp
+++ b/indra/newview/llreflectionmapmanager.cpp
@@ -918,3 +918,26 @@ void LLReflectionMapManager::initReflectionMaps()
mVertexBuffer = buff;
}
}
+
+void LLReflectionMapManager::cleanup()
+{
+ mVertexBuffer = nullptr;
+ mRenderTarget.release();
+
+ mMipChain.clear();
+
+ mTexture = nullptr;
+ mIrradianceMaps = nullptr;
+
+ mProbes.clear();
+ mKillList.clear();
+ mCreateList.clear();
+
+ mReflectionMaps.clear();
+ mUpdatingFace = 0;
+
+ mDefaultProbe = nullptr;
+
+ glDeleteBuffers(1, &mUBO);
+ mUBO = 0;
+}
diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h
index e0a2c00db3..4e2ff7c751 100644
--- a/indra/newview/llreflectionmapmanager.h
+++ b/indra/newview/llreflectionmapmanager.h
@@ -58,6 +58,9 @@ public:
// allocate an environment map of the given resolution
LLReflectionMapManager();
+ // release any GL state
+ void cleanup();
+
// maintain reflection probes
void update();
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 0f348e4bc4..2d4db48ac5 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -659,6 +659,8 @@ void LLPipeline::cleanup()
mDeferredVB = NULL;
mCubeVB = NULL;
+
+ mReflectionMapManager.cleanup();
}
//============================================================================