diff options
author | Dave Parks <davep@lindenlab.com> | 2010-04-20 11:38:38 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2010-04-20 11:38:38 -0500 |
commit | a1a23b3e00929dc7df62abff43e1486d402727d3 (patch) | |
tree | a32263d8a84219c4bfe4456e601ebd1c11c73efc | |
parent | 9eb4dc94d58a6cb7fe247f30bde08c126f99d820 (diff) |
Better branch prediction for markVisible.
(transplanted from 5b6c80049d6e6c0df2396099b865729f21200de8)
-rw-r--r-- | indra/newview/pipeline.cpp | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index a45f41a7dd..620f34ae53 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1960,31 +1960,29 @@ void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera) { LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_VISIBLE); - if(!drawablep || drawablep->isDead()) + if(drawablep && !drawablep->isDead()) { - return; - } - - if (drawablep->isSpatialBridge()) - { - LLDrawable* root = ((LLSpatialBridge*) drawablep)->mDrawable; - - if (root && root->getParent() && root->getVObj() && root->getVObj()->isAttachment()) + if (drawablep->isSpatialBridge()) { - LLVOAvatar* av = root->getParent()->getVObj()->asAvatar(); - if (av && av->isImpostor()) + LLDrawable* root = ((LLSpatialBridge*) drawablep)->mDrawable; + + if (root->getVObj()->isAttachment()) { - return; + LLVOAvatar* av = root->getParent()->getVObj()->asAvatar(); + if (av && av->isImpostor()) + { + return; + } } + sCull->pushBridge((LLSpatialBridge*) drawablep); + } + else + { + sCull->pushDrawable(drawablep); } - sCull->pushBridge((LLSpatialBridge*) drawablep); - } - else - { - sCull->pushDrawable(drawablep); - } - drawablep->setVisible(camera); + drawablep->setVisible(camera); + } } void LLPipeline::markMoved(LLDrawable *drawablep, BOOL damped_motion) |