diff options
-rw-r--r-- | indra/newview/llmanipscale.cpp | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | indra/newview/llmeshrepository.cpp | 63 | ||||
-rw-r--r-- | indra/newview/llviewerregion.cpp | 1 |
3 files changed, 58 insertions, 7 deletions
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp index 0eedabb5de..4eb94dfb8e 100644 --- a/indra/newview/llmanipscale.cpp +++ b/indra/newview/llmanipscale.cpp @@ -92,7 +92,6 @@ F32 get_default_max_prim_scale(bool is_flora) // a bit of a hack, but if it's foilage, we don't want to use the // new larger scale which would result in giant trees and grass if (gMeshRepo.meshRezEnabled() && - !gAgent.getRegion()->getCapability("ObjectAdd").empty() && !is_flora) { return DEFAULT_MAX_PRIM_SCALE; diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index d4198041ec..7568f3659b 100644..100755 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -468,6 +468,49 @@ public: }; +void log_upload_error(const LLSD& content,std::string stage) +{ + if (content.has("error")) + { + const LLSD& err = content["error"]; + llwarns << "mesh upload failed, stage " << stage + << " message " << err["message"].asString() << " id " << err["identifier"].asString() + << llendl; + + if (content.has("errors")) + { + const LLSD& err_list = content["errors"]; + for (LLSD::array_const_iterator it = err_list.beginArray(); + it != err_list.endArray(); + ++it) + { + const LLSD& err_entry = *it; + std::string index_info; + std::string texture_index_str = err_entry["TextureIndex"].asString(); + if (!texture_index_str.empty()) + { + index_info += " texture_index: " + texture_index_str; + } + std::string mesh_index_str = err_entry["MeshIndex"].asString(); + if (!mesh_index_str.empty()) + { + index_info += " mesh_index: " + mesh_index_str; + } + llwarns << "mesh err code " << err_entry["error"].asString() + << " message " << err_entry["message"] + << index_info + << llendl; + } + } + } + else + { + llwarns << "bad mesh, no error information available" << llendl; + } + + +} + class LLModelObjectUploadResponder: public LLCurl::Responder { LLSD mObjectAsset; @@ -511,15 +554,17 @@ public: llinfos << "LLWholeModelFeeResponder content: " << content << llendl; if (isGoodStatus(status)) { + llinfos << "fee request succeeded" << llendl; mThread->mWholeModelUploadURL = content["uploader"].asString(); } else { - llinfos << "upload failed" << llendl; + llwarns << "fee request failed" << llendl; + log_upload_error(content,"fee"); mThread->mWholeModelUploadURL = ""; } - } + }; class LLWholeModelUploadResponder: public LLCurl::Responder @@ -538,13 +583,21 @@ public: const LLSD& content) { //assert_main_thread(); - llinfos << "upload completed" << llendl; mThread->mPendingUploads--; dumpLLSDToFile(content,make_dump_name("whole_model_upload_response_",dump_num)); // requested "mesh" asset type isn't actually the type // of the resultant object, fix it up here. - mPostData["asset_type"] = "object"; - gMeshRepo.updateInventory(LLMeshRepository::inventory_data(mPostData,content)); + if (isGoodStatus(status)) + { + llinfos << "upload succeeded" << llendl; + mPostData["asset_type"] = "object"; + gMeshRepo.updateInventory(LLMeshRepository::inventory_data(mPostData,content)); + } + else + { + llwarns << "upload failed" << llendl; + log_upload_error(content,"upload"); + } } }; diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index f3fb4b82ad..002e0567e4 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1526,7 +1526,6 @@ void LLViewerRegion::setSeedCapability(const std::string& url) capabilityNames.append("MapLayer"); capabilityNames.append("MapLayerGod"); capabilityNames.append("NewFileAgentInventory"); - capabilityNames.append("ObjectAdd"); capabilityNames.append("ParcelPropertiesUpdate"); capabilityNames.append("ParcelMediaURLFilterList"); capabilityNames.append("ParcelNavigateMedia"); |