summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md10
-rw-r--r--indra/cmake/OpenJPEG.cmake82
-rw-r--r--indra/llimagej2coj/llimagej2coj.cpp6
-rw-r--r--indra/media_plugins/cef/CMakeLists.txt1
-rw-r--r--indra/media_plugins/libvlc/CMakeLists.txt1
-rw-r--r--indra/newview/CMakeLists.txt6
-rw-r--r--indra/newview/FixBundle.cmake.in9
-rw-r--r--indra/newview/FixPackage.cmake.in9
-rw-r--r--indra/newview/llglsandbox.cpp53
-rwxr-xr-xindra/newview/llviewerregion.cpp11
-rw-r--r--indra/newview/llviewershadermgr.cpp89
-rw-r--r--indra/newview/llwearablelist.cpp17
-rw-r--r--indra/newview/skins/default/xui/en/floater_about.xml6
13 files changed, 143 insertions, 157 deletions
diff --git a/README.md b/README.md
index 5bfe6f5d29..32866df32d 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ $ cd build-`uname -s|tr '[:upper:]' '[:lower:]'`-`uname -m`
### macOS
```
-$ sudo port install cmake pkgconfig freealut +universal apr-util +universal boost +universal boost181 +universal -no_static glm hunspell +universal freetype +universal minizip +universal openjpeg +universal pcre +universal uriparser +universal libvorbis +universal xxhashlib
+$ sudo port install cmake pkgconfig freealut +universal apr-util +universal boost +universal boost181 +universal -no_static glm hunspell +universal freetype +universal minizip +universal pcre +universal uriparser +universal libvorbis +universal xxhashlib
$ export LL_BUILD="-O3 -gdwarf-2 -stdlib=libc++ -mmacosx-version-min=11 -iwithsysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -std=c++17 -fPIC -DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -DNDEBUG -DPIC -DLL_DARWIN=1"
$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=newview/Megapahit.app/Contents/Resources -DCMAKE_OSX_ARCHITECTURES:STRING=`uname -m` -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=11 -DENABLE_SIGNING:BOOL=ON -DSIGNING_IDENTITY:STRING=- ../indra
$ sudo port deactivate boost
@@ -73,7 +73,7 @@ $ megapahit
### Fedora
```
-$ sudo dnf install cmake gcc-c++ patchelf apr-util-devel boost-devel boost-url expat-devel fltk-devel mesa-libGLU-devel hunspell-devel minizip-ng-compat-devel libnghttp2-devel nanosvg-devel openjpeg-devel pipewire-devel pulseaudio-libs-devel SDL2-devel uriparser-devel vlc-devel libvorbis-devel xmlrpc-epi-devel xxhash-devel
+$ sudo dnf install cmake gcc-c++ patchelf apr-util-devel boost-devel boost-url expat-devel fltk-devel mesa-libGLU-devel hunspell-devel minizip-ng-compat-devel libnghttp2-devel nanosvg-devel pipewire-devel pulseaudio-libs-devel SDL2-devel uriparser-devel vlc-devel libvorbis-devel xmlrpc-epi-devel xxhash-devel
$ export LL_BUILD="-O3 -std=c++17 -fPIC -DLL_LINUX=1"
$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=OFF -DUSE_FMODSTUDIO:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON ../indra
$ make -j`nproc`
@@ -85,7 +85,7 @@ $ megapahit
### OpenSUSE Tumbleweed
```
-$ sudo zypper install gcc-c++ patchelf apr-util-devel boost-devel libboost_url1_85_0-devel libboost_program_options-devel expat-devel fltk-devel glu-devel hunspell-devel libnghttp2-devel nanosvg-devel openjpeg2-devel pipewire-devel libpulse-devel SDL2-devel uriparser-devel vlc-devel libvorbis-devel xxhash-devel minizip-devel zlib-ng-devel pcre-devel
+$ sudo zypper install gcc-c++ patchelf apr-util-devel boost-devel libboost_url1_86_0-devel libboost_program_options-devel expat-devel fltk-devel glu-devel hunspell-devel libnghttp2-devel nanosvg-devel pipewire-devel libpulse-devel SDL2-devel uriparser-devel vlc-devel libvorbis-devel xxhash-devel minizip-devel zlib-ng-devel pcre-devel
$ export LL_BUILD="-O3 -std=c++17 -fPIC -DLL_LINUX=1"
$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON ../indra
$ make -j`nproc`
@@ -99,13 +99,13 @@ $ megapahit
```
$ setenv LL_BUILD "-O3 -std=c++17 -fPIC"
$ sudo su -
-# portmaster devel/cmake devel/pkgconf audio/freealut devel/apr1 x11-toolkits/fltk math/glm textproc/hunspell misc/meshoptimizer archivers/minizip graphics/nanosvg graphics/openjpeg devel/pcre devel/sdl20 net/uriparser multimedia/vlc audio/libvorbis net/xmlrpc-epi devel/xxhash
+# portmaster devel/cmake devel/pkgconf audio/freealut devel/apr1 x11-toolkits/fltk math/glm textproc/hunspell misc/meshoptimizer archivers/minizip graphics/nanosvg devel/pcre devel/sdl20 net/uriparser multimedia/vlc audio/libvorbis net/xmlrpc-epi devel/xxhash
# exit
$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=OFF -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON ../indra
$ make -j`nproc`
$ sudo cpack -G FREEBSD
$ sudo pkg add megapahit-`cat newview/viewer_version.txt`-FreeBSD.pkg
-$ sudo pkg set -yA 1 freealut apr1 fltk hunspell meshoptimizer minizip nanosvg openjpeg pcre sdl20 uriparser vlc libvorbis xmlrpc-epi
+$ sudo pkg set -yA 1 freealut apr1 fltk hunspell meshoptimizer minizip nanosvg pcre sdl20 uriparser vlc libvorbis xmlrpc-epi
$ megapahit
```
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index 9bb222d8e8..9d0303340f 100644
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -6,50 +6,66 @@ add_library( ll::openjpeg INTERFACE IMPORTED )
if (NOT USESYSTEMLIBS)
use_system_binary(openjpeg)
-elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- include(FindPkgConfig)
- pkg_check_modules(Openjpeg REQUIRED libopenjp2)
- target_include_directories(ll::openjpeg SYSTEM INTERFACE ${Openjpeg_INCLUDE_DIRS})
- target_link_directories(ll::openjpeg INTERFACE ${Openjpeg_LIBRARY_DIRS})
- target_link_libraries(ll::openjpeg INTERFACE ${Openjpeg_LIBRARIES})
endif (NOT USESYSTEMLIBS)
-if (USESYSTEMLIBS AND (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
+if (USESYSTEMLIBS AND NOT LINUX)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz)
- file(DOWNLOAD
- https://github.com/uclouvain/openjpeg/archive/refs/tags/v2.5.2.tar.gz
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz
- )
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz)
- file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz
- DESTINATION ${CMAKE_BINARY_DIR}
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz)
+ file(DOWNLOAD
+ https://github.com/secondlife/3p-openjpeg/archive/refs/tags/v2.5.0.ea12248.tar.gz
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz
)
- execute_process(
- COMMAND cmake
+ endif (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz)
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ if (DARWIN)
+ try_compile(OPENJPEG_RESULT
+ PROJECT OPENJPEG
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg
+ BINARY_DIR ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg
+ TARGET openjp2
+ CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- .
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openjpeg-2.5.2
- RESULT_VARIABLE openjpeg_installed
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+ -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
+ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15
+ OUTPUT_VARIABLE openjpeg_installed
)
+ else (DARWIN)
+ try_compile(OPENJPEG_RESULT
+ PROJECT OPENJPEG
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg
+ BINARY_DIR ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg
+ TARGET openjp2
+ CMAKE_FLAGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
+ OUTPUT_VARIABLE openjpeg_installed
+ )
+ endif (DARWIN)
+ if (${OPENJPEG_RESULT})
file(
COPY
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2/src/lib/openjp2/cio.h
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2/src/lib/openjp2/event.h
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2/src/lib/openjp2/opj_config_private.h
- DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/cio.h
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/event.h
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/openjpeg.h
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/opj_config.h
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/opj_config_private.h
+ ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/opj_stdint.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg
+ )
+ file(
+ COPY ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/bin/libopenjp2.a
+ DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
)
file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}")
+ endif (${OPENJPEG_RESULT})
endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0)
-else (USESYSTEMLIBS AND (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
+else (USESYSTEMLIBS AND NOT LINUX)
use_prebuilt_binary(openjpeg)
- if (NOT EXISTS ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5)
- file(RENAME
- ${LIBS_PREBUILT_DIR}/include/openjpeg
- ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5
- )
- endif (NOT EXISTS ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5)
+endif (USESYSTEMLIBS AND NOT LINUX)
target_link_libraries(ll::openjpeg INTERFACE openjp2 )
-endif (USESYSTEMLIBS AND (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/llimagej2coj/llimagej2coj.cpp b/indra/llimagej2coj/llimagej2coj.cpp
index da70b61c10..1c6b9e423c 100644
--- a/indra/llimagej2coj/llimagej2coj.cpp
+++ b/indra/llimagej2coj/llimagej2coj.cpp
@@ -28,9 +28,9 @@
#include "llimagej2coj.h"
// this is defined so that we get static linking.
-#include <openjpeg-2.5/openjpeg.h>
-#include <openjpeg-2.5/event.h>
-#include <openjpeg-2.5/cio.h>
+#include <openjpeg/openjpeg.h>
+#include <openjpeg/event.h>
+#include <openjpeg/cio.h>
#define MAX_ENCODED_DISCARD_LEVELS 5
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index dfbf44ae19..a78dedcd25 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -103,7 +103,6 @@ if (DARWIN)
add_custom_command(TARGET media_plugin_cef
POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "@executable_path/Chromium Embedded Framework"
"@executable_path/../../../../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework"
- -change "/opt/local/lib/libopenjp2.7.dylib" "@loader_path/../../Frameworks/libopenjp2.7.dylib"
-change "/opt/local/lib/libpng16.16.dylib" "@loader_path/../../Frameworks/libpng16.16.dylib"
-change "/opt/local/lib/libjpeg.8.dylib" "@loader_path/../../Frameworks/libjpeg.8.dylib"
-change "/opt/local/lib/libfreetype.6.dylib" "@loader_path/../../Frameworks/libfreetype.6.dylib"
diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt
index fe0ad79bd3..0ea874c7ae 100644
--- a/indra/media_plugins/libvlc/CMakeLists.txt
+++ b/indra/media_plugins/libvlc/CMakeLists.txt
@@ -49,7 +49,6 @@ if (DARWIN)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
- -change "/opt/local/lib/libopenjp2.7.dylib" "@loader_path/../../Frameworks/libopenjp2.7.dylib"
-change "/opt/local/lib/libpng16.16.dylib" "@loader_path/../../Frameworks/libpng16.16.dylib"
-change "/opt/local/lib/libjpeg.8.dylib" "@loader_path/../../Frameworks/libjpeg.8.dylib"
-change "/opt/local/lib/libfreetype.6.dylib" "@loader_path/../../Frameworks/libfreetype.6.dylib"
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 23c7da64bf..fa5eac08be 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2118,11 +2118,11 @@ if (LINUX)
CACHE STRING "RPM package description.")
if (${LINUX_DISTRO} MATCHES fedora)
set(CPACK_RPM_PACKAGE_REQUIRES
- "apr-util, boost-fiber, boost-program-options, boost-regex, boost-thread, boost-url, expat, fltk, mesa-libGLU, hunspell, libnghttp2, openjpeg2, SDL2, uriparser, vlc-libs, vlc-plugins-base, libvorbis, xmlrpc-epi"
+ "apr-util, boost-fiber, boost-program-options, boost-regex, boost-thread, boost-url, expat, fltk, mesa-libGLU, hunspell, libnghttp2, SDL2, uriparser, vlc-libs, vlc-plugins-base, libvorbis, xmlrpc-epi"
CACHE STRING "RPM package requirements.")
elseif (${LINUX_DISTRO} MATCHES opensuse-tumbleweed)
set(CPACK_RPM_PACKAGE_REQUIRES
- "libapr-util1-0, libboost_fiber1_85_0, libboost_program_options1_85_0, libboost_regex1_85_0, libboost_thread1_85_0, expat, libfltk1_3, libGLU1, libhunspell-1_7-0, libnghttp2-14, openjpeg2, libSDL2-2_0-0, liburiparser1, libvlc5, vlc-codecs, libvorbis0"
+ "libapr-util1-0, libboost_fiber1_85_0, libboost_program_options1_85_0, libboost_regex1_85_0, libboost_thread1_85_0, expat, libfltk1_3, libGLU1, libhunspell-1_7-0, libnghttp2-14, libSDL2-2_0-0, liburiparser1, libvlc5, vlc-codecs, libvorbis0"
CACHE STRING "RPM package requirements.")
endif (${LINUX_DISTRO} MATCHES fedora)
endif (${LINUX_DISTRO} MATCHES debian OR ${LINUX_DISTRO} MATCHES ubuntu)
@@ -2242,7 +2242,7 @@ elseif (USESYSTEMLIBS)
set(CPACK_FREEBSD_PACKAGE_ORIGIN net/${VIEWER_BINARY_NAME}
CACHE STRING "FreeBSD package origin.")
set(CPACK_FREEBSD_PACKAGE_DEPS
- "audio/freealut;graphics/libGLU;textproc/hunspell;misc/meshoptimizer;archivers/minizip;www/libnghttp2;graphics/openjpeg;devel/pcre;net/uriparser;multimedia/vlc;audio/libvorbis;net/xmlrpc-epi"
+ "audio/freealut;graphics/libGLU;textproc/hunspell;misc/meshoptimizer;archivers/minizip;www/libnghttp2;devel/pcre;net/uriparser;multimedia/vlc;audio/libvorbis;net/xmlrpc-epi"
CACHE STRING "FreeBSD package dependencies.")
endif (CMAKE_SYSTEM_NAME MATCHES FreeBSD AND PACKAGE)
endif (LINUX)
diff --git a/indra/newview/FixBundle.cmake.in b/indra/newview/FixBundle.cmake.in
index 489a54a965..069a0e50a6 100644
--- a/indra/newview/FixBundle.cmake.in
+++ b/indra/newview/FixBundle.cmake.in
@@ -12,11 +12,6 @@ file(CREATE_LINK
SYMBOLIC
)
file(CREATE_LINK
- "../../../../Frameworks/libopenjp2.7.dylib"
- "${viewer_BINARY_DIR}/${VIEWER_CHANNEL}.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/libopenjp2.7.dylib"
- SYMBOLIC
- )
-file(CREATE_LINK
"../../../../Frameworks/libpng16.16.dylib"
"${viewer_BINARY_DIR}/${VIEWER_CHANNEL}.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/libpng16.16.dylib"
SYMBOLIC
@@ -162,9 +157,6 @@ execute_process(
COMMAND lipo libopenal.1.23.1.dylib
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libopenal.1.23.1.dylib
- COMMAND lipo libopenjp2.2.5.2.dylib
- -thin ${CMAKE_OSX_ARCHITECTURES}
- -output libopenjp2.2.5.2.dylib
COMMAND lipo libpcre.1.dylib
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libpcre.1.dylib
@@ -230,7 +222,6 @@ execute_process(
Frameworks/libnghttp2.14.dylib
Frameworks/libogg.0.dylib
Frameworks/libopenal.1.23.1.dylib
- Frameworks/libopenjp2.2.5.2.dylib
Frameworks/libpcre.1.dylib
Frameworks/libpcrecpp.0.dylib
Frameworks/libpng16.16.dylib
diff --git a/indra/newview/FixPackage.cmake.in b/indra/newview/FixPackage.cmake.in
index 70de034382..50c381540c 100644
--- a/indra/newview/FixPackage.cmake.in
+++ b/indra/newview/FixPackage.cmake.in
@@ -12,11 +12,6 @@ file(CREATE_LINK
SYMBOLIC
)
file(CREATE_LINK
- "../../../../Frameworks/libopenjp2.7.dylib"
- "${CMAKE_CACHEFILE_DIR}/_CPack_Packages/${CMAKE_SYSTEM_NAME}/Bundle/${CPACK_BUNDLE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}/${CPACK_BUNDLE_NAME}.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/libopenjp2.7.dylib"
- SYMBOLIC
- )
-file(CREATE_LINK
"../../../../Frameworks/libpng16.16.dylib"
"${CMAKE_CACHEFILE_DIR}/_CPack_Packages/${CMAKE_SYSTEM_NAME}/Bundle/${CPACK_BUNDLE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}/${CPACK_BUNDLE_NAME}.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/libpng16.16.dylib"
SYMBOLIC
@@ -162,9 +157,6 @@ execute_process(
COMMAND lipo libopenal.1.23.1.dylib
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libopenal.1.23.1.dylib
- COMMAND lipo libopenjp2.2.5.2.dylib
- -thin ${CMAKE_OSX_ARCHITECTURES}
- -output libopenjp2.2.5.2.dylib
COMMAND lipo libpcre.1.dylib
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libpcre.1.dylib
@@ -230,7 +222,6 @@ execute_process(
Frameworks/libnghttp2.14.dylib
Frameworks/libogg.0.dylib
Frameworks/libopenal.1.23.1.dylib
- Frameworks/libopenjp2.2.5.2.dylib
Frameworks/libpcre.1.dylib
Frameworks/libpcrecpp.0.dylib
Frameworks/libpng16.16.dylib
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 930a8c28d9..0248f5710f 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -1121,57 +1121,6 @@ F32 gpu_benchmark()
LLGLSLShader::unbind();
- F32 time_passed = 0; // seconds
-
- { //run CPU timer benchmark
- glFinish();
- gBenchmarkProgram.bind();
- for (S32 c = -1; c < samples && time_passed < time_limit; ++c)
- {
- LLTimer timer;
- timer.start();
-
- for (U32 i = 0; i < count; ++i)
- {
- dest[i].bindTarget();
- texHolder.bind(i);
- buff->setBuffer();
- buff->drawArrays(LLRender::TRIANGLES, 0, 3);
- dest[i].flush();
- }
-
- //wait for current batch of copies to finish
- glFinish();
-
- F32 time = timer.getElapsedTimeF32();
- time_passed += time;
-
- if (c >= 0) // <-- ignore the first sample as it tends to be artificially slow
- {
- //store result in gigabytes per second
- F32 gb = (F32)((F64)(res * res * 8 * count)) / (1000000000);
- F32 gbps = gb / time;
- results.push_back(gbps);
- }
- }
- gBenchmarkProgram.unbind();
- }
-
- std::sort(results.begin(), results.end());
-
- F32 gbps = results[results.size()/2];
-
- LL_INFOS("Benchmark") << "Memory bandwidth is " << llformat("%.3f", gbps) << " GB/sec according to CPU timers, " << (F32)results.size() << " tests took " << time_passed << " seconds" << LL_ENDL;
-
-#if LL_DARWIN
- if (gbps > 512.f)
- {
- LL_WARNS("Benchmark") << "Memory bandwidth is improbably high and likely incorrect; discarding result." << LL_ENDL;
- //OSX is probably lying, discard result
- return -1.f;
- }
-#endif
-
// run GPU timer benchmark
{
ShaderProfileHelper initProfile;
@@ -1196,7 +1145,7 @@ F32 gpu_benchmark()
F64 samples_drawn = (F64)gBenchmarkProgram.mSamplesDrawn;
F64 gpixels_drawn = samples_drawn / 1000000000.0;
F32 samples_sec = (F32)(gpixels_drawn/seconds);
- gbps = samples_sec*4; // 4 bytes per sample
+ F32 gbps = samples_sec*4; // 4 bytes per sample
LL_INFOS("Benchmark") << "Memory bandwidth is " << llformat("%.3f", gbps) << " GB/sec according to ARB_timer_query, total time " << seconds << " seconds" << LL_ENDL;
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 72e066eb74..d315183ad0 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -2488,7 +2488,16 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
if (features.has("GLTFEnabled"))
{
bool enabled = features["GLTFEnabled"];
- gSavedSettings.setBOOL("GLTFEnabled", enabled);
+
+ // call setShaders the first time GLTFEnabled is received as true (causes GLTF specific shaders to be loaded)
+ if (enabled != gSavedSettings.getBOOL("GLTFEnabled"))
+ {
+ gSavedSettings.setBOOL("GLTFEnabled", enabled);
+ if (enabled)
+ {
+ LLViewerShaderMgr::instance()->setShaders();
+ }
+ }
}
else
{
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 6b0fc4f5e8..ee071b51fc 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -430,13 +430,20 @@ void LLViewerShaderMgr::finalizeShaderList()
mShaderList.push_back(&gDeferredDiffuseProgram);
mShaderList.push_back(&gDeferredBumpProgram);
mShaderList.push_back(&gDeferredPBROpaqueProgram);
- mShaderList.push_back(&gGLTFPBRMetallicRoughnessProgram);
+
+ if (gSavedSettings.getBOOL("GLTFEnabled"))
+ {
+ mShaderList.push_back(&gGLTFPBRMetallicRoughnessProgram);
+ }
+
mShaderList.push_back(&gDeferredAvatarProgram);
mShaderList.push_back(&gDeferredTerrainProgram);
+
for (U32 paint_type = 0; paint_type < TERRAIN_PAINT_TYPE_COUNT; ++paint_type)
{
mShaderList.push_back(&gDeferredPBRTerrainProgram[paint_type]);
}
+
mShaderList.push_back(&gDeferredDiffuseAlphaMaskProgram);
mShaderList.push_back(&gDeferredNonIndexedDiffuseAlphaMaskProgram);
mShaderList.push_back(&gDeferredTreeProgram);
@@ -1323,26 +1330,29 @@ bool LLViewerShaderMgr::loadShadersDeferred()
llassert(success);
}
- if (success)
+ if (gSavedSettings.getBOOL("GLTFEnabled"))
{
- gGLTFPBRMetallicRoughnessProgram.mName = "GLTF PBR Metallic Roughness Shader";
- gGLTFPBRMetallicRoughnessProgram.mFeatures.hasSrgb = true;
+ if (success)
+ {
+ gGLTFPBRMetallicRoughnessProgram.mName = "GLTF PBR Metallic Roughness Shader";
+ gGLTFPBRMetallicRoughnessProgram.mFeatures.hasSrgb = true;
- gGLTFPBRMetallicRoughnessProgram.mShaderFiles.clear();
- gGLTFPBRMetallicRoughnessProgram.mShaderFiles.push_back(make_pair("gltf/pbrmetallicroughnessV.glsl", GL_VERTEX_SHADER));
- gGLTFPBRMetallicRoughnessProgram.mShaderFiles.push_back(make_pair("gltf/pbrmetallicroughnessF.glsl", GL_FRAGMENT_SHADER));
- gGLTFPBRMetallicRoughnessProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
- gGLTFPBRMetallicRoughnessProgram.clearPermutations();
+ gGLTFPBRMetallicRoughnessProgram.mShaderFiles.clear();
+ gGLTFPBRMetallicRoughnessProgram.mShaderFiles.push_back(make_pair("gltf/pbrmetallicroughnessV.glsl", GL_VERTEX_SHADER));
+ gGLTFPBRMetallicRoughnessProgram.mShaderFiles.push_back(make_pair("gltf/pbrmetallicroughnessF.glsl", GL_FRAGMENT_SHADER));
+ gGLTFPBRMetallicRoughnessProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
+ gGLTFPBRMetallicRoughnessProgram.clearPermutations();
- success = make_gltf_variants(gGLTFPBRMetallicRoughnessProgram, use_sun_shadow);
+ success = make_gltf_variants(gGLTFPBRMetallicRoughnessProgram, use_sun_shadow);
- //llassert(success);
- if (!success)
- {
- LL_WARNS() << "Failed to create GLTF PBR Metallic Roughness Shader, disabling!" << LL_ENDL;
- gSavedSettings.setBOOL("RenderCanUseGLTFPBROpaqueShaders", false);
- // continue as if this shader never happened
- success = true;
+ //llassert(success);
+ if (!success)
+ {
+ LL_WARNS() << "Failed to create GLTF PBR Metallic Roughness Shader, disabling!" << LL_ENDL;
+ gSavedSettings.setBOOL("RenderCanUseGLTFPBROpaqueShaders", false);
+ // continue as if this shader never happened
+ success = true;
+ }
}
}
@@ -2977,29 +2987,32 @@ bool LLViewerShaderMgr::loadShadersInterface()
success = gCopyDepthProgram.createShader();
}
- if (success)
+ if (gSavedSettings.getBOOL("LocalTerrainPaintEnabled"))
{
- LLGLSLShader* shader = &gPBRTerrainBakeProgram;
- U32 bit_depth = gSavedSettings.getU32("TerrainPaintBitDepth");
- // LLTerrainPaintMap currently uses an RGB8 texture internally
- bit_depth = llclamp(bit_depth, 1, 8);
- shader->mName = llformat("Terrain Bake Shader RGB%o", bit_depth);
- shader->mFeatures.isPBRTerrain = true;
-
- shader->mShaderFiles.clear();
- shader->mShaderFiles.push_back(make_pair("interface/pbrTerrainBakeV.glsl", GL_VERTEX_SHADER));
- shader->mShaderFiles.push_back(make_pair("interface/pbrTerrainBakeF.glsl", GL_FRAGMENT_SHADER));
- shader->mShaderLevel = mShaderLevel[SHADER_INTERFACE];
- const U32 value_range = (1 << bit_depth) - 1;
- shader->addPermutation("TERRAIN_PAINT_PRECISION", llformat("%d", value_range));
- success = success && shader->createShader();
- //llassert(success);
- if (!success)
+ if (success)
{
- LL_WARNS() << "Failed to create shader '" << shader->mName << "', disabling!" << LL_ENDL;
- gSavedSettings.setBOOL("RenderCanUseTerrainBakeShaders", false);
- // continue as if this shader never happened
- success = true;
+ LLGLSLShader* shader = &gPBRTerrainBakeProgram;
+ U32 bit_depth = gSavedSettings.getU32("TerrainPaintBitDepth");
+ // LLTerrainPaintMap currently uses an RGB8 texture internally
+ bit_depth = llclamp(bit_depth, 1, 8);
+ shader->mName = llformat("Terrain Bake Shader RGB%o", bit_depth);
+ shader->mFeatures.isPBRTerrain = true;
+
+ shader->mShaderFiles.clear();
+ shader->mShaderFiles.push_back(make_pair("interface/pbrTerrainBakeV.glsl", GL_VERTEX_SHADER));
+ shader->mShaderFiles.push_back(make_pair("interface/pbrTerrainBakeF.glsl", GL_FRAGMENT_SHADER));
+ shader->mShaderLevel = mShaderLevel[SHADER_INTERFACE];
+ const U32 value_range = (1 << bit_depth) - 1;
+ shader->addPermutation("TERRAIN_PAINT_PRECISION", llformat("%d", value_range));
+ success = success && shader->createShader();
+ //llassert(success);
+ if (!success)
+ {
+ LL_WARNS() << "Failed to create shader '" << shader->mName << "', disabling!" << LL_ENDL;
+ gSavedSettings.setBOOL("RenderCanUseTerrainBakeShaders", false);
+ // continue as if this shader never happened
+ success = true;
+ }
}
}
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 76348d4ea1..2d59712142 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -36,6 +36,7 @@
#include "llnotificationsutil.h"
#include "llinventorymodel.h"
#include "lltrans.h"
+#include "llappviewer.h"
// Callback struct
struct LLWearableArrivedData
@@ -97,6 +98,22 @@ void LLWearableList::getAsset(const LLAssetID& assetID, const std::string& weara
// static
void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID& uuid, void* userdata, S32 status, LLExtStat ext_status )
{
+ if (!LLCoros::on_main_coro())
+ {
+ // if triggered from a coroutine, dispatch to main thread before accessing app state
+ std::string filename_in = filename;
+ LLUUID uuid_in = uuid;
+
+ LLAppViewer::instance()->postToMainCoro([=]()
+ {
+ processGetAssetReply(filename_in.c_str(), uuid_in, userdata, status, ext_status);
+ });
+
+ return;
+ }
+
+ LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
+
bool isNewWearable = false;
LLWearableArrivedData* data = (LLWearableArrivedData*) userdata;
LLViewerWearable* wearable = NULL; // NULL indicates failure
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index a1df13a8ee..c664ab09cd 100644
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -70,7 +70,7 @@
follows="all"
left="10"
name="megapahit_credits_panel"
- height="320"
+ height="340"
top="10">
<text
follows="top|left|right"
@@ -86,7 +86,7 @@ Megapahit is brought to you by (in order of appearance):
<text_editor
enabled="false"
follows="top|left"
- height="160"
+ height="180"
bg_readonly_color="Transparent"
left="5"
text_color="LtGray"
@@ -105,6 +105,8 @@ Bavid Dailey
Aria (Tashia Redrose)
Cate (32a)
Melodey
+Hiroo Ono
+Keysin (scoutkeysin)
</text_editor>
<text
follows="top|left"