From 26a2e4ba1e69fafac350ae2f1dd9be2ad8f4c0f6 Mon Sep 17 00:00:00 2001
From: ruslantproductengine <ruslantproductengine@lindenlab.com>
Date: Fri, 9 Aug 2019 20:46:38 +0300
Subject: SL-11614 Rotating objects flicker if Render type Avatar is disabled
 SL-1232 Derendering Avatar type also derenders some rezzed mesh objects
 SL-10357 [LOVE ME RENDER] Screen Artifacts in Specific Region(s) - Fixed

---
 indra/newview/llviewerdisplay.cpp | 4 ++--
 indra/newview/pipeline.cpp        | 8 ++++----
 indra/newview/pipeline.h          | 4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 64f6123f5d..7fc9d5d8e7 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -1,4 +1,4 @@
-/** 
+/** 
  * @file llviewerdisplay.cpp
  * @brief LLViewerDisplay class implementation
  *
@@ -1128,7 +1128,7 @@ void render_hud_attachments()
 		LLSpatialGroup::sNoDelete = TRUE;
 
 		LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD;
-		gPipeline.updateCull(hud_cam, result);
+		gPipeline.updateCull(hud_cam, result, 0, NULL, true);
 
 		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_BUMP);
 		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_SIMPLE);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index a72244929e..63dc3f899e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -1,4 +1,4 @@
-/** 
+/** 
  * @file pipeline.cpp
  * @brief Rendering pipeline.
  *
@@ -2396,7 +2396,7 @@ bool LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&
 
 static LLTrace::BlockTimerStatHandle FTM_CULL("Object Culling");
 
-void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip, LLPlane* planep)
+void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip, LLPlane* planep, bool hud_attachments)
 {
 	static LLCachedControl<bool> use_occlusion(gSavedSettings,"UseOcclusion");
 	static bool can_use_occlusion = LLGLSLShader::sNoFixedFunction
@@ -2514,9 +2514,9 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl
 			LLSpatialPartition* part = region->getSpatialPartition(i);
 			if (part)
 			{
-				if (hasRenderType(part->mDrawableType))
+				if (!hud_attachments ? LLViewerRegion::PARTITION_BRIDGE == i || hasRenderType(part->mDrawableType) : hasRenderType(part->mDrawableType))
 				{
-					part->cull(camera);
+				    part->cull(camera);
 				}
 			}
 		}
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 29fe1cbd33..abce1e46a6 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -1,4 +1,4 @@
-/** 
+/** 
  * @file pipeline.h
  * @brief Rendering pipeline definitions
  *
@@ -237,7 +237,7 @@ public:
 	bool visibleObjectsInFrustum(LLCamera& camera);
 	bool getVisibleExtents(LLCamera& camera, LLVector3 &min, LLVector3& max);
 	bool getVisiblePointCloud(LLCamera& camera, LLVector3 &min, LLVector3& max, std::vector<LLVector3>& fp, LLVector3 light_dir = LLVector3(0,0,0));
-	void updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip = 0, LLPlane* plane = NULL);  //if water_clip is 0, ignore water plane, 1, cull to above plane, -1, cull to below plane
+	void updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip = 0, LLPlane* plane = NULL, bool hud_attachments = false);  //if water_clip is 0, ignore water plane, 1, cull to above plane, -1, cull to below plane
 	void createObjects(F32 max_dtime);
 	void createObject(LLViewerObject* vobj);
 	void processPartitionQ();
-- 
cgit v1.2.3