Separate Asset and Texture Coro queues to prevent stalling of textures [via Drake]

master
Beq 2017-09-08 22:43:42 +01:00
parent 0c09ed77eb
commit da4978540a
4 changed files with 38 additions and 2 deletions

View File

@ -1758,6 +1758,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>AssetFetchConcurrency</key>
<map>
<key>Comment</key>
<string>Maximum number of HTTP connections used for asset fetches</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>U32</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AuctionShowFence</key>
<map>
<key>Comment</key>

View File

@ -71,6 +71,13 @@ static const struct
"",
"other"
},
// <FS:Beq> Avoid stall in texture fetch due to asset fetching. [Drake]
{ // AP_ASSET
12, 1, 16, 0, true,
"AssetFetchConcurrency",
"asset fetch"
},
// </FS:Beq>
{ // AP_TEXTURE
8, 1, 12, 0, true,
"TextureFetchConcurrency",

View File

@ -61,6 +61,22 @@ public:
/// Pipelined: no
AP_DEFAULT,
// <FS:Beq> 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,
// </FS:Beq>
/// Texture fetching policy class. Used to
/// download textures via capability or SSA
/// baking service. Deep queueing of requests.

View File

@ -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);
// <FS:Beq> 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);
// </FS:Beq>
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("assetRequestCoro", httpPolicy));
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);