From 5da9d4ee8c920a5f3f7aaade1fc11d698f63c740 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Mon, 13 Dec 2021 10:49:22 -0500
Subject: [PATCH] Fix 100% transparent objects failing to render glow

---
 indra/newview/lldrawpoolavatar.cpp | 4 ++--
 indra/newview/llvovolume.cpp       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 16b43019474..cde9328b5e0 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -2412,8 +2412,8 @@ void LLDrawPoolAvatar::addRiggedFace(LLFace* facep, U32 type)
 	}
 
 	const LLTextureEntry* tex_entry = facep->getTextureEntry();
-	// Don't render invisible faces even when they are in a linkset.
-	if (tex_entry && tex_entry->getColor().mV[VW] <= 0.001f)
+	// Don't render invisible faces even when they are in a linkset except if there's glow.
+	if (tex_entry && tex_entry->getColor().mV[VW] <= 0.001f && tex_entry->getGlow() <= 0.f)
 	{
 		return;
 	}
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 4012f072673..438d2e6c7ea 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -5940,7 +5940,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
 						}
 						else
 						{
-							if (te->getColor().mV[3] > 0.f)
+							if (te->getColor().mV[3] > 0.f || te->getGlow() > 0.f)
 							{ //only treat as alpha in the pipeline if < 100% transparent
 								drawablep->setState(LLDrawable::HAS_ALPHA);
 								if (alpha_count < MAX_FACE_COUNT)
@@ -6651,7 +6651,7 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
 
 			const LLTextureEntry* te = facep->getTextureEntry();
 
-			if (!LLDrawPoolAlpha::sShowDebugAlpha && te->getColor().mV[3] <= 0.001f)
+			if (!LLDrawPoolAlpha::sShowDebugAlpha && te->getColor().mV[3] <= 0.001f && te->getGlow() <= 0.f)
 			{
 				++face_iter;
 				continue;
-- 
GitLab