From 571920c7b4fb8966088e769c630cda3c149c4e39 Mon Sep 17 00:00:00 2001
From: Graham Linden <graham@lindenlab.com>
Date: Wed, 25 Sep 2013 12:29:02 -0700
Subject: [PATCH] BUG-3982 add code to subtract the lack of not removing the
 removal of backfaces for particles (make particles render double-sided again)

---
 indra/newview/lldrawpoolalpha.cpp | 13 ++++++++++---
 indra/newview/llvopartgroup.cpp   |  4 ----
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index e4ebfea665f..7741dd66e58 100755
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -379,10 +379,18 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass)
 		if (group->mSpatialPartition->mRenderByGroup &&
 		    !group->isDead())
 		{
+			bool is_particle_or_hud_particle = group->mSpatialPartition->mPartitionType == LLViewerRegion::PARTITION_PARTICLE
+													  || group->mSpatialPartition->mPartitionType == LLViewerRegion::PARTITION_HUD_PARTICLE;
+
 			bool draw_glow_for_this_partition = mVertexShaderLevel > 0 && // no shaders = no glow.
 				// All particle systems seem to come off the wire with texture entries which claim that they glow.  This is probably a bug in the data.  Suppress.
-				group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_PARTICLE &&
-				group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_HUD_PARTICLE;
+				!is_particle_or_hud_particle;
+
+			static LLFastTimer::DeclareTimer FTM_RENDER_ALPHA_GROUP_LOOP("Alpha Group");
+			LLFastTimer t(FTM_RENDER_ALPHA_GROUP_LOOP);
+
+			bool disable_cull = is_particle_or_hud_particle;
+			LLGLDisable cull(disable_cull ? GL_CULL_FACE : 0);
 
 			LLSpatialGroup::drawmap_elem_t& draw_info = group->mDrawMap[LLRenderPass::PASS_ALPHA];
 
@@ -615,4 +623,3 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass)
 		gPipeline.enableLightsDynamic();
 	}
 }
-
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 1630b5d484b..9f4f11b317e 100755
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -285,10 +285,6 @@ void LLVOPartGroup::getBlendFunc(S32 idx, U32& src, U32& dst)
 		src = part->mBlendFuncSource;
 		dst = part->mBlendFuncDest;
 	}
-	else
-	{
-		llerrs << "WTF?" << llendl;
-	}
 }
 
 LLVector3 LLVOPartGroup::getCameraPosition() const
-- 
GitLab