summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-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.
2020-05-13DRTVWR-476: Default LLSDNotationFormatter now OPTIONS_PRETTY_BINARY.Nat Goodspeed
LLSDNotationFormatter (also LLSDNotationStreamer that uses it, plus operator<<(std::ostream&, const LLSD&) that uses LLSDNotationStreamer) is most useful for displaying LLSD to a human, e.g. for logging. Having the default dump raw binary bytes into the log file is not only suboptimal, it can truncate the output if one of those bytes is '\0'. (This is a problem with the logging subsystem, but that's a story for another day.) Use OPTIONS_PRETTY_BINARY wherever there is a default LLSDFormatter ::EFormatterOptions argument. Also, allow setting LLSDFormatter subclass boolalpha(), realFormat() and format(options) using optional constructor arguments. Naturally, each subclass that supports this must accept and forward these constructor arguments to its LLSDFormatter base class constructor. Fix a couple bugs in LLSDNotationFormatter::format_impl() for an LLSD::Binary value with OPTIONS_PRETTY_BINARY: - The code unconditionally emitted a b(len) type prefix followed by either raw binary or hex, depending on the option flag. OPTIONS_PRETTY_BINARY caused it to emit "0x" before the hex representation of the data. This is wrong in that it can't be read back by either the C++ or the Python LLSD parser. Correct OPTIONS_PRETTY_BINARY formatting consists of b16"hex digits" rather than b(len)"raw bytes". - Although the code did set hex mode, it didn't set either the field width or the fill character, so that a byte value less than 16 would emit a single digit rather than two. Instead of having one LLSDFormatter::format() method with an optional options argument, declare two overloads. The format() overload without options passes the mOptions data member to the overload accepting options. Refactor the LLSDFormatter family, hoisting the recursive format_impl() method (accepting level) to a pure virtual method at LLSDFormatter base-class level. Most subclasses therefore need not override either base-class format() method, only format_impl(). In fact the short format() overload isn't even virtual. Consistently use LLSDFormatter::EFormatterOptions enum as the options parameter wherever such options are accepted.
2020-05-11DRTVWR-476: Remove /showIncludes from llwindow project.Nat Goodspeed
2020-05-11DRTVWR-476: Use find_library(dxguid) rather than find_path().Nat Goodspeed
2020-05-07DRTVWR-476: Whack-A-Mole not working, put switch on ALL llwindowNat Goodspeed
2020-05-07DRTVWR-476: Add /showIncludes to additional source files.Nat Goodspeed
Having it on just one source file was frustrating because the project build failed before it reached the one source file with the switch.
2020-05-07DRTVWR-476: Diagnostically /showIncludes for Windows SDK errorsNat Goodspeed
2020-05-07DRTVWR-476: Help DirectX.cmake cope with multiple SDK versions.Nat Goodspeed
First, get rid of ancient cruft in the find_path() calls: on a 64-bit system, "$ENV{PROGRAMFILES}" expands to the 64-bit 'Program Files' directory rather than the 32-bit 'Program Files (x86)' directory, and none of the ancient cruft would be found there anyway. Empirically, find_path(dxdiag.h) is able to find the file using environment variables (INCLUDE from VS variables?), so it doesn't need the specific pathnames coded into that call. Once we find DIRECTX_INCLUDE_DIR, don't immediately insert it into include_directories: we've had troubles with incompatible Windows SDK versions (compile errors in Microsoft header files!) when DIRECTX_INCLUDE_DIR preceded the Windows SDK directory in the include path. The DIRECTX_FIND_QUIETLY logic seemed backwards: the message(STATUS) output was emitted only when DIRECTX_FIND_QUIETLY was false. Reverse that. The ancient cruft in find_path(dxguid.lib) was causing it to find the wrong (very old) DirectX library. Remove ancient cruft. But empirically, without that, even once we've found DIRECTX_INCLUDE_DIR, CMake could not implicitly find dxguid.lib. If the DirectX directory hierarchy were structured as .../version/Include and .../version/Lib, a relative pathname would have been sufficient hint. Unfortunately it's structured as .../Include/version and .../Lib/version, so a relative pathname would have to include the specific version. Instead, replace "/Include/" with "/Lib/". But even then, we have to drill down to the architecture-specific subdirectory based on ADDRESS_SIZE.
2020-05-06DRTVWR-476: Add llsd::clone(), llsd::shallow() aliasesNat Goodspeed
for new llsd_clone(), llsd_shallow() functions.
2020-05-06DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72Nat Goodspeed
2020-05-04Increment viewer version to 6.4.2Nat Goodspeed
following promotion of DRTVWR-500
2020-04-28DRTVWR-476: Update to llca build 541101Nat Goodspeed
2020-04-21AMD CPUs list updateAndrey Lihatskiy
2020-04-20Restored SL-12732 after merge conflictAndrey Kleshchev
2020-04-20SL-13040 Fixed crash at EnvironmentPersistAcrossLoginAndrey Kleshchev
2020-04-20Merge branch 'master' into DRTVWR-500Andrey Lihatskiy
# Conflicts: # indra/newview/pipeline.cpp
2020-04-20Increment viewer version to 6.4.1Nat Goodspeed
following promotion of DRTVWR-440
2020-04-14Merged in euclid-13019 (pull request #70)Dave Houlton
SL-13019, fix broken varying linkage on MacOS Approved-by: Michael Pohoreski
2020-04-14SL-13019, fix broken varying linkage on MacOSDave Houlton
2020-04-13SL-13029 Fixed load orderAndrey Kleshchev
2020-04-12SL-13029 Environment update was not applying properlyAndrey Kleshchev
2020-04-10Merged in euclid-12975 (pull request #65)Dave Houlton
SL-12975, unfix alpha and undo non-fix magic number of refracted portion of water Fresnel
2020-04-09SL-12975, unfix alpha and undo non-fix magic number of refracted portion of ↵Dave Houlton
water Fresnel
2020-04-09DRTVWR-476: For Boost 1.72, must suffix lib names with -x{32,64}Nat Goodspeed
2020-04-09DRTVWR-476: #include "boost/noncopyable.hpp" in another consumer.Nat Goodspeed
2020-04-09DRTVWR-476: #include "boost/noncopyable.hpp" in httpcommon.h.Nat Goodspeed
Apparently, in previous Boost versions, boost::noncopyable was sneaking into the namespace via other headers. Now the compiler complains about its absence without an explicit #include.
2020-04-08DRTVWR-476: Update zlib, freetype, libpng, boost, openssl, libxml2, ↵Nat Goodspeed
googlemock, google_breakpad, curl, colladadom Update zlib to codeticket version 538988. Update freetype to codeticket version 539865. Update libpng to codeticket version 539868. Update boost to codeticket version 539869. Update openssl to codeticket version 539874. Update libxml2 to codeticket version 539866. Update googlemock to codeticket version 539876. Update google_breakpad to codeticket version 539880. Update curl to codeticket version 539883. Update colladadom to codeticket version 539922.
2020-04-08DRTVWR-476: Update openssl, zlib, freetype, libxml2, libpng, boost, ↵Nat Goodspeed
google_breakpad, curl, googlemock, colladadom Update openssl to codeticket version 539835. Update zlib to codeticket version 538988. Update freetype to codeticket version 539828. Update libxml2 to codeticket version 539829. Update libpng to codeticket version 539830. Update boost to codeticket version 539833. Update google_breakpad to codeticket version 539846. Update curl to codeticket version 539847. Update googlemock to codeticket version 539769. Update colladadom to codeticket version 539768.
2020-04-07Merged in SL-10449 (pull request #63)Michael Pohoreski
SL-10449 Approved-by: Dave Houlton <euclid@lindenlab.com>
2020-04-07SL-10449: Put first shader error on new line for readabilityPtolemy
2020-04-07SL-10449: Add dumping of shader to log filePtolemy
2020-04-07SL-10449, add missing linkage variable, fix OSX & Intel deferred shaders compDave Houlton
2020-04-07SL-10449 Cleanup dumping shader without LOG spam on every line when it fails ↵Ptolemy
to compile/link
2020-04-07SL-10449 Fix off-by-one line numbers when dumping shader that failed to ↵Ptolemy
compile/link
2020-04-07SL-10449 Fix ALM on OSXPtolemy
2020-04-07DRTVWR-476: Update boost, colladadom, googlemockNat Goodspeed
Update boost to codeticket version 539746. Update colladadom to codeticket version 539768. Update googlemock to codeticket version 539769.
2020-04-06Merged in DRTVWR-500 (pull request #60)Andrey Lihatskiy
SL-10993 Fixed Korean font on OSX Catalina Approved-by: Andrey Kleshchev
2020-04-06SL-10993 Fixed Korean font on OSX CatalinaAndrey Lihatskiy
2020-04-03DRTVWR-476: Update to slvoice build 539691Nat Goodspeed
2020-04-03Merged in euclid-11368 (pull request #58)Dave Houlton
SL-11368, fix missing water uniforms for low shader settings Approved-by: Michael Pohoreski
2020-04-03SL-11368, fix missing water uniforms for low shader settingsDave Houlton
2020-04-03Merged in SL-12852 (pull request #57)Michael Pohoreski
SL-12852 Cleanup for readability Approved-by: Dave Houlton <euclid@lindenlab.com>
2020-04-03SL-12852 Cleanup for readabilityPtolemy
2020-04-03DRTVWR-476: Use a longer default timeout for Sync class.Nat Goodspeed
The timeout is meant to prevent a deadlocked test program from hanging a build. It's not intended to ensure some sort of SLA for the operations under test. Empirically, using a longer timeout helps some test programs. The only downside of increasing the timeout is that if some test does hang, it takes longer to notice. But changes on the order of a few seconds are negligible.
2020-04-03DRTVWR-476: Make LoginListener::waitFor() take arbitrary predicate.Nat Goodspeed
This allows one of the tests to specifically waitFor() the completion status update from LLLogin, rather than the next status update to come along: the coroutine potentially emits a whole sequence of status updates before completion. Then the waitFor() overload that merely waits for the next status update is implemented by passing that specific predicate to the other overload.
2020-04-03DRTVWR-476: chained_callback.h depends on lltut.h. #include it.Nat Goodspeed
2020-04-03DRTVWR-476: Facilitate debugging test programs with logging.Nat Goodspeed
On Mac, even if you run a test program with --debug or set LOGTEST=DEBUG, it won't log to stderr if you're filtering build output or running the build in an emacs compile buffer. This is because, on Mac, a viewer launched by mouse rather than from the command line is passed a stderr stream that ultimately gets logged to the system Console. The shouldLogToStderr() function is intended to avoid spamming the Console with the (voluminous) viewer log output. It tests whether stderr isatty() and, if not, suppresses calling LLError::logToStderr(). This makes debugging test programs using log output trickier than necessary. Change shouldLogToStderr() to permit logging when either stderr isatty() or is a pipe. The original intention is preserved in that empirically, a viewer launched by mouse is passed a stderr stream identified as a character device rather than as a pipe. Also introduce SetEnv, a class that facilitates setting (e.g.) LOGTEST=DEBUG for specific test programs without setting it for all test programs in the build. Using the constructor for a static object means you can set environment variables before main() is entered, which is important because it's the main() function in test.cpp that acts on the LOGTEST and LOGFAIL environment variables. These changes make it unnecessary to retain the temporary change in test.cpp to force LOGTEST to DEBUG.
2020-04-03DRTVWR-476: Cherry-pick debug aids from commit 77b0c53 (fiber-mutex)Nat Goodspeed