From 7aa203297435674b7b598eb2764a6db7edbb4bc3 Mon Sep 17 00:00:00 2001 From: mobserveur Date: Tue, 16 Sep 2025 16:46:51 +0200 Subject: Fixes the slow down related to the attached huds rendering This commit fixes the long time issue with attached huds rendering, which was causing important slow down with certain combinations of post processing settings. --- indra/llrender/llglslshader.cpp | 12 ++++++------ indra/llrender/llrendertarget.cpp | 5 ++--- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index aac5e3abc8..a1392e6288 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -1190,22 +1190,22 @@ S32 LLGLSLShader::bindTexture(S32 uniform, LLRenderTarget* texture, bool depth, return -1; } - uniform = getTextureChannel(uniform); + S32 channel = getTextureChannel(uniform); - if (uniform > -1) + if (channel > -1) { if (depth) { - gGL.getTexUnit(uniform)->bind(texture, true); + gGL.getTexUnit(channel)->bind(texture, true); } else { bool has_mips = mode == LLTexUnit::TFO_TRILINEAR || mode == LLTexUnit::TFO_ANISOTROPIC; - gGL.getTexUnit(uniform)->bindManual(texture->getUsage(), texture->getTexture(index), has_mips); + gGL.getTexUnit(channel)->bindManual(texture->getUsage(), texture->getTexture(index), has_mips); } - gGL.getTexUnit(uniform)->setTextureFilteringOption(mode); + gGL.getTexUnit(channel)->setTextureFilteringOption(mode); } - return uniform; + return channel; } S32 LLGLSLShader::bindTexture(const std::string& uniform, LLRenderTarget* texture, bool depth, LLTexUnit::eTextureFilterOptions mode) diff --git a/indra/llrender/llrendertarget.cpp b/indra/llrender/llrendertarget.cpp index 173b2b1745..ebdc609f94 100644 --- a/indra/llrender/llrendertarget.cpp +++ b/indra/llrender/llrendertarget.cpp @@ -524,13 +524,12 @@ void LLRenderTarget::bindTarget(std::string name_, U32 mode_) else if(mMode == 1) { glDrawBuffers(static_cast(mTex.size()), drawbuffers); - glReadBuffer(GL_NONE); + //glReadBuffer(GL_NONE); LOG_GLERROR(mName+" draw buffer"); } else if(mMode == 2) { - GLenum buffers[] = {GL_NONE}; - glDrawBuffers(0, buffers); + //glDrawBuffer(GL_NONE); glReadBuffer(GL_COLOR_ATTACHMENT0); LOG_GLERROR(mName+" read buffer"); } -- cgit v1.2.3