diff options
-rw-r--r-- | indra/newview/llappviewer.cpp | 11 | ||||
-rw-r--r-- | indra/newview/lltexturefetch.cpp | 7 | ||||
-rw-r--r-- | indra/newview/llviewerassetstats.cpp | 9 | ||||
-rw-r--r-- | indra/newview/llviewerassetstats.h | 14 | ||||
-rw-r--r-- | indra/newview/tests/llviewerassetstats_test.cpp | 18 |
5 files changed, 36 insertions, 23 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index e696e1af84..587d887146 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -666,11 +666,18 @@ bool LLAppViewer::init() { // Viewer metrics initialization - if (gSavedSettings.getBOOL("QAMode") && gSavedSettings.getBOOL("QAModeMetricsSubmode")) + static LLCachedControl<BOOL> metrics_submode(gSavedSettings, + "QAModeMetricsSubmode", + FALSE, + "Enables metrics submode when QAMode is also enabled"); + + bool qa_mode(false); + if (gSavedSettings.getBOOL("QAMode") && metrics_submode) { app_metrics_interval = METRICS_INTERVAL_QA; + qa_mode = true; } - LLViewerAssetStatsFF::init(); + LLViewerAssetStatsFF::init(qa_mode); } initThreads(); diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index e574a35479..8e43084adb 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -2680,8 +2680,9 @@ void LLTextureFetch::cmdEnqueue(TFRequest * req) { lockQueue(); mCommands.push_back(req); - wake(); unlockQueue(); + + wake(); } TFRequest * LLTextureFetch::cmdDequeue() @@ -2706,7 +2707,6 @@ void LLTextureFetch::cmdDoWork() return; // debug: don't do any work } - lockQueue(); TFRequest * req = cmdDequeue(); if (req) { @@ -2714,7 +2714,6 @@ void LLTextureFetch::cmdDoWork() req->doWork(this); delete req; } - unlockQueue(); } @@ -2834,7 +2833,7 @@ TFReqSendMetrics::doWork(LLTextureFetch * fetcher) } // In QA mode, Metrics submode, log the result for ease of testing - if (gSavedSettings.getBOOL("QAMode") && gSavedSettings.getBOOL("QAModeMetricsSubmode")) + if (gViewerAssetStatsThread1->isQAMode()) { LL_INFOS("QAViewerMetrics") << thread1_stats << LL_ENDL; } diff --git a/indra/newview/llviewerassetstats.cpp b/indra/newview/llviewerassetstats.cpp index c3e58cdd56..a63c1bf66d 100644 --- a/indra/newview/llviewerassetstats.cpp +++ b/indra/newview/llviewerassetstats.cpp @@ -129,7 +129,8 @@ LLViewerAssetStats::PerRegionStats::accumulateTime(duration_t now) // ------------------------------------------------------ // LLViewerAssetStats class definition // ------------------------------------------------------ -LLViewerAssetStats::LLViewerAssetStats() +LLViewerAssetStats::LLViewerAssetStats(bool qa_mode) + : mQAMode(qa_mode) { reset(); } @@ -539,15 +540,15 @@ record_response_thread1(LLViewerAssetType::EType at, bool with_http, bool is_tem void -init() +init(bool qa_mode) { if (! gViewerAssetStatsMain) { - gViewerAssetStatsMain = new LLViewerAssetStats; + gViewerAssetStatsMain = new LLViewerAssetStats(qa_mode); } if (! gViewerAssetStatsThread1) { - gViewerAssetStatsThread1 = new LLViewerAssetStats; + gViewerAssetStatsThread1 = new LLViewerAssetStats(qa_mode); } } diff --git a/indra/newview/llviewerassetstats.h b/indra/newview/llviewerassetstats.h index cb63b9c511..1668a1bc9d 100644 --- a/indra/newview/llviewerassetstats.h +++ b/indra/newview/llviewerassetstats.h @@ -140,7 +140,7 @@ public: }; public: - LLViewerAssetStats(); + LLViewerAssetStats(bool qa_mode); // Default destructor is correct. LLViewerAssetStats & operator=(const LLViewerAssetStats &); // Not defined @@ -196,6 +196,10 @@ public: // level. The "regions" information must be correctly formed or the // final result is undefined (little defensive action). static void mergeRegionsLLSD(const LLSD & src, LLSD & dst); + + // QA mode is established during initialization so we don't + // touch LLSD at runtime. + bool isQAMode() const { return mQAMode; } protected: typedef std::map<LLUUID, LLPointer<PerRegionStats> > PerRegionContainer; @@ -215,6 +219,9 @@ protected: // Time of last reset duration_t mResetTimestamp; + + // QA Mode + const bool mQAMode; }; @@ -245,7 +252,7 @@ namespace LLViewerAssetStatsFF * you'll likely get away with calling it afterwards. cleanup() should only be * called after threads are shutdown to prevent races on the global pointers. */ -void init(); +void init(bool qa_mode); void cleanup(); @@ -298,5 +305,4 @@ void merge_stats(const LLSD & src, LLSD & dst); } // namespace LLViewerAssetStatsFF - -#endif // LL_LLVIEWERASSETSTATUS_H +#endif // LL_LLVIEWERASSETSTATUS_H diff --git a/indra/newview/tests/llviewerassetstats_test.cpp b/indra/newview/tests/llviewerassetstats_test.cpp index a44712e8ad..5a178fc585 100644 --- a/indra/newview/tests/llviewerassetstats_test.cpp +++ b/indra/newview/tests/llviewerassetstats_test.cpp @@ -133,7 +133,7 @@ namespace tut { ensure("Global gViewerAssetStatsMain should be NULL", (NULL == gViewerAssetStatsMain)); - LLViewerAssetStats * it = new LLViewerAssetStats(); + LLViewerAssetStats * it = new LLViewerAssetStats(false); ensure("Global gViewerAssetStatsMain should still be NULL", (NULL == gViewerAssetStatsMain)); @@ -174,7 +174,7 @@ namespace tut template<> template<> void tst_viewerassetstats_index_object_t::test<3>() { - LLViewerAssetStats * it = new LLViewerAssetStats(); + LLViewerAssetStats * it = new LLViewerAssetStats(false); it->setRegionID(region1); LLSD sd = it->asLLSD(); @@ -193,7 +193,7 @@ namespace tut template<> template<> void tst_viewerassetstats_index_object_t::test<4>() { - gViewerAssetStatsMain = new LLViewerAssetStats(); + gViewerAssetStatsMain = new LLViewerAssetStats(false); LLViewerAssetStatsFF::set_region_main(region1); LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); @@ -230,8 +230,8 @@ namespace tut template<> template<> void tst_viewerassetstats_index_object_t::test<5>() { - gViewerAssetStatsThread1 = new LLViewerAssetStats(); - gViewerAssetStatsMain = new LLViewerAssetStats(); + gViewerAssetStatsThread1 = new LLViewerAssetStats(false); + gViewerAssetStatsMain = new LLViewerAssetStats(false); LLViewerAssetStatsFF::set_region_main(region1); LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); @@ -272,7 +272,7 @@ namespace tut template<> template<> void tst_viewerassetstats_index_object_t::test<6>() { - gViewerAssetStatsMain = new LLViewerAssetStats(); + gViewerAssetStatsMain = new LLViewerAssetStats(false); LLViewerAssetStatsFF::set_region_main(region1); @@ -329,7 +329,7 @@ namespace tut template<> template<> void tst_viewerassetstats_index_object_t::test<7>() { - gViewerAssetStatsMain = new LLViewerAssetStats(); + gViewerAssetStatsMain = new LLViewerAssetStats(false); LLViewerAssetStatsFF::set_region_main(region1); @@ -399,8 +399,8 @@ namespace tut template<> template<> void tst_viewerassetstats_index_object_t::test<8>() { - gViewerAssetStatsThread1 = new LLViewerAssetStats(); - gViewerAssetStatsMain = new LLViewerAssetStats(); + gViewerAssetStatsThread1 = new LLViewerAssetStats(false); + gViewerAssetStatsMain = new LLViewerAssetStats(false); LLViewerAssetStatsFF::set_region_main(region1); LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); |