summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.cpp
diff options
context:
space:
mode:
authorDave Houlton <euclid@lindenlab.com>2020-01-28 17:26:45 -0700
committerDave Houlton <euclid@lindenlab.com>2020-01-28 17:26:45 -0700
commit2a6b48c9b0c813c5e4ff8ac176fdf4e6c9466c22 (patch)
tree7f608467b3608127049ddc78d5045da032777cb4 /indra/newview/pipeline.cpp
parent3e44cb06df22dd1b684dc8574c3b44d0851527bc (diff)
parent2998552f3d7447da316afdd1713595528596a0c5 (diff)
DRTVWR-440, merge in latest from 6.3.7 release
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r--indra/newview/pipeline.cpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e54bfcd911..0395bf1a71 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -767,8 +767,8 @@ void LLPipeline::resizeScreenTexture()
releaseShadowTargets();
allocateScreenBuffer(resX,resY);
gResizeScreenTexture = FALSE;
- }
- }
+ }
+ }
}
void LLPipeline::allocatePhysicsBuffer()
@@ -986,7 +986,7 @@ bool LLPipeline::allocateShadowBuffer(U32 resX, U32 resY)
const U32 occlusion_divisor = 3;
- F32 scale = RenderShadowResolutionScale;
+ F32 scale = llmax(0.f,RenderShadowResolutionScale);
U32 sun_shadow_map_width = BlurHappySize(resX, scale);
U32 sun_shadow_map_height = BlurHappySize(resY, scale);
@@ -1225,7 +1225,7 @@ void LLPipeline::releaseScreenBuffers()
mOcclusionDepth.release();
}
-
+
void LLPipeline::releaseShadowTarget(U32 index)
{
mShadow[index].release();
@@ -8749,10 +8749,25 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target)
}
const LLViewerObject *vobj = drawablep->getVObj();
- if(vobj && vobj->getAvatar() && vobj->getAvatar()->isInMuteList())
+ if (vobj)
+ {
+ LLVOAvatar *av = vobj->getAvatar();
+ if (av)
+ {
+ if (av->isTooComplex() || av->isInMuteList() || dist_vec(av->getPosition(), LLViewerCamera::getInstance()->getOrigin()) > RenderFarClip)
+ {
+ continue;
+ }
+ }
+ else
+ {
+ const LLViewerObject *root_obj = drawablep->getParent() ? drawablep->getParent()->getVObj() : vobj;
+ if (root_obj && dist_vec(root_obj->getPosition(), LLViewerCamera::getInstance()->getOrigin()) > RenderFarClip)
{
continue;
}
+ }
+ }
LLVector4a center;
center.load3(drawablep->getPositionAgent().mV);