summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb Maclennan2023-06-19 23:40:18 +0300
committerCaleb Maclennan2023-06-19 23:40:18 +0300
commit4e7ced76a35350d504e5df0ef8297a0e1794fb7c (patch)
tree3ebe104ce93faaf4aab39bad675f02f8aaf020ba
parent3f3179b7d02f6143ee095b6c928dd7c227424e4c (diff)
downloadaur-4e7ced76a35350d504e5df0ef8297a0e1794fb7c.tar.gz
upgpkg: moonray 1.1.0.0-0
Apply more patch action submitted by adro79, doesn't build yet but progress
-rw-r--r--.SRCINFO10
-rw-r--r--PKGBUILD29
-rw-r--r--moonray.patch912
-rw-r--r--optix.patch13
4 files changed, 954 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 806181899e64..35da067affb6 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -16,11 +16,12 @@ pkgbase = moonray
makedepends = qt5-base
makedepends = qt5-script
depends = curl
+ depends = clang
depends = lua53
+ depends = optix
depends = python
optdepends = usd: hydra plugins and USD geometry objects
source = openmoonray::git+https://github.com/dreamworksanimation/openmoonray#tag=v1.1.0.0
- source = CMakePresets.json
source = openmoonray+arras+arras4_core::git+https://github.com/dreamworksanimation/arras4_core.git#commit=2157c5103156f652b0966f23e32b97597b7ff16f
source = openmoonray+arras+arras_render::git+https://github.com/dreamworksanimation/arras_render.git#commit=729c4039a72e2dacb810c17fd529eaa0308435f6
source = openmoonray+arras+distributed+arras4_node::git+https://github.com/dreamworksanimation/arras4_node.git#commit=b02183bcab92f52d3041c254922c24fe9fc39e54
@@ -39,8 +40,9 @@ pkgbase = moonray
source = openmoonray+moonray+moonshine_usd::git+https://github.com/dreamworksanimation/moonshine_usd.git#commit=efe09ee4b75d678005061d121cf832fc3f2d9a9a
source = openmoonray+moonray+render_profile_viewer::git+https://github.com/dreamworksanimation/render_profile_viewer.git#commit=44bb5d66aa5295cc1176823d04a12cc4cd009e76
source = openmoonray+moonray+scene_rdl2::git+https://github.com/dreamworksanimation/scene_rdl2.git#commit=fb0c969026b1e5a3c16cc75ee3ec9ff7df85ad98
+ source = moonray.patch
+ source = optix.patch
sha256sums = SKIP
- sha256sums = afbd3e037a742920c5a49f3bbc70d9f488e6aaad6249db47f750e2a976d0e9b3
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
@@ -59,12 +61,16 @@ pkgbase = moonray
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
+ sha256sums = a16bdd73ee1abcc568da23db770af7ab2adc99bb117f24d6ab9a8d6f44008a15
+ sha256sums = 430856c068bb52957680d4bf77dee277c270ed326ac32632fd7af62d18ba699d
pkgname = moonray
pkgname = moonray-gui
depends = curl
+ depends = clang
depends = lua53
+ depends = optix
depends = python
depends = moonray
depends = qt6-base
diff --git a/PKGBUILD b/PKGBUILD
index 4557eef7c57a..1a793aa1da11 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,6 +1,9 @@
# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Contributor: adro79 <adro79@users.noreply.github.com>
+_tbbmajorver=2020
+_tbbpkgminorver=2
+
pkgbase=moonray
pkgname=($pkgbase moonray-gui)
_pkgname=openmoonray
@@ -12,7 +15,9 @@ license=(Apache2)
url="https://$_pkgname.org"
_url="https://github.com/dreamworksanimation"
depends=(curl
+ clang
lua53
+ optix
python)
makedepends=(boost
cmake
@@ -26,7 +31,6 @@ makedepends=(boost
qt5-script)
optdepends=('usd: hydra plugins and USD geometry objects')
source=("$_pkgname::git+$_url/$_pkgname#tag=v$pkgver"
- CMakePresets.json
"$_pkgname+arras+arras4_core::git+$_url/arras4_core.git#commit=2157c5103156f652b0966f23e32b97597b7ff16f"
"$_pkgname+arras+arras_render::git+$_url/arras_render.git#commit=729c4039a72e2dacb810c17fd529eaa0308435f6"
"$_pkgname+arras+distributed+arras4_node::git+$_url/arras4_node.git#commit=b02183bcab92f52d3041c254922c24fe9fc39e54"
@@ -44,9 +48,10 @@ source=("$_pkgname::git+$_url/$_pkgname#tag=v$pkgver"
"$_pkgname+moonray+moonshine::git+$_url/moonshine.git#commit=faa2940107c04676d4dd2537a8c60b62a2ec504b"
"$_pkgname+moonray+moonshine_usd::git+$_url/moonshine_usd.git#commit=efe09ee4b75d678005061d121cf832fc3f2d9a9a"
"$_pkgname+moonray+render_profile_viewer::git+$_url/render_profile_viewer.git#commit=44bb5d66aa5295cc1176823d04a12cc4cd009e76"
- "$_pkgname+moonray+scene_rdl2::git+$_url/scene_rdl2.git#commit=fb0c969026b1e5a3c16cc75ee3ec9ff7df85ad98")
+ "$_pkgname+moonray+scene_rdl2::git+$_url/scene_rdl2.git#commit=fb0c969026b1e5a3c16cc75ee3ec9ff7df85ad98"
+ "moonray.patch"
+ "optix.patch")
sha256sums=('SKIP'
- 'afbd3e037a742920c5a49f3bbc70d9f488e6aaad6249db47f750e2a976d0e9b3'
'SKIP'
'SKIP'
'SKIP'
@@ -64,7 +69,9 @@ sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
- 'SKIP')
+ 'SKIP'
+ 'a16bdd73ee1abcc568da23db770af7ab2adc99bb117f24d6ab9a8d6f44008a15'
+ '430856c068bb52957680d4bf77dee277c270ed326ac32632fd7af62d18ba699d')
# git submodule status | cut -c2- | awk '{s=$2; gsub("/", "+", s); gsub(".*/", "", $2); print "\"$_pkgname+" s "::git+$_url/" $2 ".git#commit=" $1 "\"" }'
@@ -81,13 +88,19 @@ prepare() {
esac
done
git -c protocol.file.allow=always submodule update
- cp ../CMakePresets.json .
+# cp ../CMakePresets.json .
+ patch -Np1 -i "$srcdir/moonray.patch"
+ patch -Np1 -i "$srcdir/optix.patch" -d moonray/mcrt_denoise/lib/denoiser
}
build() {
- cd "$_pkgname"
- cmake --preset arch-package
- cmake --build --preset arch-package -- -j 8
+ cd "${srcdir}"
+ export CC=clang
+ export CXX=clang++
+ mkdir -p build
+ CMAKE_PREFIX_PATH=/usr/lib/cmake/OpenImageIO:/opt/optix cmake -S openmoonray -B build
+ make -C build
+ make install -C build
}
package_moonray() {
diff --git a/moonray.patch b/moonray.patch
new file mode 100644
index 000000000000..5a76ea7c1b85
--- /dev/null
+++ b/moonray.patch
@@ -0,0 +1,912 @@
+Submodule arras/arras4_core contains modified content
+diff --git a/arras/arras4_core/arras4_client/lib/log_client/LogClient.cc b/arras/arras4_core/arras4_client/lib/log_client/LogClient.cc
+index b1aa0c7..90d171b 100644
+--- a/arras/arras4_core/arras4_client/lib/log_client/LogClient.cc
++++ b/arras/arras4_core/arras4_client/lib/log_client/LogClient.cc
+@@ -372,7 +372,7 @@ LogClient::objectToLogRecords(std::unique_ptr<api::Object> obj)
+ if (content.isArray()) {
+
+ // For each object in the array make a log record
+- for (Json::Value::iterator i = content.begin(); i != content.end(); ++i) {
++ for (Json::Value::const_iterator i = content.begin(); i != content.end(); ++i) {
+
+ const api::Object& item = *i;
+ if (objectIsLogRecord(item)) {
+diff --git a/arras/arras4_core/arras4_core_impl/cmd/execComp/CMakeLists.txt b/arras/arras4_core/arras4_core_impl/cmd/execComp/CMakeLists.txt
+index 03f56c5..da2d1f1 100644
+--- a/arras/arras4_core/arras4_core_impl/cmd/execComp/CMakeLists.txt
++++ b/arras/arras4_core/arras4_core_impl/cmd/execComp/CMakeLists.txt
+@@ -26,6 +26,7 @@ target_link_libraries(${CmdName}
+ Boost::filesystem
+ Libatomic::Libatomic
+ pthread
++ jsoncpp
+ )
+
+ # prevent use of crash reporter since it isn't yet supported
+diff --git a/arras/arras4_core/arras4_core_impl/cmd/msgInfo/main.cc b/arras/arras4_core/arras4_core_impl/cmd/msgInfo/main.cc
+index f505fca..9206bf3 100644
+--- a/arras/arras4_core/arras4_core_impl/cmd/msgInfo/main.cc
++++ b/arras/arras4_core/arras4_core_impl/cmd/msgInfo/main.cc
+@@ -54,7 +54,7 @@ void readMessageHeader(const std::string& filepath,
+ std::cerr << "failed to stat file " << filepath << std::endl;
+ return;
+ }
+- long long size = stat_buf.st_size; // Json::Int64 = long long
++ long size = stat_buf.st_size; // Json::Int64 = long long
+
+ FileDataSource fds(filepath);
+
+diff --git a/arras/arras4_core/arras4_core_impl/lib/computation_impl/CMakeLists.txt b/arras/arras4_core/arras4_core_impl/lib/computation_impl/CMakeLists.txt
+index ffeab6f..abc3f08 100644
+--- a/arras/arras4_core/arras4_core_impl/lib/computation_impl/CMakeLists.txt
++++ b/arras/arras4_core/arras4_core_impl/lib/computation_impl/CMakeLists.txt
+@@ -37,6 +37,7 @@ target_link_libraries(${LibName}
+ ${PROJECT_NAME}::chunking
+ ${PROJECT_NAME}::core_messages
+ ${PROJECT_NAME}::network
++ jsoncpp
+ dl
+ )
+
+diff --git a/arras/arras4_core/arras4_core_impl/lib/shared_impl/ThreadsafeQueue.h b/arras/arras4_core/arras4_core_impl/lib/shared_impl/ThreadsafeQueue.h
+index 39cdc64..1833cc1 100644
+--- a/arras/arras4_core/arras4_core_impl/lib/shared_impl/ThreadsafeQueue.h
++++ b/arras/arras4_core/arras4_core_impl/lib/shared_impl/ThreadsafeQueue.h
+@@ -4,6 +4,7 @@
+ #ifndef __ARRAS4_THREADSAFE_QUEUEH__
+ #define __ARRAS4_THREADSAFE_QUEUEH__
+
++#include <string>
+ #include <mutex>
+ #include <condition_variable>
+ #include <queue>
+diff --git a/arras/arras4_core/arras4_log/lib/arras4_log/SyslogLogger.cc b/arras/arras4_core/arras4_log/lib/arras4_log/SyslogLogger.cc
+index 3f5a648..8b59e0f 100644
+--- a/arras/arras4_core/arras4_log/lib/arras4_log/SyslogLogger.cc
++++ b/arras/arras4_core/arras4_log/lib/arras4_log/SyslogLogger.cc
+@@ -33,7 +33,7 @@ static int sPriorities[] = {
+
+ void SyslogLogger::log(Level level, const char *message)
+ {
+- syslog(sPriorities[level], message);
++ syslog(sPriorities[level], "%s", message);
+ }
+
+ }
+diff --git a/arras/arras4_core/arras4_network/lib/httpserver/HttpServer.cc b/arras/arras4_core/arras4_network/lib/httpserver/HttpServer.cc
+index 44e4144..f124f2b 100644
+--- a/arras/arras4_core/arras4_network/lib/httpserver/HttpServer.cc
++++ b/arras/arras4_core/arras4_network/lib/httpserver/HttpServer.cc
+@@ -319,6 +319,7 @@ HttpServer::HttpServer(unsigned short aListenPort,
+
+ ARRAS_SOCKET socket = createListenSocket(mPort);
+
++/*
+ if (!certData.empty() && !keyData.empty()) {
+ flags |= MHD_USE_SSL;
+
+@@ -380,6 +381,7 @@ HttpServer::HttpServer(unsigned short aListenPort,
+ );
+
+ }
++*/
+
+ if (!mDaemon) {
+ std::stringstream ss;
+@@ -418,10 +420,10 @@ void
+ HttpServer::_prepare(HttpServerRequest& aReq, MHD_Connection* aConn)
+ {
+ // headers...
+- MHD_get_connection_values(aConn, MHD_HEADER_KIND, key_value_iterator, &aReq);
++ // MHD_get_connection_values(aConn, MHD_HEADER_KIND, key_value_iterator, &aReq);
+
+ // query params...
+- MHD_get_connection_values(aConn, MHD_GET_ARGUMENT_KIND, key_value_iterator, &aReq);
++ // MHD_get_connection_values(aConn, MHD_GET_ARGUMENT_KIND, key_value_iterator, &aReq);
+ }
+
+ }
+diff --git a/arras/arras4_core/arras4_test/cmd/testClient/Data.cc b/arras/arras4_core/arras4_test/cmd/testClient/Data.cc
+index a8c6fac..40df394 100644
+--- a/arras/arras4_core/arras4_test/cmd/testClient/Data.cc
++++ b/arras/arras4_core/arras4_test/cmd/testClient/Data.cc
+@@ -231,8 +231,8 @@ getSessions(
+ std::string nodeId = assignmentJson["nodeId"].asString();
+ // most of the node information is redundant
+ const Json::Value computations = assignmentJson["config"]["computations"];
+- for (Json::Value::iterator iter = computations.begin(); iter != computations.end(); ++iter) {
+- Json::ValueIterator::reference computationJson = *iter;
++ for (auto iter = computations.begin(); iter != computations.end(); ++iter) {
++ auto computationJson = *iter;
+ Computation computation;
+ computation.mId = iter.key().asString();
+ if (computation.mId == "(client)") continue;
+diff --git a/arras/arras4_core/arras4_test/cmd/testClient/main.cc b/arras/arras4_core/arras4_test/cmd/testClient/main.cc
+index 5e829c2..7d8f802 100644
+--- a/arras/arras4_core/arras4_test/cmd/testClient/main.cc
++++ b/arras/arras4_core/arras4_test/cmd/testClient/main.cc
+@@ -117,7 +117,7 @@ subset(const Json::Value& aSubset, const Json::Value& aSuperset,
+ case Json::objectValue:
+ {
+ unsigned int index = 0;
+- Json::ValueIterator iter = aSubset.begin();
++ auto iter = aSubset.begin();
+ while (iter != aSubset.end()) {
+ const char* memberName = iter.memberName();
+ std::string name = aVarName + "." + iter.memberName();
+diff --git a/arras/arras4_core/cmake/ArrasCoreCompileDefinitions.cmake b/arras/arras4_core/cmake/ArrasCoreCompileDefinitions.cmake
+index d0c667f..5f402d2 100644
+--- a/arras/arras4_core/cmake/ArrasCoreCompileDefinitions.cmake
++++ b/arras/arras4_core/cmake/ArrasCoreCompileDefinitions.cmake
+@@ -23,7 +23,7 @@ function(ArrasCore_cxx_compile_definitions target)
+
+ PUBLIC
+ __AVX__
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+Submodule arras/arras_render contains modified content
+diff --git a/arras/arras_render/cmake/ArrasRenderCompileDefinitions.cmake b/arras/arras_render/cmake/ArrasRenderCompileDefinitions.cmake
+index c455f49..d395152 100644
+--- a/arras/arras_render/cmake/ArrasRenderCompileDefinitions.cmake
++++ b/arras/arras_render/cmake/ArrasRenderCompileDefinitions.cmake
+@@ -16,7 +16,7 @@ function(ArrasRender_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+Submodule arras/distributed/arras4_node contains modified content
+diff --git a/arras/distributed/arras4_node/cmake/ArrasNodeCompileDefinitions.cmake b/arras/distributed/arras4_node/cmake/ArrasNodeCompileDefinitions.cmake
+index b1619d9..a14c020 100644
+--- a/arras/distributed/arras4_node/cmake/ArrasNodeCompileDefinitions.cmake
++++ b/arras/distributed/arras4_node/cmake/ArrasNodeCompileDefinitions.cmake
+@@ -15,7 +15,7 @@ function(ArrasNode_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/arras/distributed/arras4_node/cmd/node/ArrasNode.cc b/arras/distributed/arras4_node/cmd/node/ArrasNode.cc
+index 168e230..ed2b09a 100644
+--- a/arras/distributed/arras4_node/cmd/node/ArrasNode.cc
++++ b/arras/distributed/arras4_node/cmd/node/ArrasNode.cc
+@@ -685,7 +685,7 @@ ArrasNode::updateTags(api::ObjectConstRef tags)
+
+ // verify tags
+ api::Object current = mNodeInfo["tags"];
+- for (api::ObjectIterator it = tags.begin();
++ for (auto it = tags.begin();
+ it != tags.end(); ++it) {
+ current[it.memberName()] = *it;
+ }
+@@ -716,7 +716,7 @@ ArrasNode::deleteTags(api::ObjectConstRef tags)
+
+ // verify tags
+ api::Object current = mNodeInfo["tags"];
+- for (api::ObjectIterator it = tags.begin();
++ for (auto it = tags.begin();
+ it != tags.end(); ++it) {
+ if ((*it).isString() && current.isMember((*it).asString())) {
+ current.removeMember((*it).asString());
+diff --git a/arras/distributed/arras4_node/lib/session/Computation.h b/arras/distributed/arras4_node/lib/session/Computation.h
+index cfe7e21..ba9e249 100644
+--- a/arras/distributed/arras4_node/lib/session/Computation.h
++++ b/arras/distributed/arras4_node/lib/session/Computation.h
+@@ -62,7 +62,7 @@ private:
+ impl::ExecutorHeartbeat::ConstPtr mLastHeartbeat;
+ float mCpuUsage5SecsMax{0};
+ float mCpuUsage60SecsMax{0};
+- unsigned long long mMemoryUsageBytesMax{0};
++ unsigned long mMemoryUsageBytesMax{0};
+ long mLastSentMessagesSecs{0};
+ int mLastSentMessagesMicroSecs{0};
+ long mLastReceivedMessagesSecs{0};
+Submodule cmake_modules contains modified content
+diff --git a/cmake_modules/cmake/FindMkl.cmake b/cmake_modules/cmake/FindMkl.cmake
+index 4c10535..28cae53 100644
+--- a/cmake_modules/cmake/FindMkl.cmake
++++ b/cmake_modules/cmake/FindMkl.cmake
+@@ -5,7 +5,7 @@
+ #
+ find_path(Mkl_INCLUDE_DIR
+ NAMES mkl.h
+- HINTS $ENV{MKL_ROOT}/include /usr/local/include)
++ HINTS $ENV{MKL_ROOT}/include /usr/include/mkl /usr/local/include)
+
+ find_library(Mkl_core_LIBRARY
+ NAMES mkl_core
+diff --git a/cmake_modules/cmake/MoonrayDso.cmake b/cmake_modules/cmake/MoonrayDso.cmake
+index a4f6704..1133253 100644
+--- a/cmake_modules/cmake/MoonrayDso.cmake
++++ b/cmake_modules/cmake/MoonrayDso.cmake
+@@ -57,7 +57,8 @@ function(Moonray_dso_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ # --werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+@@ -85,7 +86,7 @@ function(Moonray_dso_cxx_compile_definitions target)
+ target_compile_definitions(${target}
+ PRIVATE
+ __AVX__ # TODO: add comment
+- _GLIBCXX_USE_CXX11_ABI=0 # TODO: add comment
++ _GLIBCXX_USE_CXX11_ABI=1 # TODO: add comment
+ BOOST_FILESYSTEM_VERSION=3 # TODO: add comment
+ DWA_BOOST_VERSION=1073000 # TODO: add comment
+ OPENVDB_USE_BLOSC # TODO: Move this to where it is needed?
+diff --git a/moonray/hydra/cmake/HdMoonrayCompileDefinitions.cmake b/moonray/hydra/cmake/HdMoonrayCompileDefinitions.cmake
+index c5088eb..4a3e516 100644
+--- a/moonray/hydra/cmake/HdMoonrayCompileDefinitions.cmake
++++ b/moonray/hydra/cmake/HdMoonrayCompileDefinitions.cmake
+@@ -13,7 +13,7 @@ function(HdMoonray_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/hydra/cmake/HdMoonrayCompileOptions.cmake b/moonray/hydra/cmake/HdMoonrayCompileOptions.cmake
+index 40560a7..5dfefe9 100644
+--- a/moonray/hydra/cmake/HdMoonrayCompileOptions.cmake
++++ b/moonray/hydra/cmake/HdMoonrayCompileOptions.cmake
+@@ -78,7 +78,8 @@ function(Moonray_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ # --werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+Submodule moonray/hydra/hdMoonray contains modified content
+diff --git a/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileDefinitions.cmake b/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileDefinitions.cmake
+index d7081b7..744d7a6 100644
+--- a/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileDefinitions.cmake
++++ b/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileDefinitions.cmake
+@@ -16,7 +16,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+
+ PUBLIC
+ __AVX__
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileOptions.cmake b/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileOptions.cmake
+index 4d98ea7..8682bbc 100644
+--- a/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileOptions.cmake
++++ b/moonray/hydra/hdMoonray/cmake/HdMoonrayCompileOptions.cmake
+@@ -78,7 +78,8 @@ function(${PROJECT_NAME}_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ # --werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+diff --git a/moonray/hydra/hdMoonray/src/RendererPlugin.cc b/moonray/hydra/hdMoonray/src/RendererPlugin.cc
+index b0e3310..6f1019a 100644
+--- a/moonray/hydra/hdMoonray/src/RendererPlugin.cc
++++ b/moonray/hydra/hdMoonray/src/RendererPlugin.cc
+@@ -25,7 +25,7 @@ public:
+ delete renderDelegate;
+ }
+
+- bool IsSupported() const override {
++ bool IsSupported(bool gpuEnabled = true) const override {
+ return true;
+ }
+
+Submodule moonray/mcrt_denoise contains modified content
+diff --git a/moonray/mcrt_denoise/cmake/McrtDenoiseCompileDefinitions.cmake b/moonray/mcrt_denoise/cmake/McrtDenoiseCompileDefinitions.cmake
+index 070e0be..ec77732 100644
+--- a/moonray/mcrt_denoise/cmake/McrtDenoiseCompileDefinitions.cmake
++++ b/moonray/mcrt_denoise/cmake/McrtDenoiseCompileDefinitions.cmake
+@@ -23,7 +23,7 @@ function(McrtDenoise_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonray/cmake/MoonrayCompileDefinitions.cmake b/moonray/moonray/cmake/MoonrayCompileDefinitions.cmake
+index 4bfed25..a7c9669 100644
+--- a/moonray/moonray/cmake/MoonrayCompileDefinitions.cmake
++++ b/moonray/moonray/cmake/MoonrayCompileDefinitions.cmake
+@@ -27,7 +27,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+
+ PUBLIC
+ __AVX__
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+
+diff --git a/moonray/moonray/cmake/MoonrayCompileOptions.cmake b/moonray/moonray/cmake/MoonrayCompileOptions.cmake
+index d6e2af7..fee218b 100644
+--- a/moonray/moonray/cmake/MoonrayCompileOptions.cmake
++++ b/moonray/moonray/cmake/MoonrayCompileOptions.cmake
+@@ -66,7 +66,8 @@ function(${PROJECT_NAME}_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ #--werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+diff --git a/moonray/moonray/lib/deepfile/DcxImageFormat.h b/moonray/moonray/lib/deepfile/DcxImageFormat.h
+index 5aaf284..f9fbdee 100644
+--- a/moonray/moonray/lib/deepfile/DcxImageFormat.h
++++ b/moonray/moonray/lib/deepfile/DcxImageFormat.h
+@@ -7,7 +7,7 @@
+ #include "DcxAPI.h"
+
+ #include <OpenEXR/ImfHeader.h>
+-#include <OpenEXR/ImathMatrix.h>
++#include <Imath/ImathMatrix.h>
+
+ #include <string>
+ #include <iostream>
+diff --git a/moonray/moonray/lib/deepfile/DcxPixel.h b/moonray/moonray/lib/deepfile/DcxPixel.h
+index 6d4d4a7..5e972a8 100644
+--- a/moonray/moonray/lib/deepfile/DcxPixel.h
++++ b/moonray/moonray/lib/deepfile/DcxPixel.h
+@@ -17,7 +17,7 @@
+ // this is coming from OpenEXR/half.h...
+ # pragma warning(disable:1572)
+ #endif
+-#include <OpenEXR/half.h> // For Pixelh
++#include <Imath/half.h> // For Pixelh
+
+ #include <string.h> // for memset in some compilers
+ #include <iostream>
+diff --git a/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.ispc b/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.ispc
+index 62f84f8..b33c05e 100644
+--- a/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.ispc
++++ b/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.ispc
+@@ -77,7 +77,7 @@ Intersection_adaptNormal(const varying Intersection &isect, const varying Vec3f
+ varying Vec3f
+ Intersection_adaptToonNormal(const varying Intersection &isect, const varying Vec3f &Ns)
+ {
+- if (!Flags_get(isect.mFlags, (uint32_t)INTERSECTION_FLAGS_USE_ADAPT_NORMAL)) {
++ if (!Flags_get(isect.mFlags, (uniform uint32_t)INTERSECTION_FLAGS_USE_ADAPT_NORMAL)) {
+ return Ns;
+ }
+ return Intersection_adaptNormal(isect, Ns);
+diff --git a/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.isph b/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.isph
+index a5ac249..0dee9fa 100644
+--- a/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.isph
++++ b/moonray/moonray/lib/rendering/bvh/shading/ispc/Intersection.isph
+@@ -166,7 +166,7 @@ inline void
+ setUseAdaptNormal(varying Intersection * uniform me, uniform bool useAdaptNormal)
+
+ {
+- Flags_set(&(me->mFlags), (uint32_t)INTERSECTION_FLAGS_USE_ADAPT_NORMAL, useAdaptNormal);
++ Flags_set(&(me->mFlags), (uniform uint32_t)INTERSECTION_FLAGS_USE_ADAPT_NORMAL, useAdaptNormal);
+ }
+ varying Vec3f Intersection_adaptNormal(const varying Intersection &isect, const varying Vec3f &Ns);
+ varying Vec3f Intersection_adaptToonNormal(const varying Intersection &isect, const varying Vec3f &Ns);
+diff --git a/moonray/moonray/lib/rendering/rndr/RenderTimingRecord.h b/moonray/moonray/lib/rendering/rndr/RenderTimingRecord.h
+index ef98054..38955ab 100644
+--- a/moonray/moonray/lib/rendering/rndr/RenderTimingRecord.h
++++ b/moonray/moonray/lib/rendering/rndr/RenderTimingRecord.h
+@@ -5,6 +5,7 @@
+ //
+ #pragma once
+
++#include <limits>
+ #include <scene_rdl2/common/platform/Platform.h>
+
+ #include <vector>
+diff --git a/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitive.h b/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitive.h
+index 18fa3c8..9a36e98 100644
+--- a/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitive.h
++++ b/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitive.h
+@@ -3,6 +3,7 @@
+
+ #pragma once
+
++#include <array>
+ #include "GPUBuffer.h"
+ #include "GPUMath.h"
+
+diff --git a/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc b/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc
+index 0f0162c..6e33531 100644
+--- a/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc
++++ b/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc
+@@ -66,7 +66,7 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
+ oinstance.instanceId = 0;
+ oinstance.visibilityMask = 255;
+ oinstance.sbtOffset = mSBTOffset;
+- oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
++ // oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
+ oinstance.traversableHandle = mTrianglesGAS;
+ instances.push_back(oinstance);
+ }
+@@ -87,7 +87,7 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
+ oinstance.instanceId = 0;
+ oinstance.visibilityMask = 255;
+ oinstance.sbtOffset = mSBTOffset + mTriMeshes.size();
+- oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
++ // oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
+ oinstance.traversableHandle = mTrianglesMBGAS;
+ instances.push_back(oinstance);
+ }
+@@ -108,7 +108,7 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
+ oinstance.instanceId = 0;
+ oinstance.visibilityMask = 255;
+ oinstance.sbtOffset = mSBTOffset + mTriMeshes.size() + mTriMeshesMB.size();
+- oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
++ // oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
+ oinstance.traversableHandle = mRoundCurvesGAS;
+ instances.push_back(oinstance);
+ }
+@@ -129,7 +129,7 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
+ oinstance.instanceId = 0;
+ oinstance.visibilityMask = 255;
+ oinstance.sbtOffset = mSBTOffset + mTriMeshes.size() + mTriMeshesMB.size() + mRoundCurves.size();
+- oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
++ // oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
+ oinstance.traversableHandle = mRoundCurvesMBGAS;
+ instances.push_back(oinstance);
+ }
+@@ -151,7 +151,7 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
+ oinstance.visibilityMask = 255;
+ oinstance.sbtOffset = mSBTOffset + mTriMeshes.size() + mTriMeshesMB.size() +
+ mRoundCurves.size() + mRoundCurvesMB.size();
+- oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
++ // oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
+ oinstance.traversableHandle = mCustomPrimitivesGAS;
+ instances.push_back(oinstance);
+
+@@ -185,7 +185,7 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
+ // The xform is specified in the mMMTTraversable instead. The child
+ // node is the MatrixMotionTransform of the instance, which itself
+ // has the group's top level IAS node as its child.
+- oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
++ // oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
+ GPUXform::identityXform().toOptixTransform(oinstance.transform);
+ oinstance.traversableHandle = mInstances[i]->mMMTTraversable;
+ }
+diff --git a/moonray/moonray/lib/rendering/shading/bsdf/hair/BsdfHairOneSampler.h b/moonray/moonray/lib/rendering/shading/bsdf/hair/BsdfHairOneSampler.h
+index e5fc2aa..fbf1e49 100644
+--- a/moonray/moonray/lib/rendering/shading/bsdf/hair/BsdfHairOneSampler.h
++++ b/moonray/moonray/lib/rendering/shading/bsdf/hair/BsdfHairOneSampler.h
+@@ -8,6 +8,7 @@
+
+ #pragma once
+
++#include <array>
+ #include "BsdfHairLobes.h"
+ #include <moonray/rendering/shading/ispc/bsdf/hair/BsdfHair_ispc_stubs.h>
+
+diff --git a/moonray/moonray/lib/rendering/shading/ispc/EvalAttribute.isph b/moonray/moonray/lib/rendering/shading/ispc/EvalAttribute.isph
+index 7908013..44148ef 100644
+--- a/moonray/moonray/lib/rendering/shading/ispc/EvalAttribute.isph
++++ b/moonray/moonray/lib/rendering/shading/ispc/EvalAttribute.isph
+@@ -511,7 +511,7 @@ evalFloat(const uniform Material * uniform sceneObject,
+ const varying State & state,
+ const uniform FloatAttrKey * uniform keyIn)
+ {
+- return evalFloat((const SceneObject *) sceneObject, tls, state, keyIn);
++ return evalFloat((const SceneObject * uniform) sceneObject, tls, state, keyIn);
+ }
+ inline float
+ evalFloat(const uniform Map * uniform sceneObject,
+diff --git a/moonray/moonray_arras/cmake/MoonrayArrasCompileDefinitions.cmake b/moonray/moonray_arras/cmake/MoonrayArrasCompileDefinitions.cmake
+index b2b21a0..038b648 100644
+--- a/moonray/moonray_arras/cmake/MoonrayArrasCompileDefinitions.cmake
++++ b/moonray/moonray_arras/cmake/MoonrayArrasCompileDefinitions.cmake
+@@ -13,7 +13,7 @@ function(MoonrayArras_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonray_arras/cmake/MoonrayArrasCompileOptions.cmake b/moonray/moonray_arras/cmake/MoonrayArrasCompileOptions.cmake
+index 84f6742..7a2baef 100644
+--- a/moonray/moonray_arras/cmake/MoonrayArrasCompileOptions.cmake
++++ b/moonray/moonray_arras/cmake/MoonrayArrasCompileOptions.cmake
+@@ -37,7 +37,8 @@ function(Moonray_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ #--werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+Submodule moonray/moonray_arras/mcrt_computation contains modified content
+diff --git a/moonray/moonray_arras/mcrt_computation/cmake/McrtComputationCompileDefinitions.cmake b/moonray/moonray_arras/mcrt_computation/cmake/McrtComputationCompileDefinitions.cmake
+index 6b8d0e7..a14ac05 100644
+--- a/moonray/moonray_arras/mcrt_computation/cmake/McrtComputationCompileDefinitions.cmake
++++ b/moonray/moonray_arras/mcrt_computation/cmake/McrtComputationCompileDefinitions.cmake
+@@ -15,7 +15,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonray_arras/mcrt_computation/lib/engine/mcrt/McrtUpdate.h b/moonray/moonray_arras/mcrt_computation/lib/engine/mcrt/McrtUpdate.h
+index e229344..7bd3480 100644
+--- a/moonray/moonray_arras/mcrt_computation/lib/engine/mcrt/McrtUpdate.h
++++ b/moonray/moonray_arras/mcrt_computation/lib/engine/mcrt/McrtUpdate.h
+@@ -5,6 +5,7 @@
+ //
+ #pragma once
+
++#include <functional>
+ #include <message_api/Message.h>
+ #include <message_api/messageapi_names.h>
+ #include <message_api/Object.h>
+Submodule moonray/moonray_arras/mcrt_dataio contains modified content
+diff --git a/moonray/moonray_arras/mcrt_dataio/cmake/McrtDataioCompileDefinitions.cmake b/moonray/moonray_arras/mcrt_dataio/cmake/McrtDataioCompileDefinitions.cmake
+index 6b8d0e7..a14ac05 100644
+--- a/moonray/moonray_arras/mcrt_dataio/cmake/McrtDataioCompileDefinitions.cmake
++++ b/moonray/moonray_arras/mcrt_dataio/cmake/McrtDataioCompileDefinitions.cmake
+@@ -15,7 +15,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonray_arras/mcrt_dataio/lib/engine/mcrt/McrtControl.h b/moonray/moonray_arras/mcrt_dataio/lib/engine/mcrt/McrtControl.h
+index 9ca5d92..6aa67a3 100644
+--- a/moonray/moonray_arras/mcrt_dataio/lib/engine/mcrt/McrtControl.h
++++ b/moonray/moonray_arras/mcrt_dataio/lib/engine/mcrt/McrtControl.h
+@@ -16,6 +16,7 @@
+
+ #include <functional>
+ #include <iostream>
++#include <cstdint>
+
+ namespace mcrt_dataio {
+
+diff --git a/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/FbMsgUtil.cc b/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/FbMsgUtil.cc
+index c0298aa..c06368e 100644
+--- a/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/FbMsgUtil.cc
++++ b/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/FbMsgUtil.cc
+@@ -7,6 +7,7 @@
+
+ #include <iomanip>
+ #include <sstream>
++#include <cstdint>
+
+ namespace mcrt_dataio {
+
+diff --git a/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/MsgSendHandler.h b/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/MsgSendHandler.h
+index 7c1875c..be61577 100644
+--- a/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/MsgSendHandler.h
++++ b/moonray/moonray_arras/mcrt_dataio/lib/engine/merger/MsgSendHandler.h
+@@ -6,6 +6,7 @@
+ #pragma once
+
+ #include <functional>
++#include <string>
+
+ namespace mcrt_dataio {
+
+diff --git a/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoCodec.cc b/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoCodec.cc
+index e9a2e48..6b2853e 100644
+--- a/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoCodec.cc
++++ b/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoCodec.cc
+@@ -301,13 +301,13 @@ InfoCodec::setUInt(Key &key, const unsigned int setVal, unsigned int *setTarget)
+ void
+ InfoCodec::setInt64(Key &key, const int64_t setVal, int64_t *setTarget) // MTsafe
+ {
+- mImpl->set<long long>(key, (long long)setVal, (long long *)setTarget);
++ mImpl->set<long>(key, (long)setVal, (long *)setTarget);
+ }
+
+ void
+ InfoCodec::setUInt64(Key &key, const uint64_t setVal, uint64_t *setTarget) // MTsafe
+ {
+- mImpl->set<unsigned long long>(key, (unsigned long long)setVal, (unsigned long long *)setTarget);
++ mImpl->set<unsigned long>(key, (unsigned long)setVal, (unsigned long *)setTarget);
+ }
+
+ void
+diff --git a/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoRec.cc b/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoRec.cc
+index 77bb9ea..9e96294 100644
+--- a/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoRec.cc
++++ b/moonray/moonray_arras/mcrt_dataio/lib/share/codec/InfoRec.cc
+@@ -45,7 +45,7 @@ InfoRecGlobal::setMerge(const std::string &hostName,
+ {
+ mArray["mg"]["name"] = hostName;
+ mArray["mg"]["cpu"] = cpuTotal;
+- mArray["mg"]["mem"] = (unsigned long long)memTotal;
++ mArray["mg"]["mem"] = (unsigned long)memTotal;
+ }
+
+ bool
+@@ -66,7 +66,7 @@ InfoRecGlobal::setMcrt(const int machineId,
+ std::string mIdStr = mIdStrGen(machineId);
+ mArray["mc"][mIdStr]["name"] = hostName;
+ mArray["mc"][mIdStr]["cpu"] = cpuTotal;
+- mArray["mc"][mIdStr]["mem"] = (unsigned long long)memTotal;
++ mArray["mc"][mIdStr]["mem"] = (unsigned long)memTotal;
+ }
+
+ size_t
+@@ -472,7 +472,7 @@ void
+ InfoRecItem::setTimeStamp()
+ {
+ mTimeStamp = MiscUtil::getCurrentMicroSec();
+- mArray["time"] = (unsigned long long)(mTimeStamp);
++ mArray["time"] = (unsigned long)(mTimeStamp);
+ }
+
+ int
+diff --git a/moonray/moonray_arras/mcrt_dataio/lib/share/util/FpsTracker.h b/moonray/moonray_arras/mcrt_dataio/lib/share/util/FpsTracker.h
+index 029b967..87d31f7 100644
+--- a/moonray/moonray_arras/mcrt_dataio/lib/share/util/FpsTracker.h
++++ b/moonray/moonray_arras/mcrt_dataio/lib/share/util/FpsTracker.h
+@@ -7,6 +7,7 @@
+
+ #include <queue>
+ #include <string>
++#include <cstdint>
+
+ namespace mcrt_dataio {
+
+Submodule moonray/moonray_arras/mcrt_messages contains modified content
+diff --git a/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileDefinitions.cmake b/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileDefinitions.cmake
+index 6b8d0e7..a14ac05 100644
+--- a/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileDefinitions.cmake
++++ b/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileDefinitions.cmake
+@@ -15,7 +15,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileOptions.cmake b/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileOptions.cmake
+index 06c6ba4..12fe077 100644
+--- a/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileOptions.cmake
++++ b/moonray/moonray_arras/mcrt_messages/cmake/McrtMessagesCompileOptions.cmake
+@@ -39,7 +39,8 @@ function(Moonray_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ #--werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+Submodule moonray/moonray_gui contains modified content
+diff --git a/moonray/moonray_gui/cmake/MoonrayGuiCompileDefinitions.cmake b/moonray/moonray_gui/cmake/MoonrayGuiCompileDefinitions.cmake
+index 6b8d0e7..a14ac05 100644
+--- a/moonray/moonray_gui/cmake/MoonrayGuiCompileDefinitions.cmake
++++ b/moonray/moonray_gui/cmake/MoonrayGuiCompileDefinitions.cmake
+@@ -15,7 +15,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+ >
+
+ PUBLIC
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonray_gui/cmake/MoonrayGuiCompileOptions.cmake b/moonray/moonray_gui/cmake/MoonrayGuiCompileOptions.cmake
+index 85f7f5f..aa08f10 100644
+--- a/moonray/moonray_gui/cmake/MoonrayGuiCompileOptions.cmake
++++ b/moonray/moonray_gui/cmake/MoonrayGuiCompileOptions.cmake
+@@ -65,7 +65,8 @@ function(${PROJECT_NAME}_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ #--werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+Submodule moonray/moonshine contains modified content
+diff --git a/moonray/moonshine/cmake/MoonshineCompileDefinitions.cmake b/moonray/moonshine/cmake/MoonshineCompileDefinitions.cmake
+index 8f69b43..d001ad9 100644
+--- a/moonray/moonshine/cmake/MoonshineCompileDefinitions.cmake
++++ b/moonray/moonshine/cmake/MoonshineCompileDefinitions.cmake
+@@ -23,7 +23,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+
+ PUBLIC
+ __AVX__
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonshine/cmake/MoonshineCompileOptions.cmake b/moonray/moonshine/cmake/MoonshineCompileOptions.cmake
+index d6e2af7..2a83a56 100644
+--- a/moonray/moonshine/cmake/MoonshineCompileOptions.cmake
++++ b/moonray/moonshine/cmake/MoonshineCompileOptions.cmake
+@@ -66,7 +66,8 @@ function(${PROJECT_NAME}_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ --werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+diff --git a/moonray/moonshine/lib/common/noise/Worley.h b/moonray/moonshine/lib/common/noise/Worley.h
+index 59997bc..e8d8c4a 100644
+--- a/moonray/moonshine/lib/common/noise/Worley.h
++++ b/moonray/moonshine/lib/common/noise/Worley.h
+@@ -7,6 +7,7 @@
+
+ #pragma warning disable 1711 // Warnings about assignemnt to statically allocated data
+
++#include <array>
+ #include "Noise.h"
+ #include "Noise_ispc_stubs.h"
+ #include "Worley_ispc_stubs.h"
+diff --git a/moonray/moonshine/lib/material/dwabase/ispc/DwaBaseLayerable.isph b/moonray/moonshine/lib/material/dwabase/ispc/DwaBaseLayerable.isph
+index 79af0a7..3ec49d1 100644
+--- a/moonray/moonshine/lib/material/dwabase/ispc/DwaBaseLayerable.isph
++++ b/moonray/moonshine/lib/material/dwabase/ispc/DwaBaseLayerable.isph
+@@ -390,7 +390,7 @@ DWABASELAYERABLE_printHairParameters(const varying HairParameters * uniform cons
+
+ // Hair params
+ print("mHairCastsCaustics: %\n", DWABASE_EXTRACT((uint32_t) params->mHairCastsCaustics));
+- print("mHairUV: % % %\n",
++ print("mHairUV: % %\n",
+ DWABASE_EXTRACT(params->mHairUV.x),
+ DWABASE_EXTRACT(params->mHairUV.y));
+ print("mHairIOR: %\n", DWABASE_EXTRACT(params->mHairIOR));
+Submodule moonray/moonshine_usd contains modified content
+diff --git a/moonray/moonshine_usd/cmake/MoonshineUsdCompileDefinitions.cmake b/moonray/moonshine_usd/cmake/MoonshineUsdCompileDefinitions.cmake
+index 8f69b43..d001ad9 100644
+--- a/moonray/moonshine_usd/cmake/MoonshineUsdCompileDefinitions.cmake
++++ b/moonray/moonshine_usd/cmake/MoonshineUsdCompileDefinitions.cmake
+@@ -23,7 +23,7 @@ function(${PROJECT_NAME}_cxx_compile_definitions target)
+
+ PUBLIC
+ __AVX__
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/moonshine_usd/cmake/MoonshineUsdCompileOptions.cmake b/moonray/moonshine_usd/cmake/MoonshineUsdCompileOptions.cmake
+index 2c63538..a32398c 100644
+--- a/moonray/moonshine_usd/cmake/MoonshineUsdCompileOptions.cmake
++++ b/moonray/moonshine_usd/cmake/MoonshineUsdCompileOptions.cmake
+@@ -67,7 +67,8 @@ function(${PROJECT_NAME}_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ #--werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+Submodule moonray/scene_rdl2 contains modified content
+diff --git a/moonray/scene_rdl2/cmake/SceneRdl2CompileDefinitions.cmake b/moonray/scene_rdl2/cmake/SceneRdl2CompileDefinitions.cmake
+index 8dd3aed..9e8feaf 100644
+--- a/moonray/scene_rdl2/cmake/SceneRdl2CompileDefinitions.cmake
++++ b/moonray/scene_rdl2/cmake/SceneRdl2CompileDefinitions.cmake
+@@ -22,7 +22,7 @@ function(SceneRdl2_cxx_compile_definitions target)
+
+ PUBLIC
+ __AVX__
+- _GLIBCXX_USE_CXX11_ABI=0 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
++ _GLIBCXX_USE_CXX11_ABI=1 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
+ GL_GLEXT_PROTOTYPES=1 # This define makes function symbols to be available as extern declarations.
+ TBB_SUPPRESS_DEPRECATED_MESSAGES # Suppress 'deprecated' messages from TBB
+ )
+diff --git a/moonray/scene_rdl2/cmake/SceneRdl2CompileOptions.cmake b/moonray/scene_rdl2/cmake/SceneRdl2CompileOptions.cmake
+index 462396b..911ee33 100644
+--- a/moonray/scene_rdl2/cmake/SceneRdl2CompileOptions.cmake
++++ b/moonray/scene_rdl2/cmake/SceneRdl2CompileOptions.cmake
+@@ -65,7 +65,8 @@ function(SceneRdl2_ispc_compile_options target)
+ PRIVATE
+ --opt=force-aligned-memory # always issue "aligned" vector load and store instructions
+ --pic # Generate position-independent code. Ignored for Windows target
+- --werror # Treat warnings as errors
++ #--werror # Treat warnings as errors
++ --ignore-preprocessor-errors
+ # --wno-perf # Don't issue warnings related to performance-related issues
+
+ $<$<CONFIG:DEBUG>:
+diff --git a/moonray/scene_rdl2/lib/common/platform/Platform.h b/moonray/scene_rdl2/lib/common/platform/Platform.h
+index 6baca9a..9d9f12a 100644
+--- a/moonray/scene_rdl2/lib/common/platform/Platform.h
++++ b/moonray/scene_rdl2/lib/common/platform/Platform.h
+@@ -13,6 +13,7 @@
+ #include <iostream>
+ #include <sstream>
+ #include <string>
++#include <cstdint>
+
+ // Intel: begin *****
+ /*
+diff --git a/moonray/scene_rdl2/lib/render/util/Arena.h b/moonray/scene_rdl2/lib/render/util/Arena.h
+index ada0b49..bd7e327 100644
+--- a/moonray/scene_rdl2/lib/render/util/Arena.h
++++ b/moonray/scene_rdl2/lib/render/util/Arena.h
+@@ -115,7 +115,7 @@ public:
+
+ protected:
+ unsigned mBlockSize;
+- tbb::atomic<unsigned> mTotalBlocks;
++ std::atomic<unsigned> mTotalBlocks;
+
+ CACHE_ALIGN util::ConcurrentSList mFreeBlocks;
+ };
+diff --git a/moonray/scene_rdl2/lib/render/util/ReaderWriterMutex.h b/moonray/scene_rdl2/lib/render/util/ReaderWriterMutex.h
+index e08db0e..9b0aa18 100644
+--- a/moonray/scene_rdl2/lib/render/util/ReaderWriterMutex.h
++++ b/moonray/scene_rdl2/lib/render/util/ReaderWriterMutex.h
+@@ -4,6 +4,8 @@
+
+ #pragma once
+
++#include <mutex>
++
+ #if defined(__has_include)
+ # if __has_include(<shared_mutex>)
+ # include <shared_mutex>
+diff --git a/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.cc b/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.cc
+index 811f55e..3e605f2 100644
+--- a/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.cc
++++ b/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.cc
+@@ -31,7 +31,7 @@
+ #include <scene_rdl2/render/logging/logging.h>
+
+ #include <tbb/concurrent_hash_map.h>
+-#include <tbb/mutex.h>
++#include </usr/include/oneapi/tbb/mutex.h>
+ #include <tbb/parallel_for_each.h>
+
+ #include <algorithm>
+diff --git a/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.h b/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.h
+index 8b7c9ce..c43d080 100644
+--- a/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.h
++++ b/moonray/scene_rdl2/lib/scene/rdl2/SceneContext.h
+@@ -13,7 +13,7 @@
+ #include <scene_rdl2/render/util/Alloc.h>
+ #include <scene_rdl2/common/platform/Platform.h>
+ #include <tbb/concurrent_hash_map.h>
+-#include <tbb/mutex.h>
++#include </usr/include/oneapi/tbb/mutex.h>
+
+ #include <string>
diff --git a/optix.patch b/optix.patch
new file mode 100644
index 000000000000..686892dbd6bd
--- /dev/null
+++ b/optix.patch
@@ -0,0 +1,13 @@
+diff --git a/OptixDenoiserImpl.cc.orig b/OptixDenoiserImpl.cc
+index e9b4302..57f2fba 100644
+--- a/OptixDenoiserImpl.cc.orig
++++ b/OptixDenoiserImpl.cc
+@@ -107,7 +107,7 @@ OptixDenoiserImpl::OptixDenoiserImpl(int width,
+ }
+
+ mDenoiserParams = {}; // zero initialize
+- mDenoiserParams.denoiseAlpha = 0; // don't denoise alpha
++ mDenoiserParams.denoiseAlpha = OPTIX_DENOISER_ALPHA_MODE_COPY; // don't denoise alpha
+ mDenoiserParams.hdrIntensity = 0; // optional average log intensity image of input image,
+ // helps with very dark/bright images
+ mDenoiserParams.blendFactor = 0.f; // show the denoised image only