From 8bd748278fe78b780d69ba9881304571c90b7008 Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Thu, 11 May 2023 18:51:55 -0400 Subject: [PATCH] Ensure shadow buffers are released during GL destruction --- indra/newview/pipeline.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index db7c39c32c2..25af75884a9 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -771,8 +771,7 @@ LLPipeline::eFBOStatus LLPipeline::doAllocateScreenBuffer(U32 resX, U32 resY) ret = FBO_FAILURE; releaseScreenBuffers(); - releaseSunShadowTargets(); - releaseSpotShadowTargets(); + releaseShadowBuffers(); //reduce number of samples while (samples > 0) { @@ -782,8 +781,7 @@ LLPipeline::eFBOStatus LLPipeline::doAllocateScreenBuffer(U32 resX, U32 resY) return FBO_SUCCESS_LOWRES; } releaseScreenBuffers(); - releaseSunShadowTargets(); - releaseSpotShadowTargets(); + releaseShadowBuffers(); } samples = 0; @@ -797,8 +795,7 @@ LLPipeline::eFBOStatus LLPipeline::doAllocateScreenBuffer(U32 resX, U32 resY) return FBO_SUCCESS_LOWRES; } releaseScreenBuffers(); - releaseSunShadowTargets(); - releaseSpotShadowTargets(); + releaseShadowBuffers(); resX /= 2; if (allocateScreenBuffer(resX, resY, samples)) @@ -806,8 +803,7 @@ LLPipeline::eFBOStatus LLPipeline::doAllocateScreenBuffer(U32 resX, U32 resY) return FBO_SUCCESS_LOWRES; } releaseScreenBuffers(); - releaseSunShadowTargets(); - releaseSpotShadowTargets(); + releaseShadowBuffers(); } LL_WARNS() << "Unable to allocate screen buffer at any resolution!" << LL_ENDL; @@ -1165,16 +1161,13 @@ void LLPipeline::releaseGLBuffers() mSceneMap.release(); - mPostMap.release(); - mPostFXMap.release(); - mPostHelperMap.release(); - for (U32 i = 0; i < 3; i++) { mGlow[i].release(); } releaseScreenBuffers(); + releaseShadowBuffers(); gBumpImageList.destroyGL(); LLVOAvatar::resetImpostors(); -- GitLab