summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/app_settings/settings.xml6
-rwxr-xr-xindra/newview/llappviewer.cpp1
-rw-r--r--indra/newview/llconversationview.cpp7
-rwxr-xr-xindra/newview/llfloaterimnearbychat.cpp3
-rwxr-xr-xindra/newview/llfloaterimsessiontab.cpp36
-rwxr-xr-xindra/newview/llfolderviewmodelinventory.cpp2
-rwxr-xr-xindra/newview/llhudmanager.cpp4
-rw-r--r--indra/newview/llmaterialmgr.cpp2
-rwxr-xr-xindra/newview/lltoastnotifypanel.cpp2
-rwxr-xr-xindra/newview/lltoastnotifypanel.h2
-rwxr-xr-xindra/newview/llviewerdisplay.cpp4
-rwxr-xr-xindra/newview/llviewermedia.cpp4
-rwxr-xr-xindra/newview/llviewerregion.cpp42
-rwxr-xr-xindra/newview/llviewerregion.h2
-rwxr-xr-xindra/newview/llviewertexturelist.cpp4
-rwxr-xr-xindra/newview/pipeline.cpp2
16 files changed, 79 insertions, 44 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 6a84c4fca0..df2079a6e4 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -10240,7 +10240,7 @@
<key>Type</key>
<string>F32</string>
<key>Value</key>
- <real>16.0</real>
+ <real>20.0</real>
</map>
<key>SceneLoadRearMaxRadiusFraction</key>
<map>
@@ -10251,7 +10251,7 @@
<key>Type</key>
<string>F32</string>
<key>Value</key>
- <real>20.0</real>
+ <real>75.0</real>
</map>
<key>SceneLoadRearPixelThreshold</key>
<map>
@@ -10262,7 +10262,7 @@
<key>Type</key>
<string>F32</string>
<key>Value</key>
- <real>200.0</real>
+ <real>400.0</real>
</map>
<key>SceneLoadingMonitorEnabled</key>
<map>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 060f19b84f..9a31b6b51f 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1262,6 +1262,7 @@ static LLTrace::BlockTimerStatHandle FTM_SERVICE_CALLBACK("Callback");
static LLTrace::BlockTimerStatHandle FTM_AGENT_AUTOPILOT("Autopilot");
static LLTrace::BlockTimerStatHandle FTM_AGENT_UPDATE("Update");
+// externally visible timers
LLTrace::BlockTimerStatHandle FTM_FRAME("Frame");
bool LLAppViewer::mainLoop()
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 82d3fe74c0..7c223d996b 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -127,10 +127,11 @@ void LLConversationViewSession::setHighlightState(bool hihglight_state)
void LLConversationViewSession::startFlashing()
{
- LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
-
// Need to start flashing only when "Conversations" is opened or brought on top
- if (isInVisibleChain() && !im_box->isMinimized() && mFlashStateOn && !mFlashStarted)
+ if (isInVisibleChain()
+ && mFlashStateOn
+ && !mFlashStarted
+ && ! LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container")->isMinimized() )
{
mFlashStarted = true;
mFlashTimer->startFlashing();
diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp
index b5d179b6de..7a989806a1 100755
--- a/indra/newview/llfloaterimnearbychat.cpp
+++ b/indra/newview/llfloaterimnearbychat.cpp
@@ -89,7 +89,7 @@ static LLChatTypeTrigger sChatTypeTriggers[] = {
LLFloaterIMNearbyChat::LLFloaterIMNearbyChat(const LLSD& llsd)
-: LLFloaterIMSessionTab(llsd),
+: LLFloaterIMSessionTab(LLSD(LLUUID::null)),
//mOutputMonitor(NULL),
mSpeakerMgr(NULL),
mExpandedHeight(COLLAPSED_HEIGHT + EXPANDED_HEIGHT)
@@ -97,7 +97,6 @@ LLFloaterIMNearbyChat::LLFloaterIMNearbyChat(const LLSD& llsd)
mIsP2PChat = false;
mIsNearbyChat = true;
mSpeakerMgr = LLLocalSpeakerMgr::getInstance();
- mSessionID = LLUUID();
}
//static
diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp
index 0ccfdb9a7b..572365fd07 100755
--- a/indra/newview/llfloaterimsessiontab.cpp
+++ b/indra/newview/llfloaterimsessiontab.cpp
@@ -47,24 +47,24 @@
const F32 REFRESH_INTERVAL = 1.0f;
LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)
- : LLTransientDockableFloater(NULL, true, session_id)
- , mIsP2PChat(false)
- , mExpandCollapseBtn(NULL)
- , mTearOffBtn(NULL)
- , mCloseBtn(NULL)
- , mSessionID(session_id.asUUID())
- , mConversationsRoot(NULL)
- , mScroller(NULL)
- , mChatHistory(NULL)
- , mInputEditor(NULL)
- , mInputEditorPad(0)
- , mRefreshTimer(new LLTimer())
- , mIsHostAttached(false)
- , mHasVisibleBeenInitialized(false)
- , mIsParticipantListExpanded(true)
- , mChatLayoutPanel(NULL)
- , mInputPanels(NULL)
- , mChatLayoutPanelHeight(0)
+: LLTransientDockableFloater(NULL, true, session_id),
+ mIsP2PChat(false),
+ mExpandCollapseBtn(NULL),
+ mTearOffBtn(NULL),
+ mCloseBtn(NULL),
+ mSessionID(session_id.asUUID()),
+ mConversationsRoot(NULL),
+ mScroller(NULL),
+ mChatHistory(NULL),
+ mInputEditor(NULL),
+ mInputEditorPad(0),
+ mRefreshTimer(new LLTimer()),
+ mIsHostAttached(false),
+ mHasVisibleBeenInitialized(false),
+ mIsParticipantListExpanded(true),
+ mChatLayoutPanel(NULL),
+ mInputPanels(NULL),
+ mChatLayoutPanelHeight(0)
{
setAutoFocus(FALSE);
mSession = LLIMModel::getInstance()->findIMSession(mSessionID);
diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index 0dc667f9f5..f128910ca7 100755
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
@@ -34,7 +34,7 @@
//
// class LLFolderViewModelInventory
//
-static LLTrace::BlockTimerStatHandle FTM_INVENTORY_SORT("Sort");
+static LLTrace::BlockTimerStatHandle FTM_INVENTORY_SORT("Inventory Sort");
bool LLFolderViewModelInventory::startDrag(std::vector<LLFolderViewModelItem*>& items)
{
diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp
index 6b6d7d7e7f..1f9b0f47b1 100755
--- a/indra/newview/llhudmanager.cpp
+++ b/indra/newview/llhudmanager.cpp
@@ -54,11 +54,11 @@ LLHUDManager::~LLHUDManager()
{
}
-static LLTrace::BlockTimerStatHandle FTM_HUD_EFFECTS("Hud Effects");
+static LLTrace::BlockTimerStatHandle FTM_UPDATE_HUD_EFFECTS("Update Hud Effects");
void LLHUDManager::updateEffects()
{
- LL_RECORD_BLOCK_TIME(FTM_HUD_EFFECTS);
+ LL_RECORD_BLOCK_TIME(FTM_UPDATE_HUD_EFFECTS);
S32 i;
for (i = 0; i < mHUDEffects.size(); i++)
{
diff --git a/indra/newview/llmaterialmgr.cpp b/indra/newview/llmaterialmgr.cpp
index 973220007a..df6a42db4d 100644
--- a/indra/newview/llmaterialmgr.cpp
+++ b/indra/newview/llmaterialmgr.cpp
@@ -527,7 +527,7 @@ void LLMaterialMgr::onPutResponse(bool success, const LLSD& content)
}
}
-static LLTrace::BlockTimerStatHandle FTM_MATERIALS_IDLE("Materials");
+static LLTrace::BlockTimerStatHandle FTM_MATERIALS_IDLE("Idle Materials");
void LLMaterialMgr::onIdle(void*)
{
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index e6746bce82..a4cf683114 100755
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -57,7 +57,7 @@ LLToastNotifyPanel::button_click_signal_t LLToastNotifyPanel::sButtonClickSignal
LLToastNotifyPanel::LLToastNotifyPanel(const LLNotificationPtr& notification, const LLRect& rect, bool show_images)
: LLToastPanel(notification),
- LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerAllowKeyCollisions>(notification->getID())
+ LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerReplaceOnCollision>(notification->getID())
{
init(rect, show_images);
}
diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h
index 561befe0f6..e4a75acfda 100755
--- a/indra/newview/lltoastnotifypanel.h
+++ b/indra/newview/lltoastnotifypanel.h
@@ -47,7 +47,7 @@ class LLNotificationForm;
* @deprecated this class will be removed after all toast panel types are
* implemented in separate classes.
*/
-class LLToastNotifyPanel: public LLToastPanel, public LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerAllowKeyCollisions>
+class LLToastNotifyPanel: public LLToastPanel, public LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerReplaceOnCollision>
{
public:
/**
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index ae16372963..981e4c40aa 100755
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -231,7 +231,7 @@ void display_stats()
static LLTrace::BlockTimerStatHandle FTM_PICK("Picking");
static LLTrace::BlockTimerStatHandle FTM_RENDER("Render");
static LLTrace::BlockTimerStatHandle FTM_UPDATE_SKY("Update Sky");
-static LLTrace::BlockTimerStatHandle FTM_UPDATE_TEXTURES("Update Textures");
+static LLTrace::BlockTimerStatHandle FTM_UPDATE_DYNAMIC_TEXTURES("Update Dynamic Textures");
static LLTrace::BlockTimerStatHandle FTM_IMAGE_UPDATE("Update Images");
static LLTrace::BlockTimerStatHandle FTM_IMAGE_UPDATE_CLASS("Class");
static LLTrace::BlockTimerStatHandle FTM_IMAGE_UPDATE_BUMP("Image Update Bump");
@@ -590,7 +590,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_DYNAMIC_TEXTURES))
{
LLAppViewer::instance()->pingMainloopTimeout("Display:DynamicTextures");
- LL_RECORD_BLOCK_TIME(FTM_UPDATE_TEXTURES);
+ LL_RECORD_BLOCK_TIME(FTM_UPDATE_DYNAMIC_TEXTURES);
if (LLViewerDynamicTexture::updateAllInstances())
{
gGL.setColorMask(true, true);
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 6a72f24356..7958537856 100755
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -779,8 +779,8 @@ static bool proximity_comparitor(const LLViewerMediaImpl* i1, const LLViewerMedi
static LLTrace::BlockTimerStatHandle FTM_MEDIA_UPDATE("Update Media");
static LLTrace::BlockTimerStatHandle FTM_MEDIA_SPARE_IDLE("Spare Idle");
static LLTrace::BlockTimerStatHandle FTM_MEDIA_UPDATE_INTEREST("Update/Interest");
-static LLTrace::BlockTimerStatHandle FTM_MEDIA_SORT("Sort");
-static LLTrace::BlockTimerStatHandle FTM_MEDIA_SORT2("Sort 2");
+static LLTrace::BlockTimerStatHandle FTM_MEDIA_SORT("Media Sort");
+static LLTrace::BlockTimerStatHandle FTM_MEDIA_SORT2("Media Sort 2");
static LLTrace::BlockTimerStatHandle FTM_MEDIA_MISC("Misc");
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index e3ebd2fc2a..f71d0a7a64 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -923,6 +923,21 @@ void LLViewerRegion::addActiveCacheEntry(LLVOCacheEntry* entry)
mImpl->mActiveSet.insert(entry);
}
+//remove vo entry which is in mImpl->mActiveSet but not in rendering pipeline.
+//this is caused by mImpl->mActiveSet failing to remove this entry somehow.
+void LLViewerRegion::removeDanglingEntry(LLVOCacheEntry* entry)
+{
+ if(mDead || !entry)
+ {
+ return;
+ }
+
+ mImpl->mVisibleEntries.erase(entry);
+ mImpl->mActiveSet.erase(entry);
+ mImpl->mWaitingSet.erase(entry);
+ entry->setState(LLVOCacheEntry::INACTIVE);
+}
+
void LLViewerRegion::removeActiveCacheEntry(LLVOCacheEntry* entry, LLDrawable* drawablep)
{
if(mDead || !entry)
@@ -1403,6 +1418,8 @@ void LLViewerRegion::killInvisibleObjects(F32 max_time)
}
std::vector<LLDrawable*> delete_list;
+ std::vector<LLVOCacheEntry*> dangling_list;
+
S32 update_counter = llmin(max_update, mImpl->mActiveSet.size());
LLVOCacheEntry::vocache_entry_set_t::iterator iter = mImpl->mActiveSet.upper_bound(mLastVisitedEntry);
@@ -1417,9 +1434,17 @@ void LLViewerRegion::killInvisibleObjects(F32 max_time)
continue; //skip child objects, they are removed with their parent.
}
- if(!(*iter)->isAnyVisible(camera_origin, local_origin, back_threshold) && (*iter)->mLastCameraUpdated < sLastCameraUpdated)
+ LLVOCacheEntry* vo_entry = *iter;
+ if(!vo_entry->getEntry() || !vo_entry->getEntry()->getDrawable())
+ {
+ //sometimes mImpl->mActiveSet fails to erase some entry, causing this dangling case.
+ dangling_list.push_back(vo_entry);
+ continue;
+ }
+
+ if(!vo_entry->isAnyVisible(camera_origin, local_origin, back_threshold) && vo_entry->mLastCameraUpdated < sLastCameraUpdated)
{
- killObject((*iter), delete_list);
+ killObject(vo_entry, delete_list);
}
if(max_time < update_timer.getElapsedTimeF32()) //time out
@@ -1441,13 +1466,22 @@ void LLViewerRegion::killInvisibleObjects(F32 max_time)
if(!delete_list.empty())
{
mInvisibilityCheckHistory |= 1;
- for(S32 i = 0; i < delete_list.size(); i++)
+ S32 count = delete_list.size();
+ for(S32 i = 0; i < count; i++)
{
gObjectList.killObject(delete_list[i]->getVObj());
}
delete_list.clear();
}
+ if(!dangling_list.empty())
+ {
+ for(S32 i = 0; i < dangling_list.size(); i++)
+ {
+ removeDanglingEntry(dangling_list[i]);
+ }
+ }
+
return;
}
@@ -1457,7 +1491,7 @@ void LLViewerRegion::killObject(LLVOCacheEntry* entry, std::vector<LLDrawable*>&
LLDrawable* drawablep = (LLDrawable*)entry->getEntry()->getDrawable();
llassert(drawablep);
- if(!drawablep->getParent())
+ if(drawablep && !drawablep->getParent())
{
LLViewerObject::const_child_list_t& child_list = drawablep->getVObj()->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h
index a6c1eb65d4..6889db7880 100755
--- a/indra/newview/llviewerregion.h
+++ b/indra/newview/llviewerregion.h
@@ -386,7 +386,7 @@ private:
void removeFromVOCacheTree(LLVOCacheEntry* entry);
void replaceVisibleCacheEntry(LLVOCacheEntry* old_entry, LLVOCacheEntry* new_entry);
void killCacheEntry(LLVOCacheEntry* entry); //physically delete the cache entry
-
+ void removeDanglingEntry(LLVOCacheEntry* entry);
void killInvisibleObjects(F32 max_time);
void createVisibleObjects(F32 max_time);
void updateVisibleEntries(F32 max_time); //update visible entries
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 99903bfdf3..b98726900f 100755
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -670,11 +670,11 @@ static LLTrace::BlockTimerStatHandle FTM_IMAGE_FETCH("Fetch");
static LLTrace::BlockTimerStatHandle FTM_FAST_CACHE_IMAGE_FETCH("Fast Cache Fetch");
static LLTrace::BlockTimerStatHandle FTM_IMAGE_CREATE("Create");
static LLTrace::BlockTimerStatHandle FTM_IMAGE_STATS("Stats");
-static LLTrace::BlockTimerStatHandle FTM_UPDATE_IMAGES("Update Images");
+static LLTrace::BlockTimerStatHandle FTM_UPDATE_TEXTURES("Update Textures");
void LLViewerTextureList::updateImages(F32 max_time)
{
- LL_RECORD_BLOCK_TIME(FTM_UPDATE_IMAGES);
+ LL_RECORD_BLOCK_TIME(FTM_UPDATE_TEXTURES);
static BOOL cleared = FALSE;
if(gTeleportDisplay)
{
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index c5148690a5..c2c981893a 100755
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -242,7 +242,7 @@ LLTrace::BlockTimerStatHandle FTM_RENDER_WL_SKY("Windlight Sky");
LLTrace::BlockTimerStatHandle FTM_RENDER_ALPHA("Alpha Objects");
LLTrace::BlockTimerStatHandle FTM_RENDER_CHARACTERS("Avatars");
LLTrace::BlockTimerStatHandle FTM_RENDER_BUMP("Bump");
-LLTrace::BlockTimerStatHandle FTM_RENDER_MATERIALS("Materials");
+LLTrace::BlockTimerStatHandle FTM_RENDER_MATERIALS("Render Materials");
LLTrace::BlockTimerStatHandle FTM_RENDER_FULLBRIGHT("Fullbright");
LLTrace::BlockTimerStatHandle FTM_RENDER_GLOW("Glow");
LLTrace::BlockTimerStatHandle FTM_GEO_UPDATE("Geo Update");