diff options
author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-08-19 20:15:47 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-19 20:15:47 +0300 |
commit | 6dd8dcb9ce5d6b5293f44da2ef6231ec967e23db (patch) | |
tree | cab66da8892fc7a888661778135355b1b6441748 /indra/newview/llreflectionmapmanager.cpp | |
parent | f929c4f0fdf8f3036dee2a7b9b4e0ad38c8de070 (diff) | |
parent | 54fd466b3b036116ca20b6b7ee856c99b1646f53 (diff) |
Merge pull request #2329 from RyeMutt/probe-fixes
Various fixes to probe memory usage
Diffstat (limited to 'indra/newview/llreflectionmapmanager.cpp')
-rw-r--r-- | indra/newview/llreflectionmapmanager.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp index 1efe51c1aa..3526004071 100644 --- a/indra/newview/llreflectionmapmanager.cpp +++ b/indra/newview/llreflectionmapmanager.cpp @@ -1371,13 +1371,21 @@ void LLReflectionMapManager::initReflectionMaps() { U32 count = LL_MAX_REFLECTION_PROBE_COUNT; - if (mTexture.isNull() || mReflectionProbeCount != count || mReset) + static LLCachedControl<U32> ref_probe_res(gSavedSettings, "RenderReflectionProbeResolution", 128U); + U32 probe_resolution = nhpo2(llclamp(ref_probe_res(), (U32)64, (U32)512)); + if (mTexture.isNull() || mReflectionProbeCount != count || mProbeResolution != probe_resolution || mReset) { + if(mProbeResolution != probe_resolution) + { + mRenderTarget.release(); + mMipChain.clear(); + } + gEXRImage = nullptr; mReset = false; mReflectionProbeCount = count; - mProbeResolution = nhpo2(llclamp(gSavedSettings.getU32("RenderReflectionProbeResolution"), (U32)64, (U32)512)); + mProbeResolution = probe_resolution; mMaxProbeLOD = log2f((F32)mProbeResolution) - 1.f; // number of mips - 1 if (mTexture.isNull() || |