From cda2718eba8f771c95b4bac328891eff5b8e6eb5 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 16:06:35 +0200 Subject: [PATCH 01/27] Refresh macOS dependency versions Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> (cherry picked from commit f39e146cf83d7c68362388313715c83a7f90a822) --- building/macOS/CMakeLists.txt | 84 +++++++++++++++++++++++++---------- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index 00085e2..7ddd663 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -61,13 +61,14 @@ ExternalProject_Add(Blosc set(CHAIN Blosc) ExternalProject_Add(Boost - URL https://archives.boost.io/release/1.78.0/source/boost_1_78_0.tar.gz - https://downloads.sourceforge.net/project/boost/boost/1.78.0/boost_1_78_0.tar.gz - URL_HASH SHA256=94ced8b72956591c4775ae2207a9763d3600b30d9d7446562c552f0a14a63be7 - UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-libraries=python,filesystem,system,thread,regex,date_time,chrono,program_options,iostreams --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" + URL https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.gz + https://downloads.sourceforge.net/project/boost/boost/1.85.0/boost_1_85_0.tar.gz + URL_HASH SHA256=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b + UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch || true - BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam variant=release link=shared threading=multi define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 + COMMAND /usr/bin/perl -0pi -e "s/boost-install boost_python boost_numpy/boost-install boost_python/" libs/python/build/Jamfile + BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with-python --with-iostreams --with-atomic --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-system --with-thread variant=release link=shared threading=multi architecture=arm address-model=64 define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 BUILD_IN_SOURCE 1 INSTALL_COMMAND "" DEPENDS ${CHAIN} @@ -112,7 +113,7 @@ set(CHAIN MicroHttpd) ExternalProject_Add(OpenSubdiv GIT_REPOSITORY https://github.com/PixarAnimationStudios/OpenSubdiv - GIT_TAG 8ffa2b6566be10209529d7a0d1db02a0796b160c # v3_5_0 + GIT_TAG d303eb5071fd3ce148e37d8f7fcd8f212143fe1a # v3_6_0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -123,41 +124,67 @@ ExternalProject_Add(OpenSubdiv ) set(CHAIN OpenSubdiv) +ExternalProject_Add(Imath + GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/Imath + GIT_TAG c0396a055a01bc537d32f435aee11a9b7ed6f0b5 # v3.1.12 + BUILD_COMMAND make ${JOBS_ARG} + CMAKE_ARGS + ${COMMON_CMAKE_ARGS} + -DCMAKE_BUILD_TYPE=Release + -DBUILD_TESTING=OFF + -DIMATH_INSTALL_PKG_CONFIG=ON + DEPENDS ${CHAIN} +) +set(CHAIN Imath) + ExternalProject_Add(OpenEXR GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openexr - GIT_TAG 8bc3741131db146ad08a5b83af9e6e48f0e94a03 # v2.5.7 - PATCH_COMMAND patch IlmBase/Half/CMakeLists.txt ${THIS_DIR}/../Imath_include_paths.patch + GIT_TAG 55d1a1404cec5b4b187009d9f7fe55a5622ac4e5 # v3.3.2 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} - -DBoost_ROOT=${InstallRoot} - -DBUILD_SHARED_LIBS=OFF + -DImath_ROOT=${InstallRoot} + -DImath_DIR=${InstallRoot}/lib/cmake/Imath + -DCMAKE_BUILD_TYPE=Release + -DBUILD_SHARED_LIBS=ON + -DOPENEXR_BUILD_TOOLS=OFF + -DOPENEXR_BUILD_EXAMPLES=OFF + -DOPENEXR_BUILD_TESTS=OFF + -DOPENEXR_BUILD_PYTHON=OFF + -DOPENEXR_INSTALL_EXAMPLES=OFF DEPENDS ${CHAIN} ) set(CHAIN OpenEXR) ExternalProject_Add(TBB - URL https://github.com/oneapi-src/oneTBB/archive/2020_U3.tar.gz - URL_HASH SHA256=2103cc6238c935664f87680618f6684d57501d4a2fa8ea8f6c97ad6ff7dc722a - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND "" - BUILD_COMMAND make ${JOBS_ARG} arch=arm64 - INSTALL_COMMAND bash -c "cp build/*_release/libtbb*.* ${InstallRoot}/lib" - COMMAND bash -c "cp -r include/tbb ${InstallRoot}/include" + GIT_REPOSITORY https://github.com/oneapi-src/oneTBB.git + GIT_TAG 45587e94dfb6dfe00220c5f520020a5bc745e92f # v2022.1.0 + BUILD_COMMAND ${CMAKE_COMMAND} --build --config Release --parallel ${N} + INSTALL_COMMAND ${CMAKE_COMMAND} --install --config Release + CMAKE_ARGS + ${COMMON_CMAKE_ARGS} + -DCMAKE_BUILD_TYPE=Release + -DTBB_TEST=OFF + -DTBB_EXAMPLES=OFF + -DTBB_STRICT=OFF DEPENDS ${CHAIN} ) set(CHAIN TBB) ExternalProject_Add(OpenVDB GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb - GIT_TAG ab935574cdb25c3df66b068fce2a3b0a74281c54 # v9.1.0 - PATCH_COMMAND patch -p1 -N < ${THIS_DIR}/OpenVDB.patch || true + GIT_TAG f552aab85926ecd22abffdb0165815023c375447 # v12.0.1 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DBlosc_ROOT=${InstallRoot} -DBoost_ROOT=${InstallRoot} -DTBB_ROOT=${InstallRoot} + -DCMAKE_BUILD_TYPE=Release + -DOPENVDB_BUILD_BINARIES=OFF + -DOPENVDB_BUILD_UNITTESTS=OFF + -DOPENVDB_BUILD_PYTHON_MODULE=OFF + -DOPENVDB_BUILD_NANOVDB=OFF DEPENDS ${CHAIN} ) set(CHAIN OpenVDB) @@ -233,7 +260,7 @@ set(CHAIN embree) ExternalProject_Add(OpenColorIO GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO - GIT_TAG 056b7b0cb0d087961e9dba75104820e44faf52a1 # v2.0.2 + GIT_TAG ebd076ae6c4362d089edfbc63d8fbf3d7538ea01 # v2.4.1 BUILD_COMMAND ${CMAKE_COMMAND} -E env ${POLICY_MIN_ENV} make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -286,18 +313,30 @@ set(CHAIN pybind11) ExternalProject_Add(OpenImageIO GIT_REPOSITORY https://github.com/OpenImageIO/oiio - GIT_TAG 331a323468928c8017ad048b26d47c4e57a724a7 # 2.3.20.0 + GIT_TAG 372c57696909513a8ea97180cb34b925c4fe09e3 # v2.5.18.0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DBoost_ROOT=${InstallRoot} -DIMath_ROOT=${InstallRoot} + -DImath_DIR=${InstallRoot}/lib/cmake/Imath -DDISABLE_CMAKE_SEARCH_PATHS=TRUE -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=TRUE -DOpenEXR_ROOT=${InstallRoot} + -DOpenEXR_DIR=${InstallRoot}/lib/cmake/OpenEXR + -DOpenColorIO_ROOT=${InstallRoot} + -DTBB_ROOT=${InstallRoot} + -DCMAKE_BUILD_TYPE=Release -DUSE_QT=0 -DUSE_PYTHON=1 -DPython_EXECUTABLE=/usr/bin/python3 + -DUSE_OPENVDB=0 + -DUSE_FFMPEG=0 + -DUSE_OPENCV=0 + -DUSE_WEBP=0 + -DUSE_DCMTK=0 + -DUSE_OPENJPEG=0 + -DUSE_TESTS=0 DEPENDS ${CHAIN} ) set(CHAIN OpenImageIO) @@ -307,7 +346,7 @@ ExternalProject_Add(OpenImageDenoise URL_HASH SHA256=16cdaddabeb0f2af22fc8e466317c1a14a54b6ec03db2ac343e17fad40c70f3f BUILD_COMMAND "" CONFIGURE_COMMAND "" - INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb.dylib" + INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb*.dylib" COMMAND bash -c "ditto ../OpenImageDenoise ${InstallRoot}" DEPENDS ${CHAIN} ) @@ -432,4 +471,3 @@ ExternalProject_Add(GLFW DEPENDS ${CHAIN} ) set(CHAIN GLFW) - From fc694da55156bc2a67439224879100431396bf3c Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 19:30:27 +0200 Subject: [PATCH 02/27] Validate Houdini 22 macOS toolchain configuration Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeLists.txt | 2 +- CMakeMacOSPresets.json | 36 +++++++--- building/macOS/Boost-no-numpy.patch | 6 ++ building/macOS/CMakeLists.txt | 52 ++++++++++---- .../boost/asio/io_service.hpp | 8 +++ building/macOS/pxr-houdini/pxrConfig.cmake | 6 +- .../pxr-houdini/pxrTargets-release.cmake | 56 +++++++-------- building/macOS/pxr-houdini/pxrTargets.cmake | 72 +++++++++---------- building/macOS/user-config.jam | 8 +-- moonray/hydra/CMakeLists.txt | 5 +- 10 files changed, 151 insertions(+), 100 deletions(-) create mode 100644 building/macOS/Boost-no-numpy.patch create mode 100644 building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index b17664f..88d6e47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ list(APPEND CMAKE_MESSAGE_CONTEXT ${PROJECT_NAME}) if(NOT DEFINED CMAKE_INSTALL_PREFIX OR ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local") set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/release) endif() + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/cmake) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/rats/cmake) @@ -92,4 +93,3 @@ if(GLD STREQUAL "$ENV{STUDIO}") GROUP_READ GROUP_WRITE WORLD_READ) endif() - diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index 0524fa1..a4d98a5 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -5,8 +5,8 @@ "name": "macos-environment", "hidden": true, "environment": { - "DEPS_ROOT" : "${sourceParentDir}/installs", - "BUILD_DIR" : "${sourceParentDir}/build", + "DEPS_ROOT" : "/Applications/MoonRay/installs", + "BUILD_DIR" : "/Applications/MoonRay/build", "Boost_ROOT" : "$env{DEPS_ROOT}", "Libuuid_ROOT" : "$env{DEPS_ROOT}", "CppUnit_ROOT" : "$env{DEPS_ROOT}", @@ -20,17 +20,31 @@ "OPTIX_ROOT" : "$env{DEPS_ROOT}/optix", "PXR_USD_LOCATION" : "$env{DEPS_ROOT}", "PXR_INCLUDE_DIRS" : "$env{DEPS_ROOT}/include", + "PXR_BOOST_PYTHON_LIB" : "/Applications/Houdini/Houdini22.0.408/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python313-mt-a64.dylib", "Random123_ROOT" : "$env{DEPS_ROOT}", "ZLIB_ROOT" : "$env{DEPS_ROOT}", - "OIIO_PYTHON" : "$env{DEPS_ROOT}/lib/python3.9/site-packages" + "OIIO_PYTHON" : "$env{DEPS_ROOT}/lib/python3.13/site-packages" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT}", - "CMAKE_CXX_FLAGS": "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -I${sourceParentDir}/building/macOS/houdini-usd-fixes", + "CMAKE_CXX_FLAGS": "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -DFMT_USE_NONTYPE_TEMPLATE_ARGS=0 -DFMT_USE_CONSTEXPR=0 -DFMT_CONSTEVAL= -I/Applications/MoonRay/source/openmoonray/building/macOS/houdini-usd-fixes", "CMAKE_IGNORE_PATH": "/opt/homebrew", "CMAKE_IGNORE_PREFIX_PATH": "/opt/homebrew", "CMAKE_POLICY_VERSION_MINIMUM": "3.5", - "Python_EXECUTABLE": "/usr/bin/python3" + "Python_EXECUTABLE": "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/Resources/Python.app/Contents/MacOS/Python", + "CMAKE_CXX_STANDARD": "20", + "BUILD_QT_APPS": "OFF", + "BUILD_MATERIALX_SHADERS": "ON", + "BUILD_TESTING": "OFF", + "SCENERDL2_BUILD_TESTING": "OFF", + "MOONRAY_BUILD_TESTING": "OFF", + "ARRAS4_CORE_BUILD_TESTING": "OFF", + "MOONRAY_USE_METAL": "OFF", + "BUILD_MOONRAY_SDR_PLUGINS": "OFF", + "BUILD_HD_COMMANDS": "OFF", + "Vulkan_INCLUDE_DIR": "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", + "Vulkan_LIBRARY": "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libvulkan.dylib", + "CMAKE_ISPC_COMPILER": "$env{ISPC}" } }, { @@ -38,12 +52,12 @@ "hidden": true, "inherits": "macos-environment", "environment": { - "PREFIX_PXR" : "${sourceParentDir}/building/macOS/pxr-houdini", - "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini20.0.751", + "PREFIX_PXR" : "/Applications/MoonRay/source/openmoonray/building/macOS/pxr-houdini", + "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini22.0.408", "PXR_LIB_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries", "PXR_INCLUDE_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", "PXR_DEPS_PREFIX" : "$env{DEPS_ROOT}", - "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python39-mt-a64.dylib" + "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python313-mt-a64.dylib" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT};$env{PREFIX_PXR}", @@ -57,7 +71,7 @@ "binaryDir": "$env{BUILD_DIR}", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/installs/openmoonray" + "CMAKE_INSTALL_PREFIX": "/Applications/MoonRay/installs/openmoonray" }, "generator": "Xcode" }, @@ -68,9 +82,9 @@ "binaryDir": "$env{BUILD_DIR}", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/installs/openmoonray" + "CMAKE_INSTALL_PREFIX": "/Applications/MoonRay/installs/openmoonray" }, - "generator": "Xcode" + "generator": "Unix Makefiles" } ], "buildPresets": [ diff --git a/building/macOS/Boost-no-numpy.patch b/building/macOS/Boost-no-numpy.patch new file mode 100644 index 0000000..f9cef76 --- /dev/null +++ b/building/macOS/Boost-no-numpy.patch @@ -0,0 +1,6 @@ +diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile +--- a/libs/python/build/Jamfile ++++ b/libs/python/build/Jamfile +@@ -136,1 +136,1 @@ +-if [ python.configured ] && [ python.numpy ] ++if "" diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index 7ddd663..640a814 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -37,8 +37,10 @@ set(THIS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # User configurable settings set(InstallRoot ${rootSrcDir}/../../../../installs CACHE FILEPATH "Install root for dependencies") -set(PythonVer 3.9.6 CACHE STRING "Python version (n.m), e.g. 3.6") -set(PythonRoot /usr CACHE FILEPATH "Location of Python install") +set(HoudiniInstallRoot "/Applications/Houdini/Houdini22.0.408" CACHE PATH "Houdini installation root") +set(PythonVer 3.13.10 CACHE STRING "Python version (n.m), e.g. 3.6") +set(PythonRoot "${HoudiniInstallRoot}/Frameworks/Python.framework/Versions/3.13" CACHE FILEPATH "Location of Python install") +set(HoudiniPython "${PythonRoot}/Resources/Python.app/Contents/MacOS/Python" CACHE FILEPATH "Houdini Python executable") # Arguments shared by every CMake-based dependency: policy floor for CMake 4, # find dependencies only in ${InstallRoot}, never in homebrew, and install @@ -61,12 +63,12 @@ ExternalProject_Add(Blosc set(CHAIN Blosc) ExternalProject_Add(Boost - URL https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.gz - https://downloads.sourceforge.net/project/boost/boost/1.85.0/boost_1_85_0.tar.gz - URL_HASH SHA256=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b + URL https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.gz + https://downloads.sourceforge.net/project/boost/boost/1.88.0/boost_1_88_0.tar.gz UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch || true + COMMAND patch -p1 -N < ${THIS_DIR}/Boost-no-numpy.patch || true COMMAND /usr/bin/perl -0pi -e "s/boost-install boost_python boost_numpy/boost-install boost_python/" libs/python/build/Jamfile BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with-python --with-iostreams --with-atomic --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-system --with-thread variant=release link=shared threading=multi architecture=arm address-model=64 define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 BUILD_IN_SOURCE 1 @@ -113,7 +115,7 @@ set(CHAIN MicroHttpd) ExternalProject_Add(OpenSubdiv GIT_REPOSITORY https://github.com/PixarAnimationStudios/OpenSubdiv - GIT_TAG d303eb5071fd3ce148e37d8f7fcd8f212143fe1a # v3_6_0 + GIT_TAG 4951f30c00f395aa831a9fc42577cc28ce46fa81 # v3_7_0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -126,7 +128,7 @@ set(CHAIN OpenSubdiv) ExternalProject_Add(Imath GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/Imath - GIT_TAG c0396a055a01bc537d32f435aee11a9b7ed6f0b5 # v3.1.12 + GIT_TAG 1e480d11cb98b032a2dece9b9a8730512effc7f6 # v3.2.2 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -139,7 +141,7 @@ set(CHAIN Imath) ExternalProject_Add(OpenEXR GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openexr - GIT_TAG 55d1a1404cec5b4b187009d9f7fe55a5622ac4e5 # v3.3.2 + GIT_TAG 4b7ce9c503d0b069f58f07f915f7682c4030cbf1 # v3.4.3 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -173,7 +175,7 @@ set(CHAIN TBB) ExternalProject_Add(OpenVDB GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb - GIT_TAG f552aab85926ecd22abffdb0165815023c375447 # v12.0.1 + GIT_TAG 7c03e1f084873cd1b3422c7ff7aec6ee681b3b38 # v13.0.0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -260,7 +262,7 @@ set(CHAIN embree) ExternalProject_Add(OpenColorIO GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO - GIT_TAG ebd076ae6c4362d089edfbc63d8fbf3d7538ea01 # v2.4.1 + GIT_TAG 592a122b37467c3376f2387fbbdbe7b571fad39f # v2.5.0 BUILD_COMMAND ${CMAKE_COMMAND} -E env ${POLICY_MIN_ENV} make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -272,7 +274,7 @@ ExternalProject_Add(OpenColorIO -DOCIO_BUILD_PYTHON=OFF -DBUILD_SHARED_LIBS=ON -DOCIO_BUILD_STATIC=OFF - -DCMAKE_CXX_STANDARD=17 + -DCMAKE_CXX_STANDARD=20 DEPENDS ${CHAIN} ) set(CHAIN OpenColorIO) @@ -329,7 +331,10 @@ ExternalProject_Add(OpenImageIO -DCMAKE_BUILD_TYPE=Release -DUSE_QT=0 -DUSE_PYTHON=1 - -DPython_EXECUTABLE=/usr/bin/python3 + -DPython_EXECUTABLE=${HoudiniPython} + -DPython_ROOT=${PythonRoot} + -DPython_LIBRARIES=${PythonRoot}/lib/libpython3.13.dylib + -DPython_INCLUDE_DIR=${PythonRoot}/include/python3.13 -DUSE_OPENVDB=0 -DUSE_FFMPEG=0 -DUSE_OPENCV=0 @@ -342,8 +347,7 @@ ExternalProject_Add(OpenImageIO set(CHAIN OpenImageIO) ExternalProject_Add(OpenImageDenoise - URL https://github.com/OpenImageDenoise/oidn/releases/download/v2.2.0/oidn-2.2.0.arm64.macos.tar.gz - URL_HASH SHA256=16cdaddabeb0f2af22fc8e466317c1a14a54b6ec03db2ac343e17fad40c70f3f + URL https://github.com/OpenImageDenoise/oidn/releases/download/v2.3.3/oidn-2.3.3.arm64.macos.tar.gz BUILD_COMMAND "" CONFIGURE_COMMAND "" INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb*.dylib" @@ -352,6 +356,8 @@ ExternalProject_Add(OpenImageDenoise ) set(CHAIN OpenImageDenoise) +option(NO_QT "Skip building the Qt dependency" OFF) +if(NOT NO_QT) ExternalProject_Add(qt5 GIT_REPOSITORY https://code.qt.io/qt/qt5.git GIT_SUBMODULES_RECURSE false @@ -366,6 +372,22 @@ ExternalProject_Add(qt5 DEPENDS ${CHAIN} ) set(CHAIN qt5) +endif() + +ExternalProject_Add(MaterialX + GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/MaterialX + GIT_TAG 7b64921ef1d42f2d57871e9d2c43dc11f041f26b # v1.39.5 + BUILD_COMMAND make ${JOBS_ARG} + CMAKE_ARGS + ${COMMON_CMAKE_ARGS} + -DMATERIALX_BUILD_PYTHON=OFF + -DMATERIALX_BUILD_TESTS=OFF + -DMATERIALX_BUILD_VIEWER=OFF + -DMATERIALX_BUILD_GRAPH_EDITOR=OFF + -DCMAKE_BUILD_TYPE=Release + DEPENDS ${CHAIN} +) +set(CHAIN MaterialX) if(NOT NO_USD) ExternalProject_Add(USD @@ -418,6 +440,8 @@ set(CHAIN libuuid) ExternalProject_Add(OpenSSL GIT_REPOSITORY https://github.com/openssl/openssl.git + GIT_SHALLOW TRUE + GIT_SUBMODULES "" # GIT_TAG a92271e03a8d0dee507b6f1e7f49512568b2c7ad # 3.1.0 - contains a bug on Apple Silicon GIT_TAG 31157bc0b46e04227b8468d3e6915e4d0332777c # 3.0.8 CONFIGURE_COMMAND ./Configure darwin64-arm64 --prefix=${InstallRoot} --openssldir=${InstallRoot} -rpath ${InstallRoot}/lib diff --git a/building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp b/building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp new file mode 100644 index 0000000..47282e9 --- /dev/null +++ b/building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp @@ -0,0 +1,8 @@ +// Compatibility shim for Boost 1.88, which folded io_service into io_context. +#pragma once + +#include + +namespace boost::asio { +using io_service = io_context; +} diff --git a/building/macOS/pxr-houdini/pxrConfig.cmake b/building/macOS/pxr-houdini/pxrConfig.cmake index 28237a8..7cf0ae0 100644 --- a/building/macOS/pxr-houdini/pxrConfig.cmake +++ b/building/macOS/pxr-houdini/pxrConfig.cmake @@ -17,12 +17,12 @@ get_filename_component(PXR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) set(PXR_MAJOR_VERSION "0") -set(PXR_MINOR_VERSION "22") +set(PXR_MINOR_VERSION "26") set(PXR_PATCH_VERSION "5") -set(PXR_VERSION "2205") +set(PXR_VERSION "2605") include("${PXR_CMAKE_DIR}/pxrTargets.cmake") -set(libs "arch;tf;gf;js;trace;work;plug;vt;ar;kind;sdf;ndr;sdr;pcp;usd;usdGeom;usdVol;usdMedia;usdShade;usdLux;usdRender;usdHydra;usdRi;usdSkel;usdUI;usdUtils;usdPhysics;garch;hf;hio;cameraUtil;pxOsd;glf;hgi;hgiGL;hgiInterop;hd;hdSt;hdx;usdImaging;usdImagingGL;usdRiImaging;usdSkelImaging;usdVolImaging;usdAppUtils;usdviewq") +set(libs "arch;tf;gf;js;trace;work;plug;vt;ar;kind;sdf;sdr;pcp;usd;usdGeom;usdVol;usdMedia;usdShade;usdLux;usdRender;usdHydra;usdRi;usdSkel;usdUI;usdUtils;usdPhysics;garch;hf;hio;cameraUtil;pxOsd;glf;hgi;hgiGL;hgiInterop;hd;hdsi;hdSt;hdx;hdMtlx;usdImaging;usdImagingGL;usdSkelImaging;usdVolImaging;usdAppUtils;usdMtlx") set(PXR_LIBRARIES "") set(PXR_INCLUDE_DIRS "$ENV{PXR_INCLUDE_PREFIX}") string(REPLACE " " ";" libs "${libs}") diff --git a/building/macOS/pxr-houdini/pxrTargets-release.cmake b/building/macOS/pxr-houdini/pxrTargets-release.cmake index ae3a89d..dd6bd7f 100644 --- a/building/macOS/pxr-houdini/pxrTargets-release.cmake +++ b/building/macOS/pxr-houdini/pxrTargets-release.cmake @@ -118,16 +118,6 @@ set_target_properties(sdf PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS sdf ) list(APPEND _IMPORT_CHECK_FILES_FOR_sdf "${_LIB_PREFIX}/libpxr_sdf.dylib" ) -# Import target "ndr" for configuration "Release" -set_property(TARGET ndr APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(ndr PROPERTIES - IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_ndr.dylib" - IMPORTED_SONAME_RELEASE "libpxr_ndr.dylib" - ) - -list(APPEND _IMPORT_CHECK_TARGETS ndr ) -list(APPEND _IMPORT_CHECK_FILES_FOR_ndr "${_LIB_PREFIX}/libpxr_ndr.dylib" ) - # Import target "sdr" for configuration "Release" set_property(TARGET sdr APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(sdr PROPERTIES @@ -378,6 +368,23 @@ set_target_properties(hd PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS hd ) list(APPEND _IMPORT_CHECK_FILES_FOR_hd "${_LIB_PREFIX}/libpxr_hd.dylib" ) +# Import target "hdSt" for configuration "Release" +set_property(TARGET hdsi APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(hdsi PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_hdsi.dylib" + IMPORTED_SONAME_RELEASE "libpxr_hdsi.dylib" + ) +list(APPEND _IMPORT_CHECK_TARGETS hdsi ) +list(APPEND _IMPORT_CHECK_FILES_FOR_hdsi "${_LIB_PREFIX}/libpxr_hdsi.dylib" ) + +set_property(TARGET hdMtlx APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(hdMtlx PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_hdMtlx.dylib" + IMPORTED_SONAME_RELEASE "libpxr_hdMtlx.dylib" + ) +list(APPEND _IMPORT_CHECK_TARGETS hdMtlx ) +list(APPEND _IMPORT_CHECK_FILES_FOR_hdMtlx "${_LIB_PREFIX}/libpxr_hdMtlx.dylib" ) + # Import target "hdSt" for configuration "Release" set_property(TARGET hdSt APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(hdSt PROPERTIES @@ -398,6 +405,15 @@ set_target_properties(hdx PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS hdx ) list(APPEND _IMPORT_CHECK_FILES_FOR_hdx "${_LIB_PREFIX}/libpxr_hdx.dylib" ) +# Import target "usdImaging" for configuration "Release" +set_property(TARGET usdMtlx APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(usdMtlx PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdMtlx.dylib" + IMPORTED_SONAME_RELEASE "libpxr_usdMtlx.dylib" + ) +list(APPEND _IMPORT_CHECK_TARGETS usdMtlx ) +list(APPEND _IMPORT_CHECK_FILES_FOR_usdMtlx "${_LIB_PREFIX}/libpxr_usdMtlx.dylib" ) + # Import target "usdImaging" for configuration "Release" set_property(TARGET usdImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(usdImaging PROPERTIES @@ -418,16 +434,6 @@ set_target_properties(usdImagingGL PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS usdImagingGL ) list(APPEND _IMPORT_CHECK_FILES_FOR_usdImagingGL "${_LIB_PREFIX}/libpxr_usdImagingGL.dylib" ) -# Import target "usdRiImaging" for configuration "Release" -set_property(TARGET usdRiImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(usdRiImaging PROPERTIES - IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdRiImaging.dylib" - IMPORTED_SONAME_RELEASE "libpxr_usdRiImaging.dylib" - ) - -list(APPEND _IMPORT_CHECK_TARGETS usdRiImaging ) -list(APPEND _IMPORT_CHECK_FILES_FOR_usdRiImaging "${_LIB_PREFIX}/libpxr_usdRiImaging.dylib" ) - # Import target "usdSkelImaging" for configuration "Release" set_property(TARGET usdSkelImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(usdSkelImaging PROPERTIES @@ -458,15 +464,5 @@ set_target_properties(usdAppUtils PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS usdAppUtils ) list(APPEND _IMPORT_CHECK_FILES_FOR_usdAppUtils "${_LIB_PREFIX}/libpxr_usdAppUtils.dylib" ) -# Import target "usdviewq" for configuration "Release" -set_property(TARGET usdviewq APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(usdviewq PROPERTIES - IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdviewq.dylib" - IMPORTED_SONAME_RELEASE "libpxr_usdviewq.dylib" - ) - -list(APPEND _IMPORT_CHECK_TARGETS usdviewq ) -list(APPEND _IMPORT_CHECK_FILES_FOR_usdviewq "${_LIB_PREFIX}/libpxr_usdviewq.dylib" ) - # Commands beyond this point should not need to know the version. set(CMAKE_IMPORT_FILE_VERSION) diff --git a/building/macOS/pxr-houdini/pxrTargets.cmake b/building/macOS/pxr-houdini/pxrTargets.cmake index f3cd6fe..3290d69 100644 --- a/building/macOS/pxr-houdini/pxrTargets.cmake +++ b/building/macOS/pxr-houdini/pxrTargets.cmake @@ -17,14 +17,14 @@ cmake_policy(VERSION 2.6...3.21) # Commands may need to know the format version. set(CMAKE_IMPORT_FILE_VERSION 1) -SET(HPYTHONLIB $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib) -SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.9/include/python3.9) +SET(HPYTHONLIB $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.13/lib/libpython3.13.dylib) +SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.13/include/python3.13) # Protect against multiple inclusion, which would fail when already imported targets are added once more. set(_targetsDefined) set(_targetsNotDefined) set(_expectedTargets) -foreach(_expectedTarget arch tf gf js trace work plug vt ar kind sdf ndr sdr pcp usd usdGeom usdVol usdMedia usdShade usdLux usdRender usdHydra usdRi usdSkel usdUI usdUtils usdPhysics garch hf hio cameraUtil pxOsd glf hgi hgiGL hgiInterop hd hdSt hdx usdImaging usdImagingGL usdRiImaging usdSkelImaging usdVolImaging usdAppUtils usdviewq) +foreach(_expectedTarget arch tf gf js trace work plug vt ar kind sdf sdr pcp usd usdGeom usdVol usdMedia usdShade usdLux usdRender usdHydra usdRi usdSkel usdUI usdUtils usdPhysics garch hf hio cameraUtil pxOsd glf hgi hgiGL hgiInterop hd hdsi hdSt hdx hdMtlx usdImaging usdImagingGL usdSkelImaging usdVolImaging usdAppUtils usdMtlx) list(APPEND _expectedTargets ${_expectedTarget}) if(NOT TARGET ${_expectedTarget}) list(APPEND _targetsNotDefined ${_expectedTarget}) @@ -161,23 +161,13 @@ set_target_properties(sdf PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) -# Create imported target ndr -add_library(ndr SHARED IMPORTED) - -set_target_properties(ndr PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" - INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;plug;vt;work;ar;sdf;${_BOOST_PYTHON_LIB}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" -) - # Create imported target sdr add_library(sdr SHARED IMPORTED) set_target_properties(sdr PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;vt;ar;ndr;sdf;${_BOOST_PYTHON_LIB}" + INTERFACE_LINK_LIBRARIES "tf;vt;ar;sdf;${_BOOST_PYTHON_LIB}" INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) @@ -235,7 +225,7 @@ add_library(usdShade SHARED IMPORTED) set_target_properties(usdShade PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;vt;sdf;ndr;sdr;usd;usdGeom" + INTERFACE_LINK_LIBRARIES "tf;vt;sdf;sdr;usd;usdGeom" ) # Create imported target usdLux @@ -244,7 +234,7 @@ add_library(usdLux SHARED IMPORTED) set_target_properties(usdLux PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;vt;ndr;sdf;usd;usdGeom;usdShade" + INTERFACE_LINK_LIBRARIES "tf;vt;sdf;usd;usdGeom;usdShade" ) # Create imported target usdRender @@ -409,6 +399,26 @@ set_target_properties(hd PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) +# Create imported target hdSt +add_library(hdsi SHARED IMPORTED) + +set_target_properties(hdsi PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" + INTERFACE_LINK_LIBRARIES "hd;tf;plug;vt;sdf;usd;usdGeom;usdShade;usdImaging" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" +) + +# Create imported target hdMtlx +add_library(hdMtlx SHARED IMPORTED) + +set_target_properties(hdMtlx PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" + INTERFACE_LINK_LIBRARIES "hd;hdsi;sdr;usd;usdShade;usdMtlx" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" +) + # Create imported target hdSt add_library(hdSt SHARED IMPORTED) @@ -428,6 +438,16 @@ set_target_properties(hdx PROPERTIES INTERFACE_LINK_LIBRARIES "plug;tf;vt;gf;work;garch;glf;pxOsd;hd;hdSt;hgi;hgiInterop;cameraUtil;sdf" ) +# Create imported target usdImaging +add_library(usdMtlx SHARED IMPORTED) + +set_target_properties(usdMtlx PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" + INTERFACE_LINK_LIBRARIES "usd;usdShade;usdGeom;${_BOOST_PYTHON_LIB}" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" +) + # Create imported target usdImaging add_library(usdImaging SHARED IMPORTED) @@ -448,16 +468,6 @@ set_target_properties(usdImagingGL PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HPYTHONINC};${_DEPS_PREFIX}/include" ) -# Create imported target usdRiImaging -add_library(usdRiImaging SHARED IMPORTED) - -set_target_properties(usdRiImaging PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" - INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "gf;tf;plug;trace;vt;work;hd;pxOsd;sdf;usd;usdGeom;usdLux;usdShade;usdImaging;usdVol;ar;${_DEPS_PREFIX}/lib/libtbb${CMAKE_SHARED_LIBRARY_SUFFIX}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" -) - # Create imported target usdSkelImaging add_library(usdSkelImaging SHARED IMPORTED) @@ -486,16 +496,6 @@ set_target_properties(usdAppUtils PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) -# Create imported target usdviewq -add_library(usdviewq SHARED IMPORTED) - -set_target_properties(usdviewq PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" - INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;usd;usdGeom;${_BOOST_PYTHON_LIB}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" -) - if(CMAKE_VERSION VERSION_LESS 2.8.12) message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") endif() diff --git a/building/macOS/user-config.jam b/building/macOS/user-config.jam index dd729f7..bf3dd2a 100644 --- a/building/macOS/user-config.jam +++ b/building/macOS/user-config.jam @@ -1,6 +1,6 @@ -using python : 3.9 - : "/Library/Developer/CommandLineTools/usr/bin/python3" - : "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/Headers" - : "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib" +using python : 3.13 + : "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/Resources/Python.app/Contents/MacOS/Python" + : "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/include/python3.13" + : "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/lib" ; using clang : : : -"arch arm64" "-arch arm64" ; diff --git a/moonray/hydra/CMakeLists.txt b/moonray/hydra/CMakeLists.txt index d088089..7efbd02 100644 --- a/moonray/hydra/CMakeLists.txt +++ b/moonray/hydra/CMakeLists.txt @@ -2,4 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 add_subdirectory(hdMoonray) -add_subdirectory(moonray_sdr_plugins) +option(BUILD_MOONRAY_SDR_PLUGINS "Build the legacy MoonRay SDR plugins" ON) +if(BUILD_MOONRAY_SDR_PLUGINS) + add_subdirectory(moonray_sdr_plugins) +endif() From 9f64bc330d860c8d7f60c0b79994d35280c935ec Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 19:30:37 +0200 Subject: [PATCH 03/27] Pin H22 validation submodule revisions Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- arras/arras4_core | 2 +- moonray/hydra/hdMoonray | 2 +- moonray/materialx_shaders | 2 +- moonray/moonray | 2 +- moonray/moonray_dcc_plugins | 2 +- moonray/scene_rdl2 | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arras/arras4_core b/arras/arras4_core index 17c49f1..6e6d6ce 160000 --- a/arras/arras4_core +++ b/arras/arras4_core @@ -1 +1 @@ -Subproject commit 17c49f115dc9c849003cfa15aa05869c97c5d801 +Subproject commit 6e6d6ce88139f5250cf07c1ada48b84afde87384 diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 986121d..99390f1 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 986121dbb8817237c02a254d0c4470b5eb820f9e +Subproject commit 99390f19e42926d43836b6f2cd77f72e40caabaa diff --git a/moonray/materialx_shaders b/moonray/materialx_shaders index 9b83c00..eec5e28 160000 --- a/moonray/materialx_shaders +++ b/moonray/materialx_shaders @@ -1 +1 @@ -Subproject commit 9b83c0051418e09869c14e2a86abe788a7ab7dca +Subproject commit eec5e28561b514e1a51942642cd9c3640ad88e94 diff --git a/moonray/moonray b/moonray/moonray index eef67ae..78c4a95 160000 --- a/moonray/moonray +++ b/moonray/moonray @@ -1 +1 @@ -Subproject commit eef67ae992b5037943a7716cca96ed443c36dcec +Subproject commit 78c4a95d9ddae802f117d502be5af6fc24b27da7 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 5e19b0d..1c49d8a 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 5e19b0d8ef9afa37e7db437bde8e12960ff493b3 +Subproject commit 1c49d8abfb973aa0e0f440d33841af4e98b72068 diff --git a/moonray/scene_rdl2 b/moonray/scene_rdl2 index 1229d3e..afe804d 160000 --- a/moonray/scene_rdl2 +++ b/moonray/scene_rdl2 @@ -1 +1 @@ -Subproject commit 1229d3eaa1ee41dc1ddefbe781c623edceafbac8 +Subproject commit afe804d3c1728f1f7b7978e23a4235e9a39ceddc From d1fb025ae0d51aa3a8a702ffdf7f0e9a01062bc4 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 19:33:34 +0200 Subject: [PATCH 04/27] Restore usdviewq target for Houdini 22 Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- building/macOS/pxr-houdini/pxrTargets-release.cmake | 10 ++++++++++ building/macOS/pxr-houdini/pxrTargets.cmake | 12 +++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/building/macOS/pxr-houdini/pxrTargets-release.cmake b/building/macOS/pxr-houdini/pxrTargets-release.cmake index dd6bd7f..e56ea95 100644 --- a/building/macOS/pxr-houdini/pxrTargets-release.cmake +++ b/building/macOS/pxr-houdini/pxrTargets-release.cmake @@ -464,5 +464,15 @@ set_target_properties(usdAppUtils PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS usdAppUtils ) list(APPEND _IMPORT_CHECK_FILES_FOR_usdAppUtils "${_LIB_PREFIX}/libpxr_usdAppUtils.dylib" ) +# Import target "usdviewq" for configuration "Release" +set_property(TARGET usdviewq APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(usdviewq PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdviewq.dylib" + IMPORTED_SONAME_RELEASE "libpxr_usdviewq.dylib" + ) + +list(APPEND _IMPORT_CHECK_TARGETS usdviewq ) +list(APPEND _IMPORT_CHECK_FILES_FOR_usdviewq "${_LIB_PREFIX}/libpxr_usdviewq.dylib" ) + # Commands beyond this point should not need to know the version. set(CMAKE_IMPORT_FILE_VERSION) diff --git a/building/macOS/pxr-houdini/pxrTargets.cmake b/building/macOS/pxr-houdini/pxrTargets.cmake index 3290d69..adfbb7a 100644 --- a/building/macOS/pxr-houdini/pxrTargets.cmake +++ b/building/macOS/pxr-houdini/pxrTargets.cmake @@ -24,7 +24,7 @@ SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3. set(_targetsDefined) set(_targetsNotDefined) set(_expectedTargets) -foreach(_expectedTarget arch tf gf js trace work plug vt ar kind sdf sdr pcp usd usdGeom usdVol usdMedia usdShade usdLux usdRender usdHydra usdRi usdSkel usdUI usdUtils usdPhysics garch hf hio cameraUtil pxOsd glf hgi hgiGL hgiInterop hd hdsi hdSt hdx hdMtlx usdImaging usdImagingGL usdSkelImaging usdVolImaging usdAppUtils usdMtlx) +foreach(_expectedTarget arch tf gf js trace work plug vt ar kind sdf sdr pcp usd usdGeom usdVol usdMedia usdShade usdLux usdRender usdHydra usdRi usdSkel usdUI usdUtils usdPhysics garch hf hio cameraUtil pxOsd glf hgi hgiGL hgiInterop hd hdsi hdSt hdx hdMtlx usdImaging usdImagingGL usdSkelImaging usdVolImaging usdAppUtils usdMtlx usdviewq) list(APPEND _expectedTargets ${_expectedTarget}) if(NOT TARGET ${_expectedTarget}) list(APPEND _targetsNotDefined ${_expectedTarget}) @@ -496,6 +496,16 @@ set_target_properties(usdAppUtils PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) +# Create imported target usdviewq +add_library(usdviewq SHARED IMPORTED) + +set_target_properties(usdviewq PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX};${HPYTHONINC}" + INTERFACE_LINK_LIBRARIES "tf;usd;usdGeom;hd;${_BOOST_PYTHON_LIB};${HPYTHONLIB}" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HPYTHONINC};${_DEPS_PREFIX}/include" +) + if(CMAKE_VERSION VERSION_LESS 2.8.12) message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") endif() From 26c0bed73e9f530e587130018e831aa271eba090 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 19:55:15 +0200 Subject: [PATCH 05/27] Use HdMoonray 10 for Houdini 22 validation Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeMacOSPresets.json | 1 - moonray/hydra/hdMoonray | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index a4d98a5..4cd6121 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -41,7 +41,6 @@ "ARRAS4_CORE_BUILD_TESTING": "OFF", "MOONRAY_USE_METAL": "OFF", "BUILD_MOONRAY_SDR_PLUGINS": "OFF", - "BUILD_HD_COMMANDS": "OFF", "Vulkan_INCLUDE_DIR": "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", "Vulkan_LIBRARY": "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libvulkan.dylib", "CMAKE_ISPC_COMPILER": "$env{ISPC}" diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 99390f1..457a8cd 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 99390f19e42926d43836b6f2cd77f72e40caabaa +Subproject commit 457a8cdf9b90051573cb0fd12c0bf9f55b13a471 From f49fd8c0bf5ad17093e6c64c775991463005ce48 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 21:11:42 +0200 Subject: [PATCH 06/27] Complete Houdini 22 MaterialX compatibility Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/materialx_shaders | 2 +- moonray/moonray_dcc_plugins | 2 +- moonray/moonshine | 2 +- moonray/scene_rdl2 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/moonray/materialx_shaders b/moonray/materialx_shaders index eec5e28..6f7666d 160000 --- a/moonray/materialx_shaders +++ b/moonray/materialx_shaders @@ -1 +1 @@ -Subproject commit eec5e28561b514e1a51942642cd9c3640ad88e94 +Subproject commit 6f7666d746ad37c0dfccd7abc55d77fcc8ec7b88 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 1c49d8a..4682bd1 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 1c49d8abfb973aa0e0f440d33841af4e98b72068 +Subproject commit 4682bd1b2f4071b230a951e4ddd568e552bc6f15 diff --git a/moonray/moonshine b/moonray/moonshine index a3c8667..c28fe13 160000 --- a/moonray/moonshine +++ b/moonray/moonshine @@ -1 +1 @@ -Subproject commit a3c8667298a23df7d6efed128cb475484de66c8e +Subproject commit c28fe1315eb87db58ba6af912b29a0d45913d286 diff --git a/moonray/scene_rdl2 b/moonray/scene_rdl2 index afe804d..7e5764f 160000 --- a/moonray/scene_rdl2 +++ b/moonray/scene_rdl2 @@ -1 +1 @@ -Subproject commit afe804d3c1728f1f7b7978e23a4235e9a39ceddc +Subproject commit 7e5764f491b8765dae3e9b936ad7b3a5135c1865 From 92d128d1e20799e5f72a75c76758f37345b851f1 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 21:15:19 +0200 Subject: [PATCH 07/27] Align macOS Python runtime paths for Houdini 22 Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- scripts/macOS/setupHoudini.sh | 4 ++-- scripts/setup.sh | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index 6bfc563..9461a5a 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -1,6 +1,6 @@ omr_install_dir=/Applications/MoonRay/installs/openmoonray -# save/restore PYTHONPATH, since Houdini seems to reject python3.9 +# save/restore PYTHONPATH, since Houdini supplies its own Python runtime OLDPP=${PYTHONPATH} source ${omr_install_dir}/scripts/setup.sh export PYTHONPATH=${OLDPP} @@ -17,4 +17,4 @@ export PXR_PLUGINPATH_NAME=${omr_install_dir}/plugin/pxr # export HOUDINI_PACKAGE_VERBOSE=1 export HOUDINI_OTLSCAN_PATH="${omr_install_dir}/plugin/houdini/otls:&" -export HOUDINI_PATH="${omr_install_dir}/houdini/:${omr_install_dir}/plugin/houdini:&" \ No newline at end of file +export HOUDINI_PATH="${omr_install_dir}/houdini/:${omr_install_dir}/plugin/houdini:&" diff --git a/scripts/setup.sh b/scripts/setup.sh index c56faf6..0544e7d 100644 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -25,8 +25,9 @@ echo "Setting up release in ${omr_root}" # NB required for Arras to function (it needs to find execComp) export PATH=${omr_root}/bin:${PATH} -# need python modules for the USD interface and for the RATS tests -export PYTHONPATH=${install_root}/lib/python:/usr/local/lib/python:${install_root}/lib64/python3.9/site-packages/:${PYTHONPATH} +# Need Python modules for the USD interface and the RATS tests. The macOS +# Houdini build installs its bindings for Python 3.13. +export PYTHONPATH=${omr_root}/python/lib/python3.13:${install_root}/lib/python3.13/site-packages:${install_root}/lib/python:/usr/local/lib/python:${PYTHONPATH} # tell moonray where to find dsos From 35ef919b6f36fd772d704239676aa375b617eacf Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 21:15:31 +0200 Subject: [PATCH 08/27] Use H22-compatible DCC plugin install path Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 4682bd1..1081be1 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 4682bd1b2f4071b230a951e4ddd568e552bc6f15 +Subproject commit 1081be1d10e87fd2134fffba9df5156404a9d2b5 From 962d63fb83098e7695fa446aa26313ca2dbbfe90 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 21:31:36 +0200 Subject: [PATCH 09/27] Apply H22 int64 conversion fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 457a8cd..9c367ab 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 457a8cdf9b90051573cb0fd12c0bf9f55b13a471 +Subproject commit 9c367ab75af8a378f4212045104bbfbff23616d2 From daa7bc106211bef4723e25bb8a4de81e64df8220 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 21:38:24 +0200 Subject: [PATCH 10/27] Pin Arras macOS UDP logging fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- arras/arras4_core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arras/arras4_core b/arras/arras4_core index 6e6d6ce..8f2f663 160000 --- a/arras/arras4_core +++ b/arras/arras4_core @@ -1 +1 @@ -Subproject commit 6e6d6ce88139f5250cf07c1ada48b84afde87384 +Subproject commit 8f2f66397616d8f8a55b539405ccaf6cd20df7cb From 1f2720108f15a226772ede32c89807f2e4f78e21 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 22:24:46 +0200 Subject: [PATCH 11/27] Pin Arras framebuffer refresh fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 9c367ab..c32b412 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 9c367ab75af8a378f4212045104bbfbff23616d2 +Subproject commit c32b4120f90ce23e526041a7e4e142db4723d04d From d8e2f20d30c1f9e1d12cc23ace8e559af077c8fa Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 22:41:34 +0200 Subject: [PATCH 12/27] Pin H22 full-scene IPR update fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index c32b412..e1ad892 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit c32b4120f90ce23e526041a7e4e142db4723d04d +Subproject commit e1ad892817cc881e0c9038d864b27d3865820f10 From e20cfa70fa7686730db593be3e6dcaf5979ec768 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 22:46:51 +0200 Subject: [PATCH 13/27] Pin MCRT reload flag fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index e1ad892..3ea73db 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit e1ad892817cc881e0c9038d864b27d3865820f10 +Subproject commit 3ea73dbffa95810c5d459c166c971836ceda9d35 From 3cae76c47a8e0009020d66d21e3c7236634eb93f Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:15:26 +0200 Subject: [PATCH 14/27] Pin Arras update lifecycle fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 3ea73db..993ea59 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 3ea73dbffa95810c5d459c166c971836ceda9d35 +Subproject commit 993ea59174782541fa0154945268a88ba7906714 From e80122bc45523b148177b6682ad2ddd980ade70b Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:32:28 +0200 Subject: [PATCH 15/27] Restore clean Hdm10 update behavior Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 993ea59..d2c993d 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 993ea59174782541fa0154945268a88ba7906714 +Subproject commit d2c993daf60081061614dbee1b445d9416a5ea77 From c393320b3484dd35d4f14318d82f34875b32bd66 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:35:54 +0200 Subject: [PATCH 16/27] Pin Arras update diagnostics Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index d2c993d..6914de1 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit d2c993daf60081061614dbee1b445d9416a5ea77 +Subproject commit 6914de1351058b3ce6b97529b481a693c7bbb5d9 From 445d726cbbea3f55735d4a2aa37a458241b63c61 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:48:58 +0200 Subject: [PATCH 17/27] Pin MCRT update queue diagnostics Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_arras/mcrt_computation | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_arras/mcrt_computation b/moonray/moonray_arras/mcrt_computation index ce2bd3d..74e393f 160000 --- a/moonray/moonray_arras/mcrt_computation +++ b/moonray/moonray_arras/mcrt_computation @@ -1 +1 @@ -Subproject commit ce2bd3d58d7fa0b09edc672333fa820a97020deb +Subproject commit 74e393f0fa7db24df087f7b7ff50fdb861ddd5ea From 6f00ac9eb3e37d4245d637723f9d95a0d379a15a Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:52:40 +0200 Subject: [PATCH 18/27] Pin serialized Arras client messaging Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 6914de1..dc498e9 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 6914de1351058b3ce6b97529b481a693c7bbb5d9 +Subproject commit dc498e9c2d95cedf9dba2c32d40c2bc6103abddb From 42747e2503f5d6b544b5663cf615b6a265096349 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:56:13 +0200 Subject: [PATCH 19/27] Fix deferred MCRT IPR update starvation Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_arras/mcrt_computation | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index dc498e9..c3fb536 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit dc498e9c2d95cedf9dba2c32d40c2bc6103abddb +Subproject commit c3fb536e266f4a3e3c16ce2c7f28b5557255ab08 diff --git a/moonray/moonray_arras/mcrt_computation b/moonray/moonray_arras/mcrt_computation index 74e393f..6c19ac5 160000 --- a/moonray/moonray_arras/mcrt_computation +++ b/moonray/moonray_arras/mcrt_computation @@ -1 +1 @@ -Subproject commit 74e393f0fa7db24df087f7b7ff50fdb861ddd5ea +Subproject commit 6c19ac5645fb525fd44c9146da4ba8fa4de48259 From f3135f68eb9b435dd8e2e7b28b260abdadb0946e Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 00:00:35 +0200 Subject: [PATCH 20/27] Restore Apple Silicon half and AOV fixes Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray | 2 +- moonray/scene_rdl2 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index c3fb536..4f314ab 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit c3fb536e266f4a3e3c16ce2c7f28b5557255ab08 +Subproject commit 4f314ab6a73be7b6cfba1a0dc0c9a718b10754ad diff --git a/moonray/moonray b/moonray/moonray index 78c4a95..a536214 160000 --- a/moonray/moonray +++ b/moonray/moonray @@ -1 +1 @@ -Subproject commit 78c4a95d9ddae802f117d502be5af6fc24b27da7 +Subproject commit a53621400a6852fd7f59550e74fc0f9abf70b45f diff --git a/moonray/scene_rdl2 b/moonray/scene_rdl2 index 7e5764f..346494e 160000 --- a/moonray/scene_rdl2 +++ b/moonray/scene_rdl2 @@ -1 +1 @@ -Subproject commit 7e5764f491b8765dae3e9b936ad7b3a5135c1865 +Subproject commit 346494edb2c99f027d555bde4bf291b0405e6c19 From 85dbf3a9bca5b4c656e59211a78169ac9f25ebd1 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 11:06:17 +0200 Subject: [PATCH 21/27] Fix Houdini 22 Solaris IPR lifecycle Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- arras/arras4_core | 2 +- moonray/hydra/hdMoonray | 2 +- moonray/moonray_arras/mcrt_computation | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arras/arras4_core b/arras/arras4_core index 8f2f663..91da600 160000 --- a/arras/arras4_core +++ b/arras/arras4_core @@ -1 +1 @@ -Subproject commit 8f2f66397616d8f8a55b539405ccaf6cd20df7cb +Subproject commit 91da6002d66f4f858b1e42beb874cad989c9aaa4 diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 4f314ab..bb64fdb 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 4f314ab6a73be7b6cfba1a0dc0c9a718b10754ad +Subproject commit bb64fdbc77aa11b9395c6910ae2e614e7ab3dae2 diff --git a/moonray/moonray_arras/mcrt_computation b/moonray/moonray_arras/mcrt_computation index 6c19ac5..9e554c2 160000 --- a/moonray/moonray_arras/mcrt_computation +++ b/moonray/moonray_arras/mcrt_computation @@ -1 +1 @@ -Subproject commit 6c19ac5645fb525fd44c9146da4ba8fa4de48259 +Subproject commit 9e554c266a25e5b99c842ee7ba7280ccecb8fd45 From da274bca2f737590840a210685e9b471c75b9069 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 11:21:42 +0200 Subject: [PATCH 22/27] Document Houdini 22 macOS alignment Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- building/macOS/Houdini22_build_notes.md | 227 ++++++++++++++++++++++++ building/macOS/macOS_build.md | 4 +- moonray/hydra/hdMoonray | 2 +- moonray/moonray_arras/mcrt_computation | 2 +- 4 files changed, 232 insertions(+), 3 deletions(-) create mode 100644 building/macOS/Houdini22_build_notes.md diff --git a/building/macOS/Houdini22_build_notes.md b/building/macOS/Houdini22_build_notes.md new file mode 100644 index 0000000..7ce507a --- /dev/null +++ b/building/macOS/Houdini22_build_notes.md @@ -0,0 +1,227 @@ +# Houdini 22 macOS alignment notes + +This document records the changes and validation performed on the +`test/houdini22-clean-build` branch. The work started from +`OpenMoonRay/openmoonray` `main` at `b9b0ac2` and targets Houdini 22.0.408 on +Apple Silicon. + +This is a validation branch, not a statement of upstream support for every +Houdini 22 production workflow. + +## Validated platform + +- Houdini 22.0.408 +- Houdini USD 26.05 +- Houdini Python 3.13.10 +- AppleClang arm64 with C++20 +- macOS Tahoe on Apple Silicon +- Qt applications disabled +- MaterialX shader DSOs and Houdini nodes enabled +- Houdini's USD, Python, Vulkan headers, and Vulkan library used by the build +- MoonRay Embree generation retained at Embree 4 +- Metal accelerator compatibility retained, while `MOONRAY_USE_METAL` remains + disabled in the validation preset + +## Dependency alignment + +The macOS dependency build was refreshed without building a second USD copy. +The Houdini build uses `NO_USD=1` and links against Houdini's USD 26.05. + +| Dependency | Version | +| --- | --- | +| Boost | 1.88.0 | +| OpenSubdiv | 3.7.0 | +| Imath | 3.2.2 | +| OpenEXR | 3.4.3 | +| oneTBB | 2022.1.0 | +| OpenVDB | 13.0.0 | +| OpenColorIO | 2.5.0 | +| OpenImageIO | 2.5.18.0 | +| MaterialX | 1.39.5 | +| OpenImageDenoise | 2.3.3 | +| Embree | 4.2.0 | + +The dependency work also: + +- builds standalone Imath before OpenEXR 3; +- uses oneTBB's CMake build and install flow; +- removes OIDN's bundled TBB libraries so the dependency tree uses one TBB; +- disables Boost.NumPy, which is not required and did not build against the + Houdini Python configuration; +- uses Houdini Python 3.13 for Boost.Python and OpenImageIO; +- installs MaterialX independently instead of relying on Houdini's private copy; +- disables Qt and GUI applications for this build; +- isolates dependency discovery from Homebrew to avoid accidental ABI mixing; +- supplies CMake 4 policy compatibility to older dependency projects. + +## Houdini USD 26.05 integration + +The local PXR imported-target shim was regenerated for Houdini 22. The target +set follows the libraries shipped by Houdini 22.0.408, including `hdsi`, +`usdRi`, and `usdviewq`. Obsolete targets not shipped by this USD build, such as +`ndr` and `usdRiImaging`, are not synthesized. `usdRiPxrImaging` is also not +invented when Houdini does not ship that library. + +The shim uses Houdini's Python 3.13 framework and +`libhboost_python313-mt-a64.dylib`. A small Boost.Asio compatibility header is +provided for USD code that still includes the removed `io_service.hpp` path. + +The root preset now uses: + +- `CMAKE_CXX_STANDARD=20`; +- Houdini's Python executable and Python 3.13 module paths; +- Houdini's Vulkan include directory and library; +- Unix Makefiles for the Houdini configuration; +- `BUILD_MATERIALX_SHADERS=ON`; +- `BUILD_QT_APPS=OFF`; +- `BUILD_MOONRAY_SDR_PLUGINS=OFF` for the legacy SDR plugin path. + +## Submodule alignment and compatibility work + +The branch intentionally pins coordinated submodule revisions. The effective +changes are summarized below. + +### hdMoonray + +- starts from Rob's Hydra 2.0 `hdm_10` work; +- adapts renderer plugin entry points for USD 26; +- adds C++20 and Houdini 22 integer-value compatibility; +- retains the Apple Silicon half-float AOV allocation fix; +- keeps the internal `HdMoonray_Light` class name—this is a C++ implementation + name, not a Hydra prim token; +- recognizes Houdini 22's `houdini:viewport` setting as an interactive client; +- keeps an active Render Settings prim on the interactive Solaris render-pass + path instead of switching IPR to the one-shot disk-product path; +- invalidates completed offline product renders when their Render Settings or + scene changes. + +Houdini's generic Light LOP is expected to produce a Hydra `SphereLight` with +`moonray:class=PointLight`. Its default position is the origin; if the test +sphere is also at the origin, the point light is inside the sphere and the +outside initially appears black. + +### MoonRay, scene_rdl2, and Moonshine + +- replaces the Metal GPU accelerator map's legacy `tbb::atomic` use with + `std::atomic`; +- adds the remaining USD 26 and oneTBB source compatibility needed by the + H22 build; +- fixes ARM half conversion in MoonRay render-output writing and scene_rdl2 + tile packing; +- adjusts macOS compiler, Python framework loading, and signing compatibility; +- fixes a C++20 attribute lookup in Moonshine's DwaBase material path. + +### MaterialX and Houdini DCC plugins + +- builds MaterialX shaders against the standalone MaterialX 1.39.5 package; +- updates MaterialX source compatibility for Houdini 22/C++20; +- uses Nick's updated DCC plugin work as the plugin base; +- supports MaterialX HDA generation with USD 26; +- installs the Houdini startup hook in the Python 3.13 location; +- installs renderer `.ds` files and HDAs beneath the OpenMoonRay Houdini plugin + directory. + +### Arras and IPR lifecycle + +The apparent scene-update starvation had two independent causes. + +First, Athena UDP telemetry was called inline from Arras message delivery. A +blocking `sendto()` to an unavailable local syslog target could stop the client +before scene updates were delivered. The socket is now non-blocking and logging +is best-effort. + +Second, hdm10 treated every active Render Settings prim as an offline product +render. In Solaris this latched `mProductRenderComplete` after one execution and +prevented later IPR changes. Houdini 22 viewport detection and render-pass +routing now keep that path interactive. + +Temporary full-scene reload, renderer pausing, client-message serialization, +and deferred-MCRT queue workarounds were tested and reverted after transport +and render-pass tracing identified the actual causes. Investigation-only frame +and queue logging was also removed from the final state. + +## Clean build procedure + +The paths below match the checked-in validation preset. Change the Houdini +installation path in `CMakeMacOSPresets.json`, `building/macOS/CMakeLists.txt`, +and `building/macOS/user-config.jam` when testing another Houdini build. + +From a clean checkout with recursively initialized submodules: + +```bash +mkdir -p /Applications/MoonRay/{build,build-deps,installs} + +cmake \ + -S /Applications/MoonRay/source/openmoonray/building/macOS \ + -B /Applications/MoonRay/build-deps \ + -DNO_USD=1 \ + -DNO_QT=1 +cmake --build /Applications/MoonRay/build-deps --parallel + +cmake \ + --preset macos-houdini-release \ + -S /Applications/MoonRay/source/openmoonray +cmake --build --preset macos-houdini-release --parallel +``` + +The install prefix is `/Applications/MoonRay/installs/openmoonray`. + +## Houdini plugin and HDA refresh + +The normal root install copies the plugin. To regenerate HDAs after changing +RDL2 proxy definitions: + +```bash +cd /Applications/Houdini/Houdini22.0.408/Frameworks/Houdini.framework/Versions/Current/Resources +source ./houdini_setup +source /Applications/MoonRay/installs/openmoonray/scripts/macOS/setupHoudini.sh + +cd /Applications/MoonRay/source/openmoonray/moonray/moonray_dcc_plugins +hython scripts/update_hdas.py --output-dir ./houdini +cmake --install /Applications/MoonRay/build +``` + +This flow generated standard nodes such as `VdbVolume` and `DwaBaseMaterial` +and MaterialX `ND_*` nodes from the fresh proxy libraries. + +## Launch command + +Start Houdini from a terminal so its USD and Python environment is established +before the OpenMoonRay setup is applied: + +```bash +cd /Applications/Houdini/Houdini22.0.408/Frameworks/Houdini.framework/Versions/Current/Resources +source ./houdini_setup +source /Applications/MoonRay/installs/openmoonray/scripts/macOS/setupHoudini.sh +houdini +``` + +## Validation performed + +The final installed Release and Debug delegates were loaded in a fresh Houdini +22.0.408 process. Validation covered: + +- MoonRay renderer discovery in the Solaris viewport; +- a sphere rendered with the generic Houdini Light LOP resolved as + `SphereLight` plus `moonray:class=PointLight`; +- repeated PointLight intensity edits with distinct completed framebuffers; +- an active `/Render/rendersettings` prim; +- live `pixel_samples` changes with new Arras synchronization IDs and distinct + completed framebuffers; +- MaterialX shader DSO and `ND_*` node generation; +- ARM half-float framebuffer/AOV paths; +- successful compilation and installation of `hd_moonray`, + `hd_moonray_debug`, and `computation_progmcrt`. + +The install step may print duplicate `LC_RPATH` warnings when reinstalling over +an existing tree. They did not prevent the rebuilt binaries from being +installed or loaded during this validation. + +## Remaining scope + +- The preset is intentionally pinned to Houdini 22.0.408 paths. +- Qt applications and the MoonRay GUI were not part of this validation. +- Metal rendering is disabled in the preset; only the source compatibility fix + is included. +- The branch contains coordinated submodule revisions and should be reviewed as + an integration branch rather than as one isolated library update. diff --git a/building/macOS/macOS_build.md b/building/macOS/macOS_build.md index 3b93c94..8127efa 100644 --- a/building/macOS/macOS_build.md +++ b/building/macOS/macOS_build.md @@ -48,7 +48,9 @@ Note: If building for Houdini, you'll potentially need to make the following cha * Edit source/openmoonray/scripts/macOS/setupHoudini.sh to update HOUDINI_PATH * Edit source/openmoonray/building/macOS/pxr-houdini/pxrTargets.cmake to update HPYTHONLIB and HPYTHONINC if needed -Houdini 20 is officially supported. +Houdini 20 is officially supported. The experimental Houdini 22 alignment and +its exact dependency, submodule, build, and validation details are documented +in [Houdini22_build_notes.md](Houdini22_build_notes.md). --- ### Step 4. Build the dependencies diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index bb64fdb..fab5f4b 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit bb64fdbc77aa11b9395c6910ae2e614e7ab3dae2 +Subproject commit fab5f4bedf976ede84c9e04ab4e23cf6601ea2ec diff --git a/moonray/moonray_arras/mcrt_computation b/moonray/moonray_arras/mcrt_computation index 9e554c2..6ca1617 160000 --- a/moonray/moonray_arras/mcrt_computation +++ b/moonray/moonray_arras/mcrt_computation @@ -1 +1 @@ -Subproject commit 9e554c266a25e5b99c842ee7ba7280ccecb8fd45 +Subproject commit 6ca1617393a30342a01c5b2063b4f1af567df255 From 8bebbad701092b7f43f06db7765d6ae85a10e025 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 16:42:30 +0200 Subject: [PATCH 23/27] Align Houdini 22 submodules Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/hydra/moonray_sdr_plugins | 2 +- moonray/moonray_arras/mcrt_computation | 2 +- moonray/moonray_dcc_plugins | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index fab5f4b..78a7dbd 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit fab5f4bedf976ede84c9e04ab4e23cf6601ea2ec +Subproject commit 78a7dbd744717a9dba18aecd0c93259bb8845be8 diff --git a/moonray/hydra/moonray_sdr_plugins b/moonray/hydra/moonray_sdr_plugins index 36a097e..d063076 160000 --- a/moonray/hydra/moonray_sdr_plugins +++ b/moonray/hydra/moonray_sdr_plugins @@ -1 +1 @@ -Subproject commit 36a097e8d2796e138d0720a47b2ce79f89931af7 +Subproject commit d0630763057a7aab0ce2aa6a63884fc4c29d12bd diff --git a/moonray/moonray_arras/mcrt_computation b/moonray/moonray_arras/mcrt_computation index 6ca1617..ce2bd3d 160000 --- a/moonray/moonray_arras/mcrt_computation +++ b/moonray/moonray_arras/mcrt_computation @@ -1 +1 @@ -Subproject commit 6ca1617393a30342a01c5b2063b4f1af567df255 +Subproject commit ce2bd3d58d7fa0b09edc672333fa820a97020deb diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 1081be1..3a01503 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 1081be1d10e87fd2134fffba9df5156404a9d2b5 +Subproject commit 3a015038bf03a553c4f72368c3026732f395762c From d85566609fbf904734e5d3279c5de4e53559332e Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 16:47:08 +0200 Subject: [PATCH 24/27] Expose native MoonRay material builder Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 3a01503..a3f26e8 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 3a015038bf03a553c4f72368c3026732f395762c +Subproject commit a3f26e80cf7cdd73bca5f28b0f63dbb4d022b926 From ff44700490245dbdace3099b50f01ffb874784bd Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 16:54:26 +0200 Subject: [PATCH 25/27] Fix Houdini 22 material builder outputs Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index a3f26e8..a7e72df 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit a3f26e80cf7cdd73bca5f28b0f63dbb4d022b926 +Subproject commit a7e72df36ce17dff1768902791418319b8a66bd0 From 8a947def2a68258c779e0bb30fb5ba69a5f41176 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 30 Aug 2026 17:06:35 +0200 Subject: [PATCH 26/27] Document Houdini 22 integration tools Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- building/macOS/Houdini22_build_notes.md | 21 +++++++++++++++++++++ moonray/moonray_dcc_plugins | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/building/macOS/Houdini22_build_notes.md b/building/macOS/Houdini22_build_notes.md index 7ce507a..9930555 100644 --- a/building/macOS/Houdini22_build_notes.md +++ b/building/macOS/Houdini22_build_notes.md @@ -121,6 +121,27 @@ outside initially appears black. - installs renderer `.ds` files and HDAs beneath the OpenMoonRay Houdini plugin directory. +### Artist-facing Solaris tools + +The H22 DCC payload includes an editable **MoonRay Material Builder** shelf +tool. Create it inside a Solaris Material Library; it creates a native +`DwaBaseMaterial` and `NormalDisplacement` network and publishes `surface` and +`displacement` through Houdini 22's `suboutput` node. The builder is a plain +editable subnet, so additional MoonRay VOPs can be inserted without editing a +locked asset. + +The Light Filter Library includes the MoonRay filter HDAs supplied by the DCC +plugin (`IntensityLightFilter`, `DecayLightFilter`, `CookieLightFilter`, +`BarnDoorLightFilter`, `ColorRampLightFilter`, `CombineLightFilter`, +`RodLightFilter`, and `VdbLightFilter`). These are intended to be created +inside a Solaris Light Filter Library rather than a regular material network. + +Render Geometry already exposes MoonRay mesh tessellation controls in +`HdMoonrayRendererPlugin_Geometry.ds`. Set the control mode to **Set or Create** +before editing **Mesh Resolution** or **Adaptive Error**; their default +**Do Nothing** mode intentionally leaves existing scene-authored primvars +untouched. + ### Arras and IPR lifecycle The apparent scene-update starvation had two independent causes. diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index a7e72df..711d7da 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit a7e72df36ce17dff1768902791418319b8a66bd0 +Subproject commit 711d7dad5a84d3f9eb2e34657926315c58d97421 From 5b038bccec1705c284f2a9563f4c5273d0521ff4 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 31 Aug 2026 09:23:06 +0200 Subject: [PATCH 27/27] Expose native MoonRay spotlight controls Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 711d7da..3d542dc 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 711d7dad5a84d3f9eb2e34657926315c58d97421 +Subproject commit 3d542dc4ce996835bf694bf975644a7e4ebdb8e6