From 210a6a8eb4499b86f548f7afdc90f1660c117f9c Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> Date: Thu, 2 Apr 2026 00:33:03 +0300 Subject: #5602 deleteProbe optimization pass glGenQueries synchronizes cpu with gpu, which is expensive --- indra/newview/llreflectionmapmanager.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra/newview/llreflectionmapmanager.h') diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h index 5daed7d1cf..1e1f9ad1a2 100644 --- a/indra/newview/llreflectionmapmanager.h +++ b/indra/newview/llreflectionmapmanager.h @@ -106,6 +106,7 @@ public: // release any GL state void cleanup(); + void cleanupQueryPool(); // maintain reflection probes void update(); @@ -164,6 +165,10 @@ public: U32 probeCount(); U32 probeMemory(); + // glDeleteQueries is expensive, so we maintain a pool of queries + GLuint allocateQuery(); + void recycleQuery(GLuint query); + private: friend class LLPipeline; friend class LLHeroProbeManager; @@ -190,6 +195,8 @@ private: // bind UBO used for rendering void setUniforms(); + std::deque mQueryPool; + // render target for cube snapshots // used to generate mipmaps without doing a copy-to-texture LLRenderTarget mRenderTarget; -- cgit v1.3