diff options
author | RunitaiLinden <davep@lindenlab.com> | 2023-04-19 18:15:28 -0500 |
---|---|---|
committer | RunitaiLinden <davep@lindenlab.com> | 2023-04-19 18:15:28 -0500 |
commit | aaedacf3f3da9051f9f704eb1d050fcae63d0d3b (patch) | |
tree | 58ac47d56cf2e98691b9a44e722e8fc2c0e00465 /indra/newview/llface.cpp | |
parent | 45fdba8fd96ed714cbc0120b0a10a4c5b63ea706 (diff) |
DRTVWR-559 Fix for bad vertex data getting sent to PBR alpha shader (auto alpha mask regression).
Diffstat (limited to 'indra/newview/llface.cpp')
-rw-r--r-- | indra/newview/llface.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index d7e4632ab0..5554112043 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -1081,21 +1081,27 @@ void LLFace::updateRebuildFlags() bool LLFace::canRenderAsMask() { - if (LLPipeline::sNoAlpha) + const LLTextureEntry* te = getTextureEntry(); + if( !te || !getViewerObject() || !getTexture() ) { - return true; + return false; } + if (te->getGLTFRenderMaterial()) + { + return false; + } + + if (LLPipeline::sNoAlpha) + { + return true; + } + if (isState(LLFace::RIGGED)) { // never auto alpha-mask rigged faces return false; } - const LLTextureEntry* te = getTextureEntry(); - if( !te || !getViewerObject() || !getTexture() ) - { - return false; - } LLMaterial* mat = te->getMaterialParams(); if (mat && mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_BLEND) |