From 0f4aa87caca779d77c19dfef06fe8a276f7d0eb6 Mon Sep 17 00:00:00 2001 From: Rye Date: Mon, 10 Feb 2025 16:11:39 -0500 Subject: Vectorize LLRender UI scale and offset stack to resolve perf hotspot on arm --- indra/llrender/llrender.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'indra/llrender/llrender.h') diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index 7b6bd4198b..9e68c2dcd1 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -43,6 +43,7 @@ #include "llglheaders.h" #include "llmatrix4a.h" #include "glm/mat4x4.hpp" +#include #include #include @@ -227,13 +228,9 @@ protected: S32 mIndex; U32 mCurrTexture; eTextureType mCurrTexType; - S32 mCurrColorScale; - S32 mCurrAlphaScale; bool mHasMipMaps; void debugTextureUnit(void); - void setColorScale(S32 scale); - void setAlphaScale(S32 scale); GLint getTextureSource(eTextureBlendSrc src); GLint getTextureSourceType(eTextureBlendSrc src, bool isAlpha = false); }; @@ -526,8 +523,8 @@ private: eBlendFactor mCurrBlendAlphaSFactor; eBlendFactor mCurrBlendAlphaDFactor; - std::vector mUIOffset; - std::vector mUIScale; + std::vector > mUIOffset; + std::vector > mUIScale; }; extern F32 gGLModelView[16]; -- cgit v1.2.3 From 99ce597b54a9180cff0f8907e94833257b77e263 Mon Sep 17 00:00:00 2001 From: Rye Date: Thu, 27 Feb 2025 19:28:01 -0500 Subject: Fix texture filtering and address mode not updating for vast majority of textures when dirtied --- indra/llrender/llrender.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'indra/llrender/llrender.h') diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index 9e68c2dcd1..755aee4bd6 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -208,11 +208,15 @@ public: // Warning: this stays set for the bound texture forever, // make sure you want to permanently change the address mode for the bound texture. void setTextureAddressMode(eTextureAddressMode mode); + // MUST already be active and bound + void setTextureAddressModeFast(eTextureAddressMode mode); // Sets the filtering options used to sample the texture // Warning: this stays set for the bound texture forever, // make sure you want to permanently change the filtering for the bound texture. void setTextureFilteringOption(LLTexUnit::eTextureFilterOptions option); + // MUST already be active and bound + void setTextureFilteringOptionFast(LLTexUnit::eTextureFilterOptions option); static U32 getInternalType(eTextureType type); -- cgit v1.2.3 From 79909b8a335b9fdeaefe384528284538e8dae6a4 Mon Sep 17 00:00:00 2001 From: Rye Date: Mon, 29 Sep 2025 12:23:29 -0400 Subject: Fix rendering differences observed in 2025.07 (#4747) * Fix calling setTextureAddressModeFast and setTextureFilteringOptionFast with invalid tex type during fast binds * Restore mRT->screen to GL_RGBA16F to fix lighting banding --- indra/llrender/llrender.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/llrender/llrender.h') diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index 755aee4bd6..0801c12fb4 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -209,14 +209,14 @@ public: // make sure you want to permanently change the address mode for the bound texture. void setTextureAddressMode(eTextureAddressMode mode); // MUST already be active and bound - void setTextureAddressModeFast(eTextureAddressMode mode); + void setTextureAddressModeFast(eTextureAddressMode mode, eTextureType tex_type); // Sets the filtering options used to sample the texture // Warning: this stays set for the bound texture forever, // make sure you want to permanently change the filtering for the bound texture. void setTextureFilteringOption(LLTexUnit::eTextureFilterOptions option); // MUST already be active and bound - void setTextureFilteringOptionFast(LLTexUnit::eTextureFilterOptions option); + void setTextureFilteringOptionFast(LLTexUnit::eTextureFilterOptions option, eTextureType tex_type); static U32 getInternalType(eTextureType type); -- cgit v1.2.3