diff options
author | Dave Parks <davep@lindenlab.com> | 2022-11-30 14:22:10 -0600 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2022-11-30 14:22:10 -0600 |
commit | dc4f65a2ec1fdd65a77223baaadec38ba38c3bb6 (patch) | |
tree | 1c2954f38c06e693bfa6cf62c570fde9cfc72c86 /indra | |
parent | 0186707937852922521eeced28687231d8407deb (diff) |
SL-18745 Fix for LLVertexBuffer assertion on shutdown.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llreflectionmapmanager.cpp | 23 | ||||
-rw-r--r-- | indra/newview/llreflectionmapmanager.h | 3 | ||||
-rw-r--r-- | indra/newview/pipeline.cpp | 2 |
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(); } //============================================================================ |