Fix hero probes not releasing resources when disabled

master
Rye Mutt 2024-08-17 18:23:58 -04:00
parent 4c0f342c93
commit d79ff40ee2
3 changed files with 3 additions and 12 deletions

View File

@ -586,7 +586,6 @@ void LLHeroProbeManager::cleanup()
{
mVertexBuffer = nullptr;
mRenderTarget.release();
mHeroRenderTarget.release();
mMipChain.clear();
@ -594,10 +593,7 @@ void LLHeroProbeManager::cleanup()
mProbes.clear();
mReflectionMaps.clear();
mDefaultProbe = nullptr;
mUpdatingProbe = nullptr;
}
void LLHeroProbeManager::doOcclusion()

View File

@ -104,8 +104,6 @@ private:
// used to generate mipmaps without doing a copy-to-texture
LLRenderTarget mRenderTarget;
LLRenderTarget mHeroRenderTarget;
std::vector<LLRenderTarget> mMipChain;
// storage for reflection probe radiance maps (plus two scratch space cubemaps)
@ -124,11 +122,6 @@ private:
// list of active reflection maps
std::vector<LLPointer<LLReflectionMap>> mProbes;
// list of maps being used for rendering
std::vector<LLReflectionMap*> mReflectionMaps;
LLReflectionMap* mUpdatingProbe = nullptr;
LLPointer<LLReflectionMap> mDefaultProbe; // default reflection probe to fall back to for pixels with no probe influences (should always be at cube index 0)
// number of reflection probes to use for rendering

View File

@ -777,7 +777,7 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
if (mRT == &mMainRT)
{ // hacky -- allocate auxillary buffer
gCubeSnapshot = TRUE;
gCubeSnapshot = true;
if (sReflectionProbesEnabled)
{
@ -1117,6 +1117,8 @@ void LLPipeline::releaseGLBuffers()
mGlow[i].release();
}
mHeroProbeManager.cleanup(); // release hero probes
releaseScreenBuffers();
gBumpImageList.destroyGL();