diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index c8f2d4c9a..1229fef67 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -679,6 +679,7 @@ void settings_setup_listeners() gSavedSettings.getControl("RenderAutoMaskAlphaNonDeferred")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); gSavedSettings.getControl("SHUseRMSEAutoMask")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); gSavedSettings.getControl("SHAutoMaskMaxRMSE")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); + gSavedSettings.getControl("SHAltBatching")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); gSavedSettings.getControl("RenderObjectBump")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); gSavedSettings.getControl("RenderMaxVBOSize")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); //See LL jira VWR-3258 comment section. Implemented by LL in 2.1 -Shyotl diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index b316ab25d..ea9e5605c 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -5402,15 +5402,15 @@ struct CompareBatchBreakerModified { return lhs->isState(LLFace::FULLBRIGHT) < rhs->isState(LLFace::FULLBRIGHT); } - else if(batch_shiny && lte->getShiny() != rte->getShiny()) + else if(batch_shiny && !lte->getShiny() != !rte->getShiny()) { - return lte->getShiny() < rte->getShiny(); + return !lte->getShiny() < !rte->getShiny(); } - else if(lhs->getPoolType() == LLDrawPool::POOL_MATERIALS) + else if(lhs->getPoolType() == LLDrawPool::POOL_MATERIALS && lte->getMaterialParams().get() != rte->getMaterialParams().get()) { return lte->getMaterialParams().get() < rte->getMaterialParams().get(); } - else if(lhs->getPoolType() == LLDrawPool::POOL_BUMP) + else if(lhs->getPoolType() == LLDrawPool::POOL_BUMP && lte->getBumpmap() != rte->getBumpmap()) { return lte->getBumpmap() < rte->getBumpmap(); } @@ -5634,7 +5634,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac { facep->setTextureIndex(0); - if(can_batch_texture(facep) && texture_index_channels > 1) + if(can_batch_texture(facep)) { static const U8 MAX_TEXTURE_COUNT = 32; static LLViewerTexture* texture_list[MAX_TEXTURE_COUNT];