diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3ff7b3939ba4e36c5aee5b117dccd367e753f852..b43481de4de6536c224ab3712080d92ab4c435a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,9 +58,8 @@ variables: .win_build: stage: build - image: r.alchemyviewer.org/alchemy/infrastructure/windows-build-image:latest tags: - - docker + - autobuild - windows cache: key: @@ -72,6 +71,8 @@ variables: - .cache/pip when: 'always' before_script: + - python -m venv .venv + - .\.venv\Scripts\Activate.ps1 - pip install --upgrade llbase autobuild certifi sentry-cli cmake script: - autobuild configure -c Release -- -DUSE_LTO="${ENABLE_LTO}" -DHAVOK_TPV="${USE_HAVOK}" -DLL_TESTS="${ENABLE_TESTS}" -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE diff --git a/autobuild.xml b/autobuild.xml index a00d228b2d996807e9cd263f86da6a1c6a394d31..93e49aa5f16cf8a317f453f48016631a7d4d62b1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -598,11 +598,11 @@ <key>creds</key> <string>gitlab</string> <key>hash</key> - <string>129e77c5352c096e798ee5fb071388cee3211512af62ac178fc6918d7862209da67a945434b98e0dd8a9ddc507227cf9e7d08023bc08123fbcfc0a96fb9b621d</string> + <string>fa5d856b9608b15d9ec89bb1869c382e92235cc4099475acf7a54b7a759493cf188098e77997d4de845f55d4f9bdaba2443d3030646acb10f690bfc895a9ba49</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/49/packages/generic/fmodstudio/2.02.18.2172/fmodstudio-2.02.18-darwin64-2172.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/49/packages/generic/fmodstudio/2.02.19.2199/fmodstudio-2.02.19-darwin64-2199.tar.zst</string> </map> <key>name</key> <string>darwin64</string> @@ -614,11 +614,11 @@ <key>creds</key> <string>gitlab</string> <key>hash</key> - <string>86bd7557845f296cf46e6ea3150279dc4bac68b398d7e9de856604be98ae3c0444a6f55744c8c8e5ac05c4f1a81cc3be185b323bf1e8efa592293a2a73918fc9</string> + <string>9e75cd818a2d476222c9d0445fe57ff1036cfd0d860c29e22c5f69aaf529adf0afccdeea271f8bd0fa4df8ec8a0c46f5a683e762418b6bc571453908f7c7315f</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/49/packages/generic/fmodstudio/2.02.18.2172/fmodstudio-2.02.18-linux64-2172.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/49/packages/generic/fmodstudio/2.02.19.2199/fmodstudio-2.02.19-linux64-2199.tar.zst</string> </map> <key>name</key> <string>linux64</string> @@ -630,11 +630,11 @@ <key>creds</key> <string>gitlab</string> <key>hash</key> - <string>99b7b1116c75f399f5edc453015977675967146b75ee487d7c490287ed89963c4cc1440bc5d0a1b0c76b7b5869da88050036eab103e0a4d5e18391586ff4b80a</string> + <string>863ce55621614cb05bc8c1dc0ea313553c6dcb85c8ae9aee67dd04cb3910e78412e7fbefc18ed1281fa726af87d7b7a2b87023784405049fbd27a7dbd8909880</string> <key>hash_algorithm</key> <string>blake2b</string> <key>url</key> - <string>https://git.alchemyviewer.org/api/v4/projects/49/packages/generic/fmodstudio/2.02.18.2172/fmodstudio-2.02.18-windows64-2172.tar.zst</string> + <string>https://git.alchemyviewer.org/api/v4/projects/49/packages/generic/fmodstudio/2.02.19.2199/fmodstudio-2.02.19-windows64-2199.tar.zst</string> </map> <key>name</key> <string>windows64</string> @@ -647,7 +647,7 @@ <key>copyright</key> <string>FMOD Studio, Copyright (c) Firelight Technologies Pty Ltd.</string> <key>version</key> - <string>2.02.18</string> + <string>2.02.19</string> <key>name</key> <string>fmodstudio</string> <key>description</key> diff --git a/indra/deps/CMakeLists.txt b/indra/deps/CMakeLists.txt index 36160496d2e887198bc05093e1fb18797a2c809c..d22384424cf503852153140298e08cf08cd9deb9 100644 --- a/indra/deps/CMakeLists.txt +++ b/indra/deps/CMakeLists.txt @@ -25,7 +25,7 @@ add_library(deps FetchContent_Declare( meshoptimizer GIT_REPOSITORY https://git.alchemyviewer.org/alchemy/mirrors/meshoptimizer.git - GIT_TAG v0.19 + GIT_TAG v0.20 GIT_SHALLOW TRUE GIT_PROGRESS TRUE ) diff --git a/indra/llcommon/llsdjson.cpp b/indra/llcommon/llsdjson.cpp index 391b8376363932b823b9e4e86915a3a439cc0cec..42a08d9392f651f0676320685ffc6b06ca104dd8 100644 --- a/indra/llcommon/llsdjson.cpp +++ b/indra/llcommon/llsdjson.cpp @@ -68,7 +68,7 @@ LLSD LlsdFromJson(const nlohmann::json &val) break; case nlohmann::json::value_t::object: result = LLSD::emptyMap(); - for (auto it = val.cbegin(); it != val.cend(); ++it) + for (auto it = val.cbegin(), end = val.cend(); it != end; ++it) { result[it.key()] = LlsdFromJson(it.value()); } diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp index 8c226fe2fb46907a330abd85b0692ffe2000a671..330936444fb18d19d38aa8f03f4e2c57221b4380 100644 --- a/indra/llcommon/llsdutil.cpp +++ b/indra/llcommon/llsdutil.cpp @@ -834,7 +834,7 @@ bool llsd_equals(const LLSD& lhs, const LLSD& rhs, int bits) case LLSD::TypeMap: { // Build a set of all rhs keys. - std::set<LLSD::String> rhskeys; + boost::unordered_set<LLSD::String> rhskeys; for (LLSD::map_const_iterator rmi(rhs.beginMap()), rmend(rhs.endMap()); rmi != rmend; ++rmi) { @@ -989,8 +989,8 @@ LLSD llsd_clone(LLSD value, LLSD filter) case LLSD::TypeBinary: { - LLSD::Binary bin(value.asBinary().begin(), value.asBinary().end()); - clone = LLSD::Binary(std::move(bin)); + const auto& bin = value.asBinary(); + clone = LLSD::Binary(bin.begin(), bin.end()); break; } default: diff --git a/indra/llcommon/lluuid.h b/indra/llcommon/lluuid.h index 4eceb82ea79f999108bbae3e9b1705ed76aa0bac..aadd008b2bedaf8645e872d74ce11e0e6ce1a4d5 100644 --- a/indra/llcommon/lluuid.h +++ b/indra/llcommon/lluuid.h @@ -97,11 +97,7 @@ class LL_COMMON_API LLUUID */ LL_FORCE_INLINE __m128i load_unaligned_si128(const U8* p) const { -#if defined(__SSE3__) - return _mm_lddqu_si128(reinterpret_cast<const __m128i*>(p)); -#else return _mm_loadu_si128(reinterpret_cast<const __m128i*>(p)); -#endif } BOOL isNull() const // Faster than comparing to LLUUID::null. diff --git a/indra/llinventory/llsettingsbase.cpp b/indra/llinventory/llsettingsbase.cpp index 55a9ad273dbad4376c9beb094701d1ef07794f07..93e33c2e1e0bc3ef2351eaa50fdb89f5b48eba95 100644 --- a/indra/llinventory/llsettingsbase.cpp +++ b/indra/llinventory/llsettingsbase.cpp @@ -174,12 +174,15 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c const auto& other_map = other.map(); const auto& settings_map = settings.map(); + const auto skipEnd = skip.end(); + const auto settingsEnd = settings_map.end(); + for (const auto& llsd_pair : settings_map) { const std::string& key_name = llsd_pair.first; const LLSD& value = llsd_pair.second; - if (skip.contains(key_name)) + if (skip.find(key_name) != skipEnd) continue; LLSD other_value; @@ -232,10 +235,10 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c { const std::string& key_name = llsd_pair.first; - if (skip.contains(key_name)) + if (skip.find(key_name) != skipEnd) continue; - if (settings_map.contains(key_name)) + if (settings_map.find(key_name) != settingsEnd) continue; parammapping_t::const_iterator def_iter = defaults.find(key_name); @@ -257,10 +260,10 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c for (const auto& llsd_pair : other.map()) { // TODO: Should I blend this in instead? - if (!skip.contains(llsd_pair.first)) + if (skip.find(llsd_pair.first) == skipEnd) continue; - if (!settings_map.contains(llsd_pair.first)) + if (settings_map.find(llsd_pair.first) == settingsEnd) continue; newSettings[llsd_pair.first] = llsd_pair.second; diff --git a/indra/llprimitive/llmaterialid.h b/indra/llprimitive/llmaterialid.h index fb26112a4daeab528b0fe638b61e979a9af23a7c..cd327973f8b96a9832dddd6657147e5b01ee07a7 100644 --- a/indra/llprimitive/llmaterialid.h +++ b/indra/llprimitive/llmaterialid.h @@ -52,11 +52,7 @@ class LLMaterialID */ LL_FORCE_INLINE __m128i load_unaligned_si128(const U8* p) const { -#if defined(__SSE3__) - return _mm_lddqu_si128(reinterpret_cast<const __m128i*>(p)); -#else return _mm_loadu_si128(reinterpret_cast<const __m128i*>(p)); -#endif } bool operator==(const LLMaterialID& rhs) const diff --git a/indra/newview/installers/windows/install_template.iss b/indra/newview/installers/windows/install_template.iss index 5e5b601fd956308427135b3e9a2f2b53b0270b14..754194fafd55efae293f7fedb904a8d42e742756 100644 --- a/indra/newview/installers/windows/install_template.iss +++ b/indra/newview/installers/windows/install_template.iss @@ -15,7 +15,7 @@ [Setup] ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) -AppId={{564993A0-36C3-4C9C-83FA-336EAB720367} +AppId={#MyAppNameShort} AppName={#MyAppName} AppVersion={#MyAppVersion} AppVerName={#MyAppName} {#MyAppVersion} diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp index 872f3814f7bb8dd3ce4946236f982757280bea4e..10e5ba2d1ffb8dd3a258d58c89635ddf925601f7 100644 --- a/indra/newview/llinventorygallery.cpp +++ b/indra/newview/llinventorygallery.cpp @@ -1423,7 +1423,7 @@ void LLInventoryGallery::onFocusReceived() LLInventoryGalleryItem* focus_item = NULL; for (const LLUUID& id : mSelectedItemIDs) { - if (mItemMap[id]) + if (mItemMap[id] && !mItemMap[id]->isHidden()) { focus_item = mItemMap[id]; focus_item->setSelected(true); diff --git a/indra/newview/llmaterialmgr.cpp b/indra/newview/llmaterialmgr.cpp index 06767f3b1ba7389c260805cbcebd336c010ad092..90cf7f1a390d470015d75ae64bfd971ba0ed8517 100644 --- a/indra/newview/llmaterialmgr.cpp +++ b/indra/newview/llmaterialmgr.cpp @@ -691,12 +691,8 @@ void LLMaterialMgr::processGetQueue() return; } - LLSD::Binary materialBinary; - materialBinary.resize(materialSize); - memcpy(materialBinary.data(), materialString.data(), materialSize); - LLSD postData = LLSD::emptyMap(); - postData[MATERIALS_CAP_ZIP_FIELD] = materialBinary; + postData[MATERIALS_CAP_ZIP_FIELD] = LLSD::Binary(materialString.begin(), materialString.end()); LLCore::HttpHandler::ptr_t handler = std::make_shared<LLMaterialHttpHandler>("POST", boost::bind(&LLMaterialMgr::onGetResponse, this, _1, _2, region_id) @@ -979,12 +975,8 @@ void LLMaterialMgr::processPutQueue() if (materialSize > 0) { - LLSD::Binary materialBinary; - materialBinary.resize(materialSize); - memcpy(materialBinary.data(), materialString.data(), materialSize); - LLSD putData = LLSD::emptyMap(); - putData[MATERIALS_CAP_ZIP_FIELD] = materialBinary; + putData[MATERIALS_CAP_ZIP_FIELD] = LLSD::Binary(materialString.begin(), materialString.end()); LL_DEBUGS("Materials") << "put for " << itRequest->second.size() << " faces to region " << itRequest->first->getName() << LL_ENDL;