Speculative fixes.

This commit is contained in:
Shyotl
2020-02-29 22:15:27 -06:00
parent 25cb81221e
commit c340dde03d
3 changed files with 13 additions and 9 deletions

View File

@@ -1149,6 +1149,7 @@ LLSpatialPartition* LLDrawable::getSpatialPartition()
//must be an active volume
if (!mSpatialBridge)
{
// Spatial bridge ctors self-register...
if (mVObjp->isHUDAttachment())
{
setSpatialBridge(new LLHUDBridge(this, getRegion()));
@@ -1615,9 +1616,9 @@ void LLSpatialBridge::cleanupReferences()
}
}*/
LLDrawable* drawablep = mDrawable;
mDrawable = NULL;
drawablep->setSpatialBridge(NULL);
LLPointer<LLDrawable> drawablep = mDrawable;
mDrawable = nullptr;
drawablep->setSpatialBridge(nullptr);
}
}

View File

@@ -5565,15 +5565,15 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
else
{
if( type == LLDrawPool::POOL_FULLBRIGHT || type == LLDrawPool::POOL_FULLBRIGHT_ALPHA_MASK)
{
pool->addRiggedFace(facep, LLDrawPoolAvatar::RIGGED_FULLBRIGHT);
}
//Annoying exception to the rule. getPoolTypeFromTE will return POOL_ALPHA_MASK for legacy bumpmaps, but there is no POOL_ALPHA_MASK in deferred.
else if(type == LLDrawPool::POOL_MATERIALS || (type == LLDrawPool::POOL_ALPHA_MASK && mat))
if (type == LLDrawPool::POOL_MATERIALS || ((type == LLDrawPool::POOL_ALPHA_MASK || type == LLDrawPool::POOL_FULLBRIGHT_ALPHA_MASK) && mat))
{
pool->addRiggedFace(facep, mat->getShaderMask());
}
else if (type == LLDrawPool::POOL_FULLBRIGHT || type == LLDrawPool::POOL_FULLBRIGHT_ALPHA_MASK)
{
pool->addRiggedFace(facep, LLDrawPoolAvatar::RIGGED_FULLBRIGHT);
}
else if (type == LLDrawPool::POOL_BUMP && te->getBumpmap())
{
pool->addRiggedFace(facep, LLDrawPoolAvatar::RIGGED_DEFERRED_BUMP);
@@ -5670,7 +5670,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
type = LLDrawPool::POOL_FULLBRIGHT;
}
}
else if(force_simple && type != LLDrawPool::POOL_FULLBRIGHT && type != LLDrawPool::POOL_ALPHA_MASK && type != LLDrawPool::POOL_FULLBRIGHT_ALPHA_MASK)
else if(force_simple && type != LLDrawPool::POOL_FULLBRIGHT && (!LLPipeline::sRenderDeferred && (type != LLDrawPool::POOL_ALPHA_MASK && type != LLDrawPool::POOL_FULLBRIGHT_ALPHA_MASK)))
{
type = LLDrawPool::POOL_SIMPLE;
}

View File

@@ -2667,6 +2667,9 @@ void LLPipeline::clearRebuildGroups()
iter != mGroupQ2.end(); ++iter)
{
LLSpatialGroup* group = *iter;
if (group == nullptr) {
LL_WARNS() << "Null spatial group in Pipeline::mGroupQ2." << LL_ENDL;
}
// If the group contains HUD objects, save the group
if (group->isHUDGroup())