diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6f003be57a..165b79e20c 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1758,6 +1758,17 @@ Value 1 + AssetFetchConcurrency + + Comment + Maximum number of HTTP connections used for asset fetches + Persist + 1 + Type + U32 + Value + 0 + AuctionShowFence Comment diff --git a/indra/newview/llappcorehttp.cpp b/indra/newview/llappcorehttp.cpp index 2eee4d65e3..599b983d88 100644 --- a/indra/newview/llappcorehttp.cpp +++ b/indra/newview/llappcorehttp.cpp @@ -71,6 +71,13 @@ static const struct "", "other" }, + // Avoid stall in texture fetch due to asset fetching. [Drake] + { // AP_ASSET + 12, 1, 16, 0, true, + "AssetFetchConcurrency", + "asset fetch" + }, + // { // AP_TEXTURE 8, 1, 12, 0, true, "TextureFetchConcurrency", diff --git a/indra/newview/llappcorehttp.h b/indra/newview/llappcorehttp.h index 95c138d598..953b30e699 100644 --- a/indra/newview/llappcorehttp.h +++ b/indra/newview/llappcorehttp.h @@ -61,6 +61,22 @@ public: /// Pipelined: no AP_DEFAULT, + // Avoid stall in texture fetch due to asset fetching. [Drake] + /// Asset fetching policy class. Used to + /// download assets via capability. + /// Deep queueing of requests. + /// Do not share. GET requests only. + /// + /// Destination: cdn:80 + /// Protocol: http: + /// Transfer size: KB-MB + /// Long poll: no + /// Concurrency: high + /// Request rate: high + /// Pipelined: yes + AP_ASSET, + // + /// Texture fetching policy class. Used to /// download textures via capability or SSA /// baking service. Deep queueing of requests. diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp index 8abd1f9b82..a6d6a4ad02 100644 --- a/indra/newview/llviewerassetstorage.cpp +++ b/indra/newview/llviewerassetstorage.cpp @@ -522,8 +522,10 @@ void LLViewerAssetStorage::assetRequestCoro( std::string url = getAssetURL(mViewerAssetUrl, uuid,atype); LL_DEBUGS("ViewerAsset") << "request url: " << url << LL_ENDL; - - LLCore::HttpRequest::policy_t httpPolicy(LLAppCoreHttp::AP_TEXTURE); + // Avoid stall in texture fetch due to asset fetching.[Drake] + // LLCore::HttpRequest::policy_t httpPolicy(LLAppCoreHttp::AP_TEXTURE); + LLCore::HttpRequest::policy_t httpPolicy(LLAppCoreHttp::AP_ASSET); + // LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("assetRequestCoro", httpPolicy)); LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);