diff options
| author | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2025-04-15 13:55:01 -0400 | 
|---|---|---|
| committer | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2025-04-15 13:55:01 -0400 | 
| commit | 52cca995ccc30ac5aa989588a71c0a7f4a9804ae (patch) | |
| tree | 69aecdda91f34883bf38ac86eefe8df61b1c4f22 /indra/llrender/llglslshader.cpp | |
| parent | 97085ed30057ce950184f057340e0ecbcfc7614b (diff) | |
| parent | e43baa755d9b91c029e7b5166317e76468baf896 (diff) | |
Merge branch 'release/2025.04' into rye/forevermac
Diffstat (limited to 'indra/llrender/llglslshader.cpp')
| -rw-r--r-- | indra/llrender/llglslshader.cpp | 27 | 
1 files changed, 22 insertions, 5 deletions
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 66f38c9281..b062eca132 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -1250,23 +1250,40 @@ S32 LLGLSLShader::disableTexture(S32 uniform, LLTexUnit::eTextureType mode)          llassert(false);          return -1;      } +      S32 index = mTexture[uniform]; -    if (index != -1 && gGL.getTexUnit(index)->getCurrType() != LLTexUnit::TT_NONE) +    if (index < 0) +    { +        // Invalid texture index - nothing to disable +        return index; +    } + +    LLTexUnit* tex_unit = gGL.getTexUnit(index); +    if (!tex_unit)      { -        if (gDebugGL && gGL.getTexUnit(index)->getCurrType() != mode) +        // Invalid texture unit +        LL_WARNS_ONCE("Shader") << "Invalid texture unit at index: " << index << LL_ENDL; +        return index; +    } + +    LLTexUnit::eTextureType curr_type = tex_unit->getCurrType(); +    if (curr_type != LLTexUnit::TT_NONE) +    { +        if (gDebugGL && curr_type != mode)          {              if (gDebugSession)              { -                gFailLog << "Texture channel " << index << " texture type corrupted." << std::endl; +                gFailLog << "Texture channel " << index << " texture type corrupted. Expected: " << mode << ", Found: " << curr_type << std::endl;                  ll_fail("LLGLSLShader::disableTexture failed");              }              else              { -                LL_ERRS() << "Texture channel " << index << " texture type corrupted." << LL_ENDL; +                LL_ERRS() << "Texture channel " << index << " texture type corrupted. Expected: " << mode << ", Found: " << curr_type << LL_ENDL;              }          } -        gGL.getTexUnit(index)->disable(); +        tex_unit->disable();      } +      return index;  }  | 
