summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llavatarrendernotifier.cpp16
-rw-r--r--indra/newview/llavatarrendernotifier.h26
-rw-r--r--indra/newview/llfloaterperformance.cpp135
-rw-r--r--indra/newview/llfloaterperformance.h11
-rw-r--r--indra/newview/llvoavatar.cpp33
-rw-r--r--indra/newview/llvoavatar.h3
-rw-r--r--indra/newview/skins/default/textures/icons/green_dot.pngbin18614 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_performance.xml730
-rw-r--r--indra/newview/skins/default/xui/en/panel_performance_complexity.xml (renamed from indra/newview/skins/default/xui/en/panel_performance_scripts.xml)46
-rw-r--r--indra/newview/skins/default/xui/en/panel_performance_huds.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_performance_nearby.xml25
-rw-r--r--indra/newview/skins/default/xui/en/panel_performance_preferences.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_performance_troubleshooting.xml4
14 files changed, 597 insertions, 458 deletions
diff --git a/indra/newview/llavatarrendernotifier.cpp b/indra/newview/llavatarrendernotifier.cpp
index 4fd57c7341..8b09f7903d 100644
--- a/indra/newview/llavatarrendernotifier.cpp
+++ b/indra/newview/llavatarrendernotifier.cpp
@@ -235,6 +235,12 @@ void LLAvatarRenderNotifier::updateNotificationAgent(U32 agentComplexity)
// save the value for use in following messages
mLatestAgentComplexity = agentComplexity;
+ static LLCachedControl<U32> show_my_complexity_changes(gSavedSettings, "ShowMyComplexityChanges", 20);
+ if (!show_my_complexity_changes)
+ {
+ return;
+ }
+
if (!isAgentAvatarValid() || !gAgentWearables.areWearablesLoaded())
{
// data not ready, nothing to show.
@@ -282,7 +288,8 @@ static const char* e_hud_messages[] =
};
LLHUDRenderNotifier::LLHUDRenderNotifier() :
-mReportedHUDWarning(WARN_NONE)
+mReportedHUDWarning(WARN_NONE),
+mHUDsCount(0)
{
}
@@ -299,7 +306,14 @@ void LLHUDRenderNotifier::updateNotificationHUD(hud_complexity_list_t complexity
}
mHUDComplexityList = complexity;
+ mHUDsCount = mHUDComplexityList.size();
+ static LLCachedControl<U32> show_my_complexity_changes(gSavedSettings, "ShowMyComplexityChanges", 20);
+ if (!show_my_complexity_changes)
+ {
+ return;
+ }
+
// TODO:
// Find a way to show message with list of issues, but without making it too large
// and intrusive.
diff --git a/indra/newview/llavatarrendernotifier.h b/indra/newview/llavatarrendernotifier.h
index 3fd7a32d84..37130bfcf6 100644
--- a/indra/newview/llavatarrendernotifier.h
+++ b/indra/newview/llavatarrendernotifier.h
@@ -63,6 +63,25 @@ struct LLHUDComplexity
typedef std::list<LLHUDComplexity> hud_complexity_list_t;
+struct LLObjectComplexity
+{
+ LLObjectComplexity()
+ {
+ reset();
+ }
+ void reset()
+ {
+ objectId = LLUUID::null;
+ objectName = "";
+ objectCost = 0;
+ }
+ LLUUID objectId;
+ std::string objectName;
+ U32 objectCost;
+};
+
+typedef std::list<LLObjectComplexity> object_complexity_list_t;
+
// Class to notify user about drastic changes in agent's render weights or if other agents
// reported that user's agent is too 'heavy' for their settings
class LLAvatarRenderNotifier : public LLSingleton<LLAvatarRenderNotifier>
@@ -77,6 +96,9 @@ public:
void updateNotificationState();
void updateNotificationAgent(U32 agentComplexity);
+ void setObjectComplexityList(object_complexity_list_t object_list) { mObjectComplexityList = object_list; }
+ object_complexity_list_t getObjectComplexityList() { return mObjectComplexityList; }
+
private:
LLNotificationPtr mNotificationPtr;
@@ -109,6 +131,8 @@ private:
// Used to detect changes in voavatar's rezzed status.
// If value decreases - there were changes in outfit.
S32 mLastOutfitRezStatus;
+
+ object_complexity_list_t mObjectComplexityList;
};
// Class to notify user about heavy set of HUD
@@ -122,6 +146,7 @@ public:
bool isNotificationVisible();
hud_complexity_list_t getHUDComplexityList() { return mHUDComplexityList; }
+ S32 getHUDsCount() { return mHUDsCount; }
private:
enum EWarnLevel
@@ -144,6 +169,7 @@ private:
LLHUDComplexity mLatestHUDComplexity;
LLFrameTimer mHUDPopUpDelayTimer;
hud_complexity_list_t mHUDComplexityList;
+ S32 mHUDsCount;
};
#endif /* ! defined(LL_llavatarrendernotifier_H) */
diff --git a/indra/newview/llfloaterperformance.cpp b/indra/newview/llfloaterperformance.cpp
index a44c3a262d..c96d3dac5e 100644
--- a/indra/newview/llfloaterperformance.cpp
+++ b/indra/newview/llfloaterperformance.cpp
@@ -37,17 +37,22 @@
#include "lltextbox.h"
#include "lltrans.h"
#include "llvoavatar.h"
+#include "llvoavatarself.h"
+
+const F32 REFRESH_INTERVAL = 1.0f;
+const S32 COMPLEXITY_THRESHOLD_1 = 100000;
LLFloaterPerformance::LLFloaterPerformance(const LLSD& key)
- : LLFloater(key)
+: LLFloater(key),
+ mUpdateTimer(new LLTimer())
{
-
}
LLFloaterPerformance::~LLFloaterPerformance()
{
mComplexityChangedSignal.disconnect();
+ delete mUpdateTimer;
}
BOOL LLFloaterPerformance::postBuild()
@@ -55,32 +60,34 @@ BOOL LLFloaterPerformance::postBuild()
mMainPanel = getChild<LLPanel>("panel_performance_main");
mTroubleshootingPanel = getChild<LLPanel>("panel_performance_troubleshooting");
mNearbyPanel = getChild<LLPanel>("panel_performance_nearby");
- mScriptsPanel = getChild<LLPanel>("panel_performance_scripts");
- mPreferencesPanel = getChild<LLPanel>("panel_performance_preferences");
+ mComplexityPanel = getChild<LLPanel>("panel_performance_complexity");
+ mSettingsPanel = getChild<LLPanel>("panel_performance_preferences");
mHUDsPanel = getChild<LLPanel>("panel_performance_huds");
getChild<LLPanel>("troubleshooting_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mTroubleshootingPanel));
getChild<LLPanel>("nearby_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mNearbyPanel));
- getChild<LLPanel>("scripts_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mScriptsPanel));
- getChild<LLPanel>("preferences_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mPreferencesPanel));
+ getChild<LLPanel>("complexity_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mComplexityPanel));
+ getChild<LLPanel>("settings_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mSettingsPanel));
getChild<LLPanel>("huds_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mHUDsPanel));
initBackBtn(mTroubleshootingPanel);
initBackBtn(mNearbyPanel);
- initBackBtn(mScriptsPanel);
- initBackBtn(mPreferencesPanel);
+ initBackBtn(mComplexityPanel);
+ initBackBtn(mSettingsPanel);
initBackBtn(mHUDsPanel);
-
- mHUDsPanel->getChild<LLButton>("refresh_list_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::populateHUDList, this));
-
mHUDList = mHUDsPanel->getChild<LLNameListCtrl>("hud_list");
mHUDList->setNameListType(LLNameListCtrl::SPECIAL);
mHUDList->setHoverIconName("StopReload_Off");
mHUDList->setIconClickedCallback(boost::bind(&LLFloaterPerformance::detachItem, this, _1));
- mPreferencesPanel->getChild<LLButton>("advanced_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickAdvanced, this));
- mPreferencesPanel->getChild<LLButton>("defaults_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickRecommended, this));
+ mObjectList = mComplexityPanel->getChild<LLNameListCtrl>("obj_list");
+ mObjectList->setNameListType(LLNameListCtrl::SPECIAL);
+ mObjectList->setHoverIconName("StopReload_Off");
+ mObjectList->setIconClickedCallback(boost::bind(&LLFloaterPerformance::detachItem, this, _1));
+
+ mSettingsPanel->getChild<LLButton>("advanced_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickAdvanced, this));
+ mSettingsPanel->getChild<LLButton>("defaults_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickRecommended, this));
mNearbyPanel->getChild<LLButton>("exceptions_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickExceptions, this));
mNearbyList = mNearbyPanel->getChild<LLNameListCtrl>("nearby_list");
@@ -89,6 +96,8 @@ BOOL LLFloaterPerformance::postBuild()
mComplexityChangedSignal = gSavedSettings.getControl("IndirectMaxComplexity")->getCommitSignal()->connect(boost::bind(&LLFloaterPerformance::updateComplexityText, this));
mNearbyPanel->getChild<LLSliderCtrl>("IndirectMaxComplexity")->setCommitCallback(boost::bind(&LLFloaterPerformance::updateMaxComplexity, this));
+ LLAvatarComplexityControls::setIndirectMaxArc();
+
return TRUE;
}
@@ -107,13 +116,43 @@ void LLFloaterPerformance::showSelectedPanel(LLPanel* selected_panel)
}
}
+void LLFloaterPerformance::draw()
+{
+ if (mUpdateTimer->hasExpired())
+ {
+ getChild<LLTextBox>("fps_value")->setValue((S32)llround(LLTrace::get_frame_recording().getPeriodMeanPerSec(LLStatViewer::FPS)));
+ if (mMainPanel->getVisible())
+ {
+ mMainPanel->getChild<LLTextBox>("huds_value")->setValue(LLHUDRenderNotifier::getInstance()->getHUDsCount());
+ mMainPanel->getChild<LLTextBox>("complexity_value")->setValue((S32)gAgentAvatarp->getVisualComplexity());
+ updateNearbyComplexityDesc();
+ }
+ else if (mHUDsPanel->getVisible())
+ {
+ populateHUDList();
+ }
+ else if (mNearbyPanel->getVisible())
+ {
+ populateNearbyList();
+ updateNearbyComplexityDesc();
+ }
+ else if (mComplexityPanel->getVisible())
+ {
+ populateObjectList();
+ }
+
+ mUpdateTimer->setTimerExpirySec(REFRESH_INTERVAL);
+ }
+ LLFloater::draw();
+}
+
void LLFloaterPerformance::showMainPanel()
{
mTroubleshootingPanel->setVisible(FALSE);
mNearbyPanel->setVisible(FALSE);
- mScriptsPanel->setVisible(FALSE);
+ mComplexityPanel->setVisible(FALSE);
mHUDsPanel->setVisible(FALSE);
- mPreferencesPanel->setVisible(FALSE);
+ mSettingsPanel->setVisible(FALSE);
mMainPanel->setVisible(TRUE);
}
@@ -165,16 +204,55 @@ void LLFloaterPerformance::populateHUDList()
mHUDsPanel->getChild<LLTextBox>("huds_value")->setValue(std::to_string(complexity_list.size()));
}
+void LLFloaterPerformance::populateObjectList()
+{
+ mObjectList->clearRows();
+ mObjectList->updateColumns(true);
+
+ object_complexity_list_t complexity_list = LLAvatarRenderNotifier::getInstance()->getObjectComplexityList();
+
+ object_complexity_list_t::iterator iter = complexity_list.begin();
+ object_complexity_list_t::iterator end = complexity_list.end();
+
+ for (; iter != end; ++iter)
+ {
+ LLObjectComplexity object_complexity = *iter;
+
+ LLSD item;
+ item["special_id"] = object_complexity.objectId;
+ item["target"] = LLNameListCtrl::SPECIAL;
+ LLSD& row = item["columns"];
+ row[0]["column"] = "complex_visual";
+ row[0]["type"] = "text";
+ row[0]["value"] = "*";
+
+ row[1]["column"] = "complex_value";
+ row[1]["type"] = "text";
+ row[1]["value"] = std::to_string(object_complexity.objectCost);
+ row[1]["font"]["name"] = "SANSSERIF";
+
+ row[2]["column"] = "name";
+ row[2]["type"] = "text";
+ row[2]["value"] = object_complexity.objectName;
+ row[2]["font"]["name"] = "SANSSERIF";
+
+ mObjectList->addElement(item);
+ }
+ mObjectList->sortByColumnIndex(1, FALSE);
+}
+
void LLFloaterPerformance::populateNearbyList()
{
mNearbyList->clearRows();
mNearbyList->updateColumns(true);
+ S32 avatars = 0;
+
std::vector<LLCharacter*>::iterator char_iter = LLCharacter::sInstances.begin();
while (char_iter != LLCharacter::sInstances.end())
{
LLVOAvatar* avatar = dynamic_cast<LLVOAvatar*>(*char_iter);
- if (avatar && !avatar->isDead() && !avatar->isControlAvatar())
+ if (avatar && !avatar->isDead() && !avatar->isControlAvatar() && !avatar->isSelf())
{
avatar->calculateUpdateRenderComplexity();
@@ -204,17 +282,38 @@ void LLFloaterPerformance::populateNearbyList()
name_text->setColor(LLUIColorTable::instance().getColor("ConversationFriendColor"));
}
}
+ avatars++;
}
char_iter++;
}
- mNearbyList->sortByColumnIndex(1, FALSE);
+ mNearbyList->sortByColumnIndex(1, FALSE);
+}
+void LLFloaterPerformance::updateNearbyComplexityDesc()
+{
+ S32 max_complexity = 0;
+ std::vector<LLCharacter*>::iterator char_iter = LLCharacter::sInstances.begin();
+ while (char_iter != LLCharacter::sInstances.end())
+ {
+ LLVOAvatar* avatar = dynamic_cast<LLVOAvatar*>(*char_iter);
+ if (avatar && !avatar->isDead() && !avatar->isControlAvatar() && !avatar->isSelf())
+ {
+ max_complexity = llmax(max_complexity, (S32)avatar->getVisualComplexity());
+ }
+ char_iter++;
+ }
+ std::string desc = getString(max_complexity > COMPLEXITY_THRESHOLD_1 ? "very_high" : "medium");
+
+ if (mMainPanel->getVisible())
+ {
+ mMainPanel->getChild<LLTextBox>("avatars_nearby_value")->setValue(desc);
+ }
+ mNearbyPanel->getChild<LLTextBox>("av_nearby_value")->setValue(desc);
}
void LLFloaterPerformance::detachItem(const LLUUID& item_id)
{
LLAppearanceMgr::instance().removeItemFromAvatar(item_id);
- mHUDList->removeNameItem(item_id);
}
void LLFloaterPerformance::onClickRecommended()
diff --git a/indra/newview/llfloaterperformance.h b/indra/newview/llfloaterperformance.h
index 0cba07f21e..1facfe9225 100644
--- a/indra/newview/llfloaterperformance.h
+++ b/indra/newview/llfloaterperformance.h
@@ -37,6 +37,7 @@ public:
virtual ~LLFloaterPerformance();
/*virtual*/ BOOL postBuild();
+ /*virtual*/ void draw();
void showSelectedPanel(LLPanel* selected_panel);
void showMainPanel();
@@ -46,6 +47,7 @@ public:
private:
void initBackBtn(LLPanel* panel);
void populateHUDList();
+ void populateObjectList();
void populateNearbyList();
void onClickAdvanced();
@@ -55,15 +57,20 @@ private:
void updateMaxComplexity();
void updateComplexityText();
+ void updateNearbyComplexityDesc();
+
LLPanel* mMainPanel;
LLPanel* mTroubleshootingPanel;
LLPanel* mNearbyPanel;
- LLPanel* mScriptsPanel;
+ LLPanel* mComplexityPanel;
LLPanel* mHUDsPanel;
- LLPanel* mPreferencesPanel;
+ LLPanel* mSettingsPanel;
LLNameListCtrl* mHUDList;
+ LLNameListCtrl* mObjectList;
LLNameListCtrl* mNearbyList;
+ LLTimer* mUpdateTimer;
+
boost::signals2::connection mComplexityChangedSignal;
};
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index f69b9b3861..ab7e5f7f8a 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -10533,7 +10533,8 @@ void LLVOAvatar::accountRenderComplexityForObject(
const F32 max_attachment_complexity,
LLVOVolume::texture_cost_t& textures,
U32& cost,
- hud_complexity_list_t& hud_complexity_list)
+ hud_complexity_list_t& hud_complexity_list,
+ object_complexity_list_t& object_complexity_list)
{
if (attached_object && !attached_object->isHUDAttachment())
{
@@ -10552,12 +10553,12 @@ void LLVOAvatar::accountRenderComplexityForObject(
F32 attachment_volume_cost = 0;
F32 attachment_texture_cost = 0;
F32 attachment_children_cost = 0;
- const F32 animated_object_attachment_surcharge = 1000;
+ const F32 animated_object_attachment_surcharge = 1000;
- if (attached_object->isAnimatedObject())
- {
- attachment_volume_cost += animated_object_attachment_surcharge;
- }
+ if (attached_object->isAnimatedObject())
+ {
+ attachment_volume_cost += animated_object_attachment_surcharge;
+ }
attachment_volume_cost += volume->getRenderCost(textures);
const_child_list_t children = volume->getChildren();
@@ -10590,6 +10591,15 @@ void LLVOAvatar::accountRenderComplexityForObject(
<< LL_ENDL;
// Limit attachment complexity to avoid signed integer flipping of the wearer's ACI
cost += (U32)llclamp(attachment_total_cost, MIN_ATTACHMENT_COMPLEXITY, max_attachment_complexity);
+
+ if (isSelf())
+ {
+ LLObjectComplexity object_complexity;
+ object_complexity.objectName = attached_object->getAttachmentItemName();
+ object_complexity.objectId = attached_object->getAttachmentItemID();
+ object_complexity.objectCost = attachment_total_cost;
+ object_complexity_list.push_back(object_complexity);
+ }
}
}
}
@@ -10676,6 +10686,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
U32 cost = VISUAL_COMPLEXITY_UNKNOWN;
LLVOVolume::texture_cost_t textures;
hud_complexity_list_t hud_complexity_list;
+ object_complexity_list_t object_complexity_list;
for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
{
@@ -10706,7 +10717,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
if (volp && !volp->isAttachment())
{
accountRenderComplexityForObject(volp, max_attachment_complexity,
- textures, cost, hud_complexity_list);
+ textures, cost, hud_complexity_list, object_complexity_list);
}
}
@@ -10722,7 +10733,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
{
const LLViewerObject* attached_object = attachment_iter->get();
accountRenderComplexityForObject(attached_object, max_attachment_complexity,
- textures, cost, hud_complexity_list);
+ textures, cost, hud_complexity_list, object_complexity_list);
}
}
@@ -10782,13 +10793,13 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
mVisualComplexity = cost;
mVisualComplexityStale = false;
- static LLCachedControl<U32> show_my_complexity_changes(gSavedSettings, "ShowMyComplexityChanges", 20);
-
- if (isSelf() && show_my_complexity_changes)
+ if (isSelf())
{
// Avatar complexity
LLAvatarRenderNotifier::getInstance()->updateNotificationAgent(mVisualComplexity);
+ LLAvatarRenderNotifier::getInstance()->setObjectComplexityList(object_complexity_list);
+
// HUD complexity
LLHUDRenderNotifier::getInstance()->updateNotificationHUD(hud_complexity_list);
}
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 74ef589ca4..f83f9d4eaf 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -299,7 +299,8 @@ public:
const F32 max_attachment_complexity,
LLVOVolume::texture_cost_t& textures,
U32& cost,
- hud_complexity_list_t& hud_complexity_list);
+ hud_complexity_list_t& hud_complexity_list,
+ object_complexity_list_t& object_complexity_list);
void calculateUpdateRenderComplexity();
static const U32 VISUAL_COMPLEXITY_UNKNOWN;
void updateVisualComplexity();
diff --git a/indra/newview/skins/default/textures/icons/green_dot.png b/indra/newview/skins/default/textures/icons/green_dot.png
deleted file mode 100644
index 02c07810c2..0000000000
--- a/indra/newview/skins/default/textures/icons/green_dot.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 51bb91cbf9..a875c4e848 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -234,8 +234,6 @@ with the same filename but different name
<texture name="Generic_Person" file_name="icons/Generic_Person.png" preload="false" />
<texture name="Generic_Person_Large" file_name="icons/Generic_Person_Large.png" preload="false" />
- <texture name="Green_dot" file_name="icons/green_dot.png" preload="false" />
-
<texture name="Hand" file_name="icons/hand.png" preload="false" />
<texture name="Help_Press" file_name="navbar/Help_Press.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/floater_performance.xml b/indra/newview/skins/default/xui/en/floater_performance.xml
index 42269ba34a..09af364266 100644
--- a/indra/newview/skins/default/xui/en/floater_performance.xml
+++ b/indra/newview/skins/default/xui/en/floater_performance.xml
@@ -1,409 +1,387 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
- height="550"
+ height="590"
layout="topleft"
name="performance"
save_rect="true"
title="IMPROVE GRAPHICS SPEED"
width="580">
+ <string
+ name="very_high"
+ value="very high"/>
+ <string
+ name="medium"
+ value="medium"/>
<panel
bevel_style="none"
follows="left|top"
- height="490"
+ height="540"
width="580"
- name="panel_performance_main"
+ name="panel_top"
visible="true"
layout="topleft"
left="0"
top="0">
- <text
+ <panel
+ bg_alpha_color="black"
+ background_visible="true"
+ background_opaque="false"
+ border="false"
+ bevel_style="none"
follows="left|top"
- font="SansSerifHuge"
- text_color="White"
- height="20"
+ height="40"
+ width="560"
+ name="fps_subpanel"
layout="topleft"
left="10"
- name="fps_lbl"
- top="17"
- width="130">
- Current FPS
- </text>
- <text
- follows="left|top"
- font="SansSerifHugeBold"
- text_color="White"
- height="20"
- layout="topleft"
- left_pad="5"
- name="fps_value"
- width="100">
- 75.2
- </text>
-
- <icon
- height="16"
- width="16"
- image_name="Green_dot"
- mouse_opaque="true"
- name="icon_arrow4"
- follows="right|top"
- top="16"
- right="-154"/>
- <icon
- height="16"
- width="16"
- image_name="Green_dot"
- mouse_opaque="true"
- name="icon_arrow4"
- follows="right|top"
- top_pad="9"/>
- <icon
- height="16"
- width="16"
- image_name="Green_dot"
- mouse_opaque="true"
- name="icon_arrow4"
- follows="right|top"
- top_pad="8"/>
-
- <text
- follows="right|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- top="17"
- right="-90"
- name="client_lbl"
- width="60">
- Client:
- </text>
- <text
- follows="right|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- top_pad="5"
- name="client_lbl"
- width="60">
- Network:
- </text>
- <text
- follows="right|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- top_pad="5"
- name="client_lbl"
- width="60">
- Server:
- </text>
- <text
- follows="right|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- right="-15"
- name="client_value"
- top="17"
- width="45">
- Normal
- </text>
- <text
- follows="right|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- name="network_value"
- top_pad="5"
- width="45">
- Normal
- </text>
- <text
- follows="right|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- name="server_value"
- top_pad="5"
- width="45">
- Normal
- </text>
- <panel
- bg_alpha_color="PerformanceFloaterGray"
- background_visible="true"
- background_opaque="false"
- border="true"
- bevel_style="none"
- follows="left|top"
- height="60"
- width="560"
- name="troubleshooting_subpanel"
- layout="topleft"
- left="10"
- top="102">
- <text
- follows="left|top"
- font="SansSerifLarge"
- text_color="White"
- height="20"
- layout="topleft"
- left="10"
- name="troubleshooting_lbl"
- top="12"
- width="395">
- General troubleshooting
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- text_color="White"
- height="20"
- layout="topleft"
- left="10"
- name="troubleshooting_info"
- top_pad="5"
- width="395">
- Choose among common problems and see what you can do.
- </text>
- <icon
- height="16"
- width="16"
- image_name="Arrow_Right_Off"
- mouse_opaque="true"
- name="icon_arrow1"
- follows="right|top"
- top="24"
- right="-20"/>
+ top="5">
+ <text
+ follows="left|top"
+ font="SansSerifHuge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="20"
+ top="8"
+ name="fps_value"
+ width="40">
+ 75
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left_pad="0"
+ top="14"
+ name="fps_lbl"
+ width="450">
+ FPS -- 60 or more for the best experience
+ </text>
+ </panel>
</panel>
<panel
- bg_alpha_color="PerformanceFloaterGray"
- background_visible="true"
- background_opaque="false"
- border="true"
bevel_style="none"
follows="left|top"
- height="60"
- width="560"
- name="nearby_subpanel"
- layout="topleft"
- top_pad="20">
- <text
- follows="left|top"
- font="SansSerifLarge"
- text_color="White"
- height="20"
- layout="topleft"
- left="10"
- name="avatars_nearby_lbl"
- top="12"
- width="115">
- Avatars nearby:
- </text>
- <text
- follows="left|top"
- font="SansSerifLarge"
- text_color="PerformanceMid"
- height="20"
- layout="topleft"
- left_pad="3"
- name="avatars_nearby_value"
- width="100">
- 42 (very high)
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- text_color="White"
- height="20"
- layout="topleft"
- left="10"
- name="avatars_nearby_info"
- top_pad="5"
- width="395">
- Click to review avatars and choose a complexity limit.
- </text>
- <icon
- height="16"
- width="16"
- image_name="Arrow_Right_Off"
- mouse_opaque="true"
- name="icon_arrow2"
- follows="right|top"
- top="24"
- right="-20"/>
- </panel>
- <panel
- bg_alpha_color="PerformanceFloaterGray"
- background_visible="true"
- background_opaque="false"
- border="true"
- bevel_style="none"
- follows="left|top"
- height="60"
- width="560"
- name="preferences_subpanel"
- layout="topleft"
- top_pad="20">
- <text
- follows="left|top"
- font="SansSerifLarge"
- text_color="White"
- height="20"
- layout="topleft"
- left="10"
- name="complexity_lbl"
- top="12"
- width="110">
- This location is
- </text>
- <text
- follows="left|top"
- font="SansSerifLarge"
- text_color="PerformanceMid"
- height="20"
- layout="topleft"
- left_pad="3"
- name="complexity_value"
- width="100">
- very complex
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- text_color="White"
- height="20"
- layout="topleft"
- left="10"
- name="complexity_info"
- top_pad="5"
- width="395">
- Try changing graphics quality or draw distance.
- </text>
- <icon
- height="16"
- width="16"
- image_name="Arrow_Right_Off"
- mouse_opaque="true"
- name="icon_arrow3"
- follows="right|top"
- top="24"
- right="-20"/>
- </panel>
- <panel
- bg_alpha_color="PerformanceFloaterGray"
- background_visible="true"
- background_opaque="false"
- border="true"
- bevel_style="none"
- follows="left|top"
- height="60"
- width="560"
- name="scripts_subpanel"
+ height="540"
+ width="580"
+ name="panel_performance_main"
+ visible="true"
layout="topleft"
- top_pad="20">
- <text
+ left="0"
+ top="60">
+ <panel
+ bg_alpha_color="PerformanceFloaterGray"
+ background_visible="true"
+ background_opaque="false"
+ border="true"
+ bevel_style="none"
follows="left|top"
- font="SansSerifLarge"
- text_color="White"
- height="20"
+ height="60"
+ width="560"
+ name="presets_subpanel"
layout="topleft"
left="10"
- name="scripts_lbl"
- top="12"
- width="88">
- Your avatar:
- </text>
- <text
+ top="5">
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="presets_lbl"
+ top="12"
+ width="395">
+ Quick settings for common situations
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="presets_desc"
+ top_pad="5"
+ width="395">
+ Choose settings for parties, exploration, photography, and more.
+ </text>
+ <icon
+ height="16"
+ width="16"
+ image_name="Arrow_Right_Off"
+ mouse_opaque="true"
+ name="icon_arrow1"
+ follows="right|top"
+ top="24"
+ right="-20"/>
+ </panel>
+ <panel
+ bg_alpha_color="PerformanceFloaterGray"
+ background_visible="true"
+ background_opaque="false"
+ border="true"
+ bevel_style="none"
follows="left|top"
- font="SansSerifLarge"
- text_color="PerformanceMid"
- height="20"
+ height="60"
+ width="560"
+ name="settings_subpanel"
layout="topleft"
- left_pad="2"
- name="scripts_value"
- width="100">
- 12 scripts
- </text>
- <text
+ top_pad="20">
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="settings_lbl"
+ top="12"
+ width="180">
+ Individual settings
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="settings_desc"
+ top_pad="5"
+ width="395">
+ More control over quality, visibility distance, and enhancements.
+ </text>
+ <icon
+ height="16"
+ width="16"
+ image_name="Arrow_Right_Off"
+ mouse_opaque="true"
+ name="icon_arrow3"
+ follows="right|top"
+ top="24"
+ right="-20"/>
+ </panel>
+ <panel
+ bg_alpha_color="PerformanceFloaterGray"
+ background_visible="true"
+ background_opaque="false"
+ border="true"
+ bevel_style="none"
follows="left|top"
- font="SansSerif"
- text_color="White"
- height="20"
+ height="60"
+ width="560"
+ name="nearby_subpanel"
layout="topleft"
- left="10"
- name="scripts_info"
- top_pad="5"
- width="395">
- Removing high-impact attachments may improve graphics speed.
- </text>
- <icon
- height="16"
- width="16"
- image_name="Arrow_Right_Off"
- mouse_opaque="true"
- name="icon_arrow4"
- follows="right|top"
- top="24"
- right="-20"/>
- </panel>
- <panel
- bg_alpha_color="PerformanceFloaterGray"
- background_visible="true"
- background_opaque="false"
- border="true"
- bevel_style="none"
- follows="left|top"
- height="60"
- width="560"
- name="huds_subpanel"
- layout="topleft"
- top_pad="20">
- <text
+ top_pad="20">
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="avatars_nearby_lbl"
+ top="12"
+ width="205">
+ Nearby avatar complexity is
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="PerformanceMid"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ name="avatars_nearby_value"
+ width="100">
+ very high
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="avatars_nearby_desc"
+ top_pad="5"
+ width="395">
+ Choose which avatars are not displayed in detail, to increase FPS.
+ </text>
+ <icon
+ height="16"
+ width="16"
+ image_name="Arrow_Right_Off"
+ mouse_opaque="true"
+ name="icon_arrow2"
+ follows="right|top"
+ top="24"
+ right="-20"/>
+ </panel>
+ <panel
+ bg_alpha_color="PerformanceFloaterGray"
+ background_visible="true"
+ background_opaque="false"
+ border="true"
+ bevel_style="none"
follows="left|top"
- font="SansSerifLarge"
- text_color="White"
- height="20"
+ height="60"
+ width="560"
+ name="complexity_subpanel"
layout="topleft"
- left="10"
- name="huds_lbl"
- top="12"
- width="80">
- Your HUDs:
- </text>
- <text
+ top_pad="20">
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="complexity_lbl"
+ top="12"
+ width="180">
+ Your avatar complexity is
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="PerformanceMid"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ name="complexity_value"
+ width="100">
+ 275
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="complexity_info"
+ top_pad="5"
+ width="455">
+ Reduce the complexity of your avatar if you aren't satisfied with current FPS.
+ </text>
+ <icon
+ height="16"
+ width="16"
+ image_name="Arrow_Right_Off"
+ mouse_opaque="true"
+ name="icon_arrow4"
+ follows="right|top"
+ top="24"
+ right="-20"/>
+ </panel>
+ <panel
+ bg_alpha_color="PerformanceFloaterGray"
+ background_visible="true"
+ background_opaque="false"
+ border="true"
+ bevel_style="none"
follows="left|top"
- font="SansSerifLarge"
- text_color="PerformanceMid"
- height="20"
+ height="60"
+ width="560"
+ name="huds_subpanel"
layout="topleft"
- left_pad="3"
- name="huds_value"
- width="100">
- 7
- </text>
- <text
+ top_pad="20">
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="huds_lbl"
+ top="12"
+ width="135">
+ Your current HUDs:
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="PerformanceMid"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ name="huds_value"
+ width="100">
+ 7
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="huds_desc"
+ top_pad="5"
+ width="395">
+ Removing HUDs you are not using can improve speed.
+ </text>
+ <icon
+ height="16"
+ width="16"
+ image_name="Arrow_Right_Off"
+ mouse_opaque="true"
+ name="icon_arrow4"
+ follows="right|top"
+ top="24"
+ right="-20"/>
+ </panel>
+ <panel
+ bg_alpha_color="PerformanceFloaterGray"
+ background_visible="true"
+ background_opaque="false"
+ border="true"
+ bevel_style="none"
follows="left|top"
- font="SansSerif"
- text_color="White"
- height="20"
+ height="60"
+ width="560"
+ name="troubleshooting_subpanel"
layout="topleft"
- left="10"
- name="huds_info"
- top_pad="5"
- width="395">
- Removing HUDs you are not using can improve graphics speed.
- </text>
- <icon
- height="16"
- width="16"
- image_name="Arrow_Right_Off"
- mouse_opaque="true"
- name="icon_arrow4"
- follows="right|top"
- top="24"
- right="-20"/>
+ top_pad="20">
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="troubleshooting_lbl"
+ top="12"
+ width="395">
+ General troubleshooting
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ text_color="White"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="troubleshooting_desc"
+ top_pad="5"
+ width="395">
+ Choose among common problems and see what you can do.
+ </text>
+ <icon
+ height="16"
+ width="16"
+ image_name="Arrow_Right_Off"
+ mouse_opaque="true"
+ name="icon_arrow1"
+ follows="right|top"
+ top="24"
+ right="-20"/>
+ </panel>
</panel>
- </panel>
<panel
filename="panel_performance_troubleshooting.xml"
follows="all"
@@ -411,7 +389,7 @@
left="0"
name="panel_performance_troubleshooting"
visible="false"
- top="0" />
+ top="55" />
<panel
filename="panel_performance_nearby.xml"
follows="all"
@@ -419,15 +397,15 @@
left="0"
name="panel_performance_nearby"
visible="false"
- top="0" />
+ top="55" />
<panel
- filename="panel_performance_scripts.xml"
+ filename="panel_performance_complexity.xml"
follows="all"
layout="topleft"
left="0"
- name="panel_performance_scripts"
+ name="panel_performance_complexity"
visible="false"
- top="0" />
+ top="55" />
<panel
filename="panel_performance_preferences.xml"
follows="all"
@@ -435,7 +413,7 @@
left="0"
name="panel_performance_preferences"
visible="false"
- top="0" />
+ top="55" />
<panel
filename="panel_performance_huds.xml"
follows="all"
@@ -443,5 +421,5 @@
left="0"
name="panel_performance_huds"
visible="false"
- top="0" />
+ top="55" />
</floater>
diff --git a/indra/newview/skins/default/xui/en/panel_performance_scripts.xml b/indra/newview/skins/default/xui/en/panel_performance_complexity.xml
index e6dc4a217d..8d4512c4f7 100644
--- a/indra/newview/skins/default/xui/en/panel_performance_scripts.xml
+++ b/indra/newview/skins/default/xui/en/panel_performance_complexity.xml
@@ -4,7 +4,7 @@
follows="left|top"
height="490"
width="580"
- name="panel_performance_scripts"
+ name="panel_performance_complexity"
layout="topleft"
left="0"
top="0">
@@ -15,7 +15,7 @@
mouse_opaque="true"
follows="left|top"
name="back_btn"
- top="10"
+ top="7"
image_selected="Arrow_Left_Off"
image_pressed="Arrow_Left_Off"
image_unselected="Arrow_Left_Off"
@@ -27,7 +27,7 @@
height="20"
layout="topleft"
left_pad="3"
- top="13"
+ top="10"
name="back_lbl"
width="40">
Back
@@ -35,25 +35,14 @@
<text
follows="left|top"
font="SansSerifLarge"
- text_color="PerformanceMid"
+ text_color="white"
height="20"
layout="topleft"
left="20"
top_pad="10"
name="attachments_title"
width="195">
- Avatar attachment scripts:
- </text>
- <text
- follows="left|top"
- font="SansSerifLargeBold"
- text_color="PerformanceMid"
- height="20"
- layout="topleft"
- left_pad="5"
- name="attachments_value"
- width="70">
- 12
+ My avatar complexity
</text>
<text
follows="left|top"
@@ -65,7 +54,7 @@
left="20"
name="attachments_desc1"
width="580">
- These attachments contain scripts (embedded apps) that use memory.
+ Complex attachments require more time and memory to display.
</text>
<text
follows="left|top"
@@ -77,6 +66,27 @@
left="20"
name="attachments_desc2"
width="580">
- If there are any you don't need, detaching them may improve graphics speed.
+ While you are in this location, removing the most complex ones may increase speed.
</text>
+ <name_list
+ column_padding="0"
+ draw_stripes="true"
+ height="220"
+ follows="left|top"
+ layout="topleft"
+ name="obj_list"
+ top_pad="10"
+ width="540">
+ <name_list.columns
+ label=""
+ name="complex_visual"
+ width="90" />
+ <name_list.columns
+ label=""
+ name="complex_value"
+ width="40" />
+ <name_list.columns
+ label=""
+ name="name"/>
+ </name_list>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_performance_huds.xml b/indra/newview/skins/default/xui/en/panel_performance_huds.xml
index c881fadbe8..96bdf2412f 100644
--- a/indra/newview/skins/default/xui/en/panel_performance_huds.xml
+++ b/indra/newview/skins/default/xui/en/panel_performance_huds.xml
@@ -15,7 +15,7 @@
mouse_opaque="true"
follows="left|top"
name="back_btn"
- top="10"
+ top="7"
image_selected="Arrow_Left_Off"
image_pressed="Arrow_Left_Off"
image_unselected="Arrow_Left_Off"
@@ -27,7 +27,7 @@
height="20"
layout="topleft"
left_pad="3"
- top="13"
+ top="10"
name="back_lbl"
width="40">
Back
@@ -35,14 +35,14 @@
<text
follows="left|top"
font="SansSerifLarge"
- text_color="PerformanceMid"
+ text_color="White"
height="20"
layout="topleft"
left="20"
top_pad="10"
name="huds_title"
- width="120">
- HUDs displayed:
+ width="135">
+ Your current HUDs:
</text>
<text
follows="left|top"
@@ -65,7 +65,7 @@
left="20"
name="huds_desc1"
width="540">
- If there are any you don't need, detaching them may improve graphics speed.
+ Detaching HUDs you aren't using us always a good idea, but especially in a complex location.
</text>
<text
follows="left|top"
@@ -100,13 +100,5 @@
label=""
name="name"/>
</name_list>
- <button
- follows="left|top"
- height="19"
- label="Refresh List"
- layout="topleft"
- name="refresh_list_btn"
- top_pad="20"
- width="100" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_performance_nearby.xml b/indra/newview/skins/default/xui/en/panel_performance_nearby.xml
index d71b5334cd..28ffbd5c2e 100644
--- a/indra/newview/skins/default/xui/en/panel_performance_nearby.xml
+++ b/indra/newview/skins/default/xui/en/panel_performance_nearby.xml
@@ -15,7 +15,7 @@
mouse_opaque="true"
follows="left|top"
name="back_btn"
- top="10"
+ top="7"
image_selected="Arrow_Left_Off"
image_pressed="Arrow_Left_Off"
image_unselected="Arrow_Left_Off"
@@ -27,7 +27,7 @@
height="20"
layout="topleft"
left_pad="3"
- top="13"
+ top="10"
name="back_lbl"
width="40">
Back
@@ -35,14 +35,14 @@
<text
follows="left|top"
font="SansSerifLarge"
- text_color="PerformanceMid"
+ text_color="White"
height="20"
layout="topleft"
left="20"
top_pad="10"
name="av_nearby_title"
- width="215">
- Avatars within draw distance:
+ width="205">
+ Nearby avatar complexity is
</text>
<text
follows="left|top"
@@ -53,7 +53,7 @@
left_pad="3"
name="av_nearby_value"
width="150">
- 42 (very high)
+ very high
</text>
<text
follows="left|top"
@@ -65,7 +65,7 @@
top_pad="5"
name="av_nearby_desc"
width="580">
- Some avatars nearby are slow to display. Choosing complexity limit may help graphics speed.
+ Some avatars nearby are slow to display. Choosing a complexity limit may help graphics speed.
</text>
<slider
control_name="IndirectMaxComplexity"
@@ -74,7 +74,8 @@
height="16"
initial_value="101"
increment="1"
- label="Avatar Maximum Complexity:"
+ label="Maximum avatar complexity"
+ text_color="White"
label_width="165"
layout="topleft"
min_val="1"
@@ -82,6 +83,7 @@
name="IndirectMaxComplexity"
show_text="false"
top_pad="10"
+ left="40"
width="300">
</slider>
<text
@@ -92,7 +94,7 @@
layout="topleft"
top_delta="0"
left_delta="304"
- text_readonly_color="LabelDisabledColor"
+ text_color="White"
name="IndirectMaxComplexityText"
width="65">
0
@@ -116,7 +118,7 @@
<name_list.columns
label=""
name="complex_value"
- width="40" />
+ width="50" />
<name_list.columns
label=""
name="name"/>
@@ -131,7 +133,7 @@
top_pad="10"
name="av_nearby_desc2"
width="580">
- You can also right-click on an avatar to control display.
+ You can also right-click on an avatar in-world to control display.
</text>
<button
height="23"
@@ -147,6 +149,7 @@
height="16"
initial_value="true"
label="Always display friends"
+ label_text.text_color="White"
layout="topleft"
name="display_friends"
top_pad="3"
diff --git a/indra/newview/skins/default/xui/en/panel_performance_preferences.xml b/indra/newview/skins/default/xui/en/panel_performance_preferences.xml
index 81605b35a2..aaa27061e3 100644
--- a/indra/newview/skins/default/xui/en/panel_performance_preferences.xml
+++ b/indra/newview/skins/default/xui/en/panel_performance_preferences.xml
@@ -15,7 +15,7 @@
mouse_opaque="true"
follows="left|top"
name="back_btn"
- top="10"
+ top="7"
image_selected="Arrow_Left_Off"
image_pressed="Arrow_Left_Off"
image_unselected="Arrow_Left_Off"
@@ -27,7 +27,7 @@
height="20"
layout="topleft"
left_pad="3"
- top="13"
+ top="10"
name="back_lbl"
width="40">
Back
diff --git a/indra/newview/skins/default/xui/en/panel_performance_troubleshooting.xml b/indra/newview/skins/default/xui/en/panel_performance_troubleshooting.xml
index d942580880..0a14eeb1c0 100644
--- a/indra/newview/skins/default/xui/en/panel_performance_troubleshooting.xml
+++ b/indra/newview/skins/default/xui/en/panel_performance_troubleshooting.xml
@@ -15,7 +15,7 @@
mouse_opaque="true"
follows="left|top"
name="back_btn"
- top="10"
+ top="7"
image_selected="Arrow_Left_Off"
image_pressed="Arrow_Left_Off"
image_unselected="Arrow_Left_Off"
@@ -27,7 +27,7 @@
height="20"
layout="topleft"
left_pad="3"
- top="13"
+ top="10"
name="back_lbl"
width="40">
Back