diff --git a/autobuild.xml b/autobuild.xml index 7914023e2a..7b083ff84c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -52,9 +52,9 @@ archive hash - cffd8a7f9d8e55ecd50c72cc39b41f3d + 08358023ceab8b055af5c3594b3dcc2c url - http://downloads.phoenixviewer.com/dullahan_gcc5-1.1.1080_3.3325.1750.gaabe4c4-linux64-181420123.tar.bz2 + http://downloads.phoenixviewer.com/dullahan_gcc5-1.1.1320_3.3626.1895.g7001d56-linux64-190811112.tar.bz2 name linux64 @@ -814,9 +814,9 @@ archive hash - 118987b1a5b56214cfdbd0c763e180da + 23aeaf23e7db2484a1850017141860dd url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15127/97748/dullahan-1.1.1080_3.3325.1750.gaabe4c4-darwin64-513449.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/34069/283470/dullahan-1.1.1320_3.3626.1895.g7001d56-darwin64-525361.tar.bz2 name darwin64 @@ -838,9 +838,9 @@ archive hash - c01b1a180f6c12d00d359996ecd1cf52 + 607f824220ac11cdc7ae9b5297f5f57a url - http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-linux64-181051505.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.1.1320_3.3626.1895.g7001d56-linux64-190811046.tar.bz2 name linux64 @@ -850,9 +850,9 @@ archive hash - acf7ce31ef174df000889516767b5a1d + 71fa66203326aca918796e874976c080 url - http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows-181191512.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/34070/283477/dullahan-1.1.1320_3.3626.1895.g7001d56-windows-525361.tar.bz2 name windows @@ -862,16 +862,16 @@ archive hash - bcafca464648fb949f1b02edce0fb488 + c7162e4805f50a3609f5dc63d0cf2bc0 url - http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows64-181191514.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/34071/283480/dullahan-1.1.1320_3.3626.1895.g7001d56-windows64-525361.tar.bz2 name windows64 version - 1.1.1080_3.3325.1750.gaabe4c4 + 1.1.1320_3.3626.1895.g7001d56 elfio @@ -1006,11 +1006,11 @@ archive hash - 177f3e948368aa09803ffae0884acc12 + d10a431d6dbd90f4ab900e4650e65b5c hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.10-darwin-183562214.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.12-darwin-190751902.tar.bz2 name darwin @@ -1034,11 +1034,11 @@ archive hash - 5b69c9bf9290ab643bbd810206490a44 + 30795e5ffa33613fa6397c9e33d18e42 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.11-linux64-190370442.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.12-linux64-190751836.tar.bz2 name linux64 @@ -1048,11 +1048,11 @@ archive hash - a635ed64f929404f7735e733d08ebeb9 + 35fe52bc6b78ed954fe649c31df13a3c hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.11-windows-190371728.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.12-windows-190751143.tar.bz2 name windows @@ -1062,18 +1062,18 @@ archive hash - f4c6ad04419e9cd5f7010e879f8e1d7a + 9329deb7581ed08b52a694975de2ae54 hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.11-windows64-190371729.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.12-windows64-190751144.tar.bz2 name windows64 version - 1.10.04 + 1.10.12 fmodex @@ -2069,7 +2069,7 @@ version - 7.A.4 + 7.A.6 libhunspell diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt index db6bb03a52..4b7b36735c 100644 --- a/indra/CMakeLists.txt +++ b/indra/CMakeLists.txt @@ -31,6 +31,9 @@ if (OPENSIM) message("compiling with OpenSim support") endif (SINGLEGRID) else (OPENSIM) + if (SINGLEGRID) + message( WARNING "Value for SINGLEGRID is unused during Havok/SecondLife builds" ) + endif() message("compiling without OpenSim support") endif (OPENSIM) # @@ -47,8 +50,12 @@ endif(TESTBUILD AND TESTBUILDPERIOD) option(USE_AVX_OPTIMIZATION "AVX optimization support" OFF) option(USE_AVX2_OPTIMIZATION "AVX2 optimization support" OFF) if (USE_AVX_OPTIMIZATION) - add_definitions(-DUSE_AVX_OPTIMIZATION=1) - message("compiling with AVX optimizations") + if (USE_AVX2_OPTIMIZATION) + message(FATAL_ERROR "You cannot use AVX and AVX2 at the same time!") + else (USE_AVX2_OPTIMIZATION) + add_definitions(-DUSE_AVX_OPTIMIZATION=1) + message("compiling with AVX optimizations") + endif (USE_AVX2_OPTIMIZATION) elseif (USE_AVX2_OPTIMIZATION) add_definitions(-DUSE_AVX2_OPTIMIZATION=1) message("compiling with AVX2 optimizations") @@ -81,7 +88,6 @@ if (WINDOWS AND EXISTS ${LIBS_CLOSED_DIR}copy_win_scripts) endif (WINDOWS AND EXISTS ${LIBS_CLOSED_DIR}copy_win_scripts) add_custom_target(viewer) - add_subdirectory(${LIBS_OPEN_PREFIX}llcrashlogger) add_subdirectory(${LIBS_OPEN_PREFIX}llplugin) add_subdirectory(${LIBS_OPEN_PREFIX}llui) diff --git a/indra/cmake/NGHTTP2.cmake b/indra/cmake/NGHTTP2.cmake index df191ff3c1..f83c851444 100644 --- a/indra/cmake/NGHTTP2.cmake +++ b/indra/cmake/NGHTTP2.cmake @@ -9,7 +9,9 @@ else (USESYSTEMLIBS) use_prebuilt_binary(nghttp2) if (WINDOWS) set(NGHTTP2_LIBRARIES - ${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib + # ARCH_PREBUILT_DIRS_RELEASE is "." and would cause searching for the lib in the wrong place when not using VS + #${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib + nghttp2.lib ) elseif (DARWIN) set(NGHTTP2_LIBRARIES libnghttp2.dylib) diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h index 5d60c63810..62d97007ac 100644 --- a/indra/llcommon/llevents.h +++ b/indra/llcommon/llevents.h @@ -582,11 +582,12 @@ public: /// Generate a distinct name for a listener -- see listen() static std::string inventName(const std::string& pfx="listener"); -private: - friend class LLEventPumps; /// flush queued events virtual void flush() {} +private: + friend class LLEventPumps; + virtual void reset(); @@ -675,12 +676,14 @@ public: virtual ~LLEventMailDrop() {} /// Post an event to all listeners - virtual bool post(const LLSD& event); + virtual bool post(const LLSD& event) override; + /// Remove any history stored in the mail drop. + virtual void flush() override { mEventHistory.clear(); LLEventStream::flush(); }; protected: virtual LLBoundListener listen_impl(const std::string& name, const LLEventListener&, const NameList& after, - const NameList& before); + const NameList& before) override; private: typedef std::list EventList; @@ -703,7 +706,6 @@ public: /// Post an event to all listeners virtual bool post(const LLSD& event); -private: /// flush queued events virtual void flush(); diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 8e8ab79f8a..10e2cd5172 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -241,8 +241,14 @@ LLUrlEntryHTTP::LLUrlEntryHTTP() : LLUrlEntryBase() { // FIRE-1715: Links using FTP protocol are not recognized + // using \S causes FIRE-23012, the obvious strategy would be to update boost (viewer uses 1.57, + // current is 1.69 as of 2019-03-03). + // Unfortunately updating boost is not possible due to the viewer still relying on the old coroutine implementation. + // The second best solution is to use [^\s] for now //mPattern = boost::regex("https?://([^\\s/?\\.#]+\\.?)+\\.\\w+(:\\d+)?(/\\S*)?", - mPattern = boost::regex("(https?|ftp)://([^\\s/?\\.#]+\\.?)+\\.\\w+(:\\d+)?(/\\S*)?", + //mPattern = boost::regex("(https?|ftp)://([^\\s/?\\.#]+\\.?)+\\.\\w+(:\\d+)?(/\\S*)?", + mPattern = boost::regex("(https?|ftp)://([^\\s/?\\.#]+\\.?)+\\.\\w+(:\\d+)?(/[^\\s]*)?", + // // boost::regex::perl|boost::regex::icase); mMenuName = "menu_url_http.xml"; diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 259bb20cc4..460e09ad2d 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -75,7 +75,7 @@ if (LINUX) ${LLMATH_LIBRARIES} ${LLRENDER_LIBRARIES} ${LLVFS_LIBRARIES} - ${LLWINDOW_LIBRARIES} + #${LLWINDOW_LIBRARIES} # Don't link to itself - causes CMP0038 ${LLXML_LIBRARIES} ${UI_LIBRARIES} # for GTK ${SDL_LIBRARY} @@ -187,11 +187,6 @@ endif (llwindow_HEADER_FILES) list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) - # Turn off complaint about library linking to itself in Cmake 3 - if(POLICY CMP0038) - cmake_policy(SET CMP0038 OLD) - endif(POLICY CMP0038) - add_library (llwindow ${llwindow_SOURCE_FILES} ${viewer_SOURCE_FILES} diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index f58a69d16a..6834373e73 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -522,6 +522,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) settings.webgl_enabled = true; settings.log_file = mCefLogFile; settings.log_verbose = mCefLogVerbose; + settings.autoplay_without_gesture = true; std::vector custom_schemes(1, "secondlife"); mCEFLib->setCustomSchemes(custom_schemes); diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 072b1e7a70..97cb157b32 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2540,9 +2540,10 @@ if (DARWIN) # These all get set with PROPERTIES. It's not that the property names are # magically known to CMake -- it's that these names are referenced in the # Info-SecondLife.plist file in the configure_file() directive below. - set(product "${VIEWER_CHANNEL}") - set(MACOSX_EXECUTABLE_NAME "${VIEWER_CHANNEL}") - set(MACOSX_BUNDLE_INFO_STRING "${VIEWER_CHANNEL}") + #set(product "${VIEWER_CHANNEL}") + set(product "Firestorm") + set(MACOSX_EXECUTABLE_NAME "Firestorm") + set(MACOSX_BUNDLE_INFO_STRING "Firestorm Viewer") set(MACOSX_BUNDLE_ICON_FILE "firestorm_icon.icns") set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.phoenixviewer.firestorm.viewer-${ND_VIEWER_FLAVOR}") set(MACOSX_BUNDLE_LONG_VERSION_STRING "${VIEWER_CHANNEL} ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}") diff --git a/indra/newview/Info-Firestorm.plist b/indra/newview/Info-Firestorm.plist index f779ffc3db..9358cae7dc 100644 --- a/indra/newview/Info-Firestorm.plist +++ b/indra/newview/Info-Firestorm.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleExecutable - ${MACOSX_BUNDLE_EXECUTABLE_NAME} + ${MACOSX_EXECUTABLE_NAME} CFBundleGetInfoString ${MACOSX_BUNDLE_INFO_STRING} CFBundleIconFile diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi index 4a28d59116..b9b03d8264 100644 Binary files a/indra/newview/installers/windows/lang_pl.nsi and b/indra/newview/installers/windows/lang_pl.nsi differ diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 7caf6b17d6..4c7e2b8200 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -211,9 +211,6 @@ const F32 NAMETAG_VERTICAL_SCREEN_OFFSET = 25.f; const F32 NAMETAG_VERT_OFFSET_WEIGHT = 0.17f; const U32 LLVOAvatar::VISUAL_COMPLEXITY_UNKNOWN = 0; -const F32 LLVOAvatar::VISUAL_COMPLEXITY_UPDATE_SECONDS = 10.0f; -const F32 VISUAL_COMPLEXITY_FRAC_CHANGE_THRESH = 0.05f; // Changes to self will not be displayed unless they exceed this fraction of previous value. -const F32 VISUAL_COMPLEXITY_ABS_CHANGE_THRESH = 1000; // ... and this absolute amount of change. const F64 HUD_OVERSIZED_TEXTURE_DATA_SIZE = 1024 * 1024; enum ERenderName @@ -10922,6 +10919,7 @@ void LLVOAvatar::idleUpdateRenderComplexity() void LLVOAvatar::updateVisualComplexity() { LL_DEBUGS("AvatarRender") << "avatar " << getID() << " appearance changed" << LL_ENDL; + // Set the cache time to in the past so it's updated ASAP mVisualComplexityStale = true; } @@ -11090,13 +11088,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity() // Disable useless diagnostics //static std::set all_textures; - // remove the timer based complexity updates - //bool needs_update = mVisualComplexityStale && - // (mVisualComplexity==VISUAL_COMPLEXITY_UNKNOWN || - // mVisualComplexityUpdateTimer.getElapsedTimeF32()>VISUAL_COMPLEXITY_UPDATE_SECONDS); - bool needs_update = mVisualComplexityStale; - - if (needs_update) + if (mVisualComplexityStale) { // Show per-item complexity in COF @@ -11214,64 +11206,26 @@ void LLVOAvatar::calculateUpdateRenderComplexity() //} // - bool cost_changed = false; - if ( mVisualComplexity == VISUAL_COMPLEXITY_UNKNOWN) - { - LL_DEBUGS("AvatarRender") << "Avatar "<< getID() - << " complexity initialized to " << cost - << " reported " << mReportedVisualComplexity - << LL_ENDL; - cost_changed = true; - } - else - { - if ( cost != mVisualComplexity ) - { - // remove the threshold calcs - // F32 top_val = (1.0f+VISUAL_COMPLEXITY_FRAC_CHANGE_THRESH)*mVisualComplexity; - // F32 bottom_val = (1.0f/(1.0f+VISUAL_COMPLEXITY_FRAC_CHANGE_THRESH))*mVisualComplexity; - // top_val = llmax(top_val, mVisualComplexity + VISUAL_COMPLEXITY_ABS_CHANGE_THRESH); - // bottom_val = llmax(0.f, llmin(bottom_val, mVisualComplexity - VISUAL_COMPLEXITY_ABS_CHANGE_THRESH)); - - // if (isSelf() && cost > bottom_val && cost < top_val) - // { - // LL_DEBUGS("AvatarRender") << "Avatar "<< getID() - // << " self complexity change from " << mVisualComplexity << " to " << cost - // << " is within range " - // << "(" << bottom_val << "," << top_val << ")" - // << ", not updated." - // << " reported " << mReportedVisualComplexity - // << LL_ENDL; - // } - // else - // { - // LL_DEBUGS("AvatarRender") << "Avatar "<< getID() - // << " complexity updated was " << mVisualComplexity << " now " << cost - // << " reported " << mReportedVisualComplexity - // << LL_ENDL; - // cost_changed = true; - // } - //} - //else - //{ - // LL_DEBUGS("AvatarRender") << "Avatar "<< getID() - // << " complexity updated no change " << mVisualComplexity - // << " reported " << mReportedVisualComplexity - // << LL_ENDL; - cost_changed = true; - } - } - if (cost_changed) - { - mVisualComplexity = cost; - } + if ( cost != mVisualComplexity ) + { + LL_DEBUGS("AvatarRender") << "Avatar "<< getID() + << " complexity updated was " << mVisualComplexity << " now " << cost + << " reported " << mReportedVisualComplexity + << LL_ENDL; + } + else + { + LL_DEBUGS("AvatarRender") << "Avatar "<< getID() + << " complexity updated no change " << mVisualComplexity + << " reported " << mReportedVisualComplexity + << LL_ENDL; + } + mVisualComplexity = cost; mVisualComplexityStale = false; - // Remove the timer for now. - // mVisualComplexityUpdateTimer.reset(); static LLCachedControl show_my_complexity_changes(gSavedSettings, "ShowMyComplexityChanges", 20); - if (isSelf() && cost_changed && show_my_complexity_changes) + if (isSelf() && show_my_complexity_changes) { // Avatar complexity LLAvatarRenderNotifier::getInstance()->updateNotificationAgent(mVisualComplexity); diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 4a39d64348..e3c0e4abe8 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -308,7 +308,6 @@ public: // void calculateUpdateRenderComplexity(); static const U32 VISUAL_COMPLEXITY_UNKNOWN; - static const F32 VISUAL_COMPLEXITY_UPDATE_SECONDS; void updateVisualComplexity(); U32 getVisualComplexity() { return mVisualComplexity; }; // Numbers calculated here by rendering AV @@ -488,7 +487,6 @@ public: // the isTooComplex method uses these mutable values to avoid recalculating too frequently mutable U32 mVisualComplexity; mutable bool mVisualComplexityStale; - mutable LLFrameTimer mVisualComplexityUpdateTimer; U32 mReportedVisualComplexity; // from other viewers through the simulator bool mCachedInMuteList; diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 4565963ffe..69c81c2973 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -824,7 +824,11 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon() { #ifndef VIVOXDAEMON_REMOTEHOST // Launch the voice daemon +#if defined(LL_WINDOWS) || defined(LL_LINUX) + std::string exe_path = gDirUtilp->getExecutableDir(); +#else std::string exe_path = gDirUtilp->getAppRODataDir(); +#endif #if LL_WINDOWS // FIRE-22709: Local voice not working in OpenSim #ifdef OPENSIM @@ -1587,6 +1591,11 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession) LLSD timeoutResult(LLSDMap("session", "timeout")); + // We are about to start a whole new session. Anything that MIGHT still be in our + // maildrop is going to be stale and cause us much wailing and gnashing of teeth. + // Just flush it all out and start new. + voicePump.flush(); + // It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4 // before continuing from this state. They can happen in either order, and if I don't wait for both, things can get stuck. // For now, the SessionGroup.AddSession response handler sets mSessionHandle and the SessionStateChangeEvent handler transitions to stateSessionJoined. diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 445bf0321e..2ba40fe887 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -475,15 +475,6 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys, { retval |= MEDIA_FLAGS_CHANGED; } - if (result && getRootEdit()->isAttachment() && getAvatarAncestor()==gAgentAvatarp ) - { -// Reduce log spam -// LL_INFOS("AvatarRender") << "Volume attached to self av has updated TE properties. ARC may change accordingly. Change flags " -// << result << LL_ENDL; - LL_DEBUGS("AvatarRender") << "Volume attached to self av has updated TE properties. ARC may change accordingly. Change flags " - << result << LL_ENDL; -// - } } else { @@ -624,15 +615,6 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys, { retval |= MEDIA_FLAGS_CHANGED; } - if (result && getRootEdit()->isAttachment() && getAvatarAncestor()==gAgentAvatarp ) - { - // Reduce log spam - // LL_INFOS("AvatarRender") << "Volume attached to self av has updated TE properties. ARC may change accordingly. Change flags " - // << result << LL_ENDL; - LL_DEBUGS("AvatarRender") << "Volume attached to self av has updated TE properties. ARC may change accordingly. Change flags " - << result << LL_ENDL; - // - } } } } diff --git a/indra/newview/skins/default/xui/de/floater_fs_import.xml b/indra/newview/skins/default/xui/de/floater_fs_import.xml index 8047bd4c81..0118612c22 100644 --- a/indra/newview/skins/default/xui/de/floater_fs_import.xml +++ b/indra/newview/skins/default/xui/de/floater_fs_import.xml @@ -57,7 +57,7 @@ - +