summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2020-06-08DRTVWR-510 cache vulkan-detect resultDave Houlton
2020-06-08DRTVWR-510 add code to report Vulkan capability in stats (Windows-only)Dave Houlton
2020-06-03SL-863 Fixed missing render maskAndrey Kleshchev
2020-06-02Merge branch 'master' of https://bitbucket.org/lindenlab/viewer into DRTVWR-512Callum Prentice
2020-06-02DRTVWR-476: Merge branch 'master' of bitbucket.org:lindenlab/viewer into d476.Nat Goodspeed
2020-06-02Merge branch 'master' into DRTVWR-501-maintAndrey Lihatskiy
2020-06-02Merged master into DRTVWR-497Andrey Kleshchev
2020-06-02Increment viewer version to 6.4.4Nat Goodspeed
following promotion of DRTVWR-508
2020-05-28SL-13329 Misalligned checkboxes in inventory filtersAndrey Kleshchev
2020-05-28SL-12607 Bar color to blueAndrey Kleshchev
2020-05-28SL-13340 Restored status display for loginAndrey Kleshchev
2020-05-28SL-12665 Readjusted all logosAndrey Kleshchev
2020-05-28SL-12664 readjusted logo #2Andrey Kleshchev
2020-05-28SL-12664 readjusted logoAndrey Kleshchev
2020-05-28SL-12607 Reverted to original logosAndrey Kleshchev
2020-05-27SL-13329 Misalligned checkboxes in inventory filtersAndrey Kleshchev
2020-05-27DRTVWR-476: LLMainThreadTask cross-thread test hangs. Skip.Nat Goodspeed
2020-05-27DRTVWR-476, VOICE-88, SL-13025: Use a new port every SLVoice launch.Nat Goodspeed
The observed failure is that SLVoice, on relaunch, produces an error that bind() returned EADDRINUSE and terminates. Using a different port every time we relaunch avoids that collision.
2020-05-27DRTVWR-476: Add "Socket" debug log output for socket operations.Nat Goodspeed
Enable the body of the existing ll_debug_socket() function (on Mac as well as Linux), but using tag "Socket" so you can turn on its log messages without emitting *all* debug messages.
2020-05-27DRTVWR-476: Make LLVivoxVoiceClient::logoutOfVivox() wait for logout.Nat Goodspeed
It can happen that we arrive at logoutOfVivox() with some other message queued on the LLEventMailDrop in question. If logoutOfVivox() assumes that other message is logout and exits, then subsequent code gets confused. Introduce a loop to wait (with the existing timeout) for the real logout message.
2020-05-27SL-13148 Implemented wheel support for inworld mediaAndrey Kleshchev
2020-05-22Fix (has a TOOD) for SL-13203: Parcel media auto-play works when turned offCallum Prentice
2020-05-21Investigating a fix/abatement for SL-13095 Windows Defender Firewall for ↵Callum Prentice
dullahan_host.exe pops up late in the session - not clear this will remove the popup but it might and it will hopefully have our publisher info on it vs 'Unknown'
2020-05-21DRTVWR-476: Support older compilers with LockMessageReader.Nat Goodspeed
2020-05-20Fix for SL-13125 Update MediaRollOff values for greater range and less ↵Callum Prentice
attenuation
2020-05-20Merge branch 'master' into DRTVWR-512Callum Prentice
2020-05-20Remove last occurence of DIRECTX_INCLUDE_DIR.Nicky Dasmijn
2020-05-20Remove more traces of find_library to search for DirectX and insteadNicky Dasmijn
rely on the SDK setup. Remove old dinput8 import library as it is not needed
2020-05-20Remove DirectX.cmake. With recent SDKs (dating back to at least VS 2013Nicky Dasmijn
and the 8.1 SDK) DirectX is included in the SDK and does not need any special detection logic.
2020-05-20DRTVWR-476: Fix LLCoprocedurePool::enqueueCoprocedure() shutdown crash.Nat Goodspeed
2020-05-20DRTVWR-476: Add LLThreadSafeQueue::tryPushFrontFor().Nat Goodspeed
tryPushFrontFor() is pushFront() with a std::chrono::duration timeout.
2020-05-19SL-13273 Updated the SL logo imagesAndrey Lihatskiy
2020-05-19SL-13273 Updated the SL logo imagesAndrey Lihatskiy
2020-05-19Make sure coproc gets destroyed after each iteration.Nicky Dasmijn
Making coproc scoped to the for loop will make sure the destructor gets called every loop iteration. Keeping it's scope outside the for loop means the pointer keeps valid till the next assigment that happens inside pop_wait_for when it gets assigned a new value. Triggering the dtor inside pop_wait_for can lead to deadlock when inside the dtor a coroutine tries to call enqueueCoprocedure (this happens). enqueueCoprocedure then will try to grab the lock for try_push but this lock is still held by pop_wait_for.
2020-05-19DRTVWR-476: Clean up reverting to boost::fibers::buffered_channel.Nat Goodspeed
2020-05-19SL-12896 BOM texture settings - replaced isRiggedMesh() call with faster checkAndrey Lihatskiy
2020-05-19DRTVWR-476: Revert "Use LLThreadSafeQueue, not boost::fibers::buffered_channel."Nat Goodspeed
This reverts commit bf8aea5059f127dcce2fdf613d62c253bb3fa8fd. Try boost::fibers::buffered_channel again with Boost 1.72.
2020-05-19SL-12904 Restored the missing code (post-merge)Andrey Lihatskiy
2020-05-18Merge branch 'master' into DRTVWR-501-maintAndrey Lihatskiy
# Conflicts: # indra/llxml/llcontrolgroupreader.h # indra/newview/llviewerkeyboard.cpp
2020-05-18DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72Nat Goodspeed
2020-05-18Merged master into DRTVWR-497Andrey Kleshchev
2020-05-18Merged master into DRTVWR-508Andrey Kleshchev
2020-05-18Increment viewer version to 6.4.3Nat Goodspeed
following promotion of DRTVWR-460
2020-05-15Tiny text change in the about box - indicates CEF and Chromium are ↵Callum Prentice
sub-components
2020-05-14DRTVWR-476, SL-12204: Fix crash in Marketplace Listings.Nat Goodspeed
The observed crash was due to sharing a stateful global resource (the global LLMessageSystem instance) between different tasks. Specifically, a coroutine sets its mMessageReader one way, expecting that value to persist until it's done with message parsing, but another coroutine sneaks in at a suspension point and sets it differently. Introduce LockMessageReader and LockMessageChecker classes, which must be instantiated by a consumer of the resource. The constructor of each locks a coroutine-aware mutex, so that for the lifetime of the lock object no other coroutine can instantiate another. Refactor the code so that LLMessageSystem::mMessageReader can only be modified by LockMessageReader, not by direct assignment. mMessageReader is now an instance of LLMessageReaderPointer, which supports dereferencing and comparison but not assignment. Only LockMessageReader can change its value. LockMessageReader addresses the use case in which the specific mMessageReader value need only persist for the duration of a single method call. Add an instance in LLMessageHandlerBridge::post(). LockMessageChecker is a subclass of LockMessageReader: both lock the same mutex. LockMessageChecker addresses the use case in which the specific mMessageReader value must persist across multiple method calls. Modify the methods in question to require a LockMessageChecker instance. Provide LockMessageChecker forwarding methods to facilitate calling the underlying LLMessageSystem methods via the LockMessageChecker instance. Add LockMessageChecker instances to LLAppViewer::idleNetwork(), a couple cases in idle_startup() and LLMessageSystem::establishBidirectionalTrust().
2020-05-14SL-12237 Remade updates for invisible avatarsAndrey Kleshchev
2020-05-14DRTVWR-476: Wrap boost::fibers::mutex et al. with LLCoros aliases.Nat Goodspeed
Specifically: LLCoros::Mutex means boost::fibers::mutex LLCoros::LockType means std::unique_lock<boost::fibers::mutex> LLCoros::ConditionVariable means boost::fibers::condition_variable LLCoros::cv_status means boost::fibers::cv_status So as not to drag in all of boost::fibers::mutex.hpp or condition_variable.hpp for each consumer of llcoros.h, instead #define LLCOROS_MUTEX_HEADER and LLCOROS_CONDVAR_HEADER. Those who need them can #include the relevant macro. Update llcond.h and llthreadsafequeue.h accordingly.
2020-05-14SL-12026 Fix issue with constant bridge recreation for animeshesAndrey Kleshchev
2020-05-14DRTVWR-476: Make LLSDFormatter::OPTIONS_PRETTY_BINARY uppercaseNat Goodspeed
for compatibility with Python llbase.llsd.parse(). The Python parse() currently requires uppercase hex digits for b16"hex" coding; lowercase hex digits cause it to raise LLSDParseError.
2020-05-14DRTVWR-476: Fix LLError::Log::classname(T*) template function.Nat Goodspeed
First, the signature classname(const T*) was wrong: that function could only accept a pointer to const T. The expression classname(someptr) where someptr was a pointer to non-const SomeType displayed "SomeType*" because it could only match classname(const T&), where T was SomeType*. classname(T* const) is what we should have written, meaning "const pointer to T" rather than "pointer to const T." Second, the previous implementation failed to handle the case in which the pointer was nullptr.