diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d138f06686..18e048c2c8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -87,6 +87,9 @@ jobs: # Remove CommandLineTools so there is no potential for conflict with # our selected Xcode version. sudo rm -rf /Library/Developer/CommandLineTools + sudo rm -rf /Applications/Python\ 3.10 + # Remove little-cms2 to prevent our LibRaw builds from finding it. + brew uninstall --ignore-dependencies little-cms2 shell: bash if: runner.os == 'macOS' diff --git a/BitstreamVera/config.py b/BitstreamVera/config.py index 0e1e4391dc..f4a7f141aa 100644 --- a/BitstreamVera/config.py +++ b/BitstreamVera/config.py @@ -2,7 +2,8 @@ "downloads" : [ - "https://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.gz" + "https://mirrors.dotsrc.org/gnome/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.gz" + ], "url" : "https://www.gnome.org/fonts", diff --git a/Changes.md b/Changes.md index 063b64bae1..81bff1e5a4 100644 --- a/Changes.md +++ b/Changes.md @@ -3,7 +3,14 @@ - CI : Added CI for linux-gcc11 and macos-arm64 (Xcode 14.3.1). - LLVM : Updated to version 15.0.7. -- Cycles : Disabled CUDA binary generation for Kepler and Maxwell architecture GPUs. +- Cycles : + - Updated to version 4.2.0. + - Disabled CUDA binary generation for Kepler and Maxwell architecture GPUs. + - Enabled support for denoising with OpenImageDenoise. +- Embree : Updated to version 4.3.2. +- OpenPGL : Updated to version 0.6.0. +- OpenImageDenoise : Added version 2.3.0. +- Zstd : Added version 1.5.0. 8.x.x (relative to 8.0.1) ----- diff --git a/Cycles/config.py b/Cycles/config.py index 989815f09a..a13fcb22af 100644 --- a/Cycles/config.py +++ b/Cycles/config.py @@ -2,7 +2,7 @@ "downloads" : [ - "https://github.com/blender/cycles/archive/refs/tags/v4.0.2.tar.gz", + "https://github.com/blender/cycles/archive/refs/tags/v4.2.0.tar.gz", ], @@ -10,17 +10,24 @@ "license" : "LICENSE", - "dependencies" : [ "Boost", "OpenJPEG", "OpenImageIO", "TBB", "Alembic", "Embree", "OpenColorIO", "OpenVDB", "OpenShadingLanguage", "OpenSubdiv", "OpenPGL", "LibWebP" ], + "dependencies" : [ "Boost", "OpenJPEG", "OpenImageIO", "TBB", "Alembic", "Embree", "OpenColorIO", "OpenVDB", "OpenShadingLanguage", "OpenSubdiv", "OpenPGL", "LibWebP", "Zstd", "OpenImageDenoise" ], "commands" : [ + # The Cycles archive includes empty folders under `./lib` + # named `{platform}_{architecture}`. The existence of a folder + # in lib matching the current platform and architecture causes + # the build to only look for dependencies within it, so we + # remove them to allow dependencies to be found in `{buildDir}`. + "rmdir ./lib/*", + "mkdir build", "cd build &&" " cmake" " -D CMAKE_INSTALL_PREFIX={buildDir}/cycles" " -D CMAKE_PREFIX_PATH={buildDir}" " -D CMAKE_BUILD_TYPE=Release" - " -D WITH_CYCLES_OPENIMAGEDENOISE=OFF" + " -D WITH_CYCLES_OPENIMAGEDENOISE=ON" " -D WITH_CYCLES_PATH_GUIDING=ON" " -D WITH_CYCLES_CUDA_BINARIES=ON" " -D WITH_CYCLES_DEVICE_CUDA=ON" diff --git a/Cycles/patches/cudaBinaries.patch b/Cycles/patches/cudaBinaries.patch index 07aa827d95..213fc75ca1 100644 --- a/Cycles/patches/cudaBinaries.patch +++ b/Cycles/patches/cudaBinaries.patch @@ -1,10 +1,11 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -120,7 +120,7 @@ - mark_as_advanced(WITH_CYCLES_DEVICE_CUDA) +@@ -122,7 +122,7 @@ - option(WITH_CYCLES_CUDA_BINARIES "Build Cycles NVIDIA CUDA binaries" OFF) -- set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_86 sm_89 compute_75 CACHE STRING "CUDA architectures to build binaries for") -+ set(CYCLES_CUDA_BINARIES_ARCH sm_60 sm_61 sm_70 sm_75 sm_86 sm_89 compute_75 CACHE STRING "CUDA architectures to build binaries for") - option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF) - option(WITH_CUDA_DYNLOAD "Dynamically load CUDA libraries at runtime (for developers, makes cuda-gdb work)" ON) + option(WITH_CYCLES_CUDA_BINARIES "Build Cycles NVIDIA CUDA binaries" OFF) + set(CYCLES_CUDA_BINARIES_ARCH +- sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_86 sm_89 compute_75 ++ sm_60 sm_61 sm_70 sm_75 sm_86 sm_89 compute_75 + CACHE STRING "CUDA architectures to build binaries for" + ) + option(WITH_CYCLES_CUDA_BUILD_SERIAL "\ diff --git a/Cycles/patches/iorDefaults.patch b/Cycles/patches/iorDefaults.patch deleted file mode 100644 index 3923cfcfb2..0000000000 --- a/Cycles/patches/iorDefaults.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/src/scene/shader_nodes.cpp -+++ b/src/scene/shader_nodes.cpp -@@ -2425,7 +2425,7 @@ NODE_DEFINE(GlassBsdfNode) - SOCKET_ENUM( - distribution, "Distribution", distribution_enum, CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID); - SOCKET_IN_FLOAT(roughness, "Roughness", 0.0f); -- SOCKET_IN_FLOAT(IOR, "IOR", 0.3f); -+ SOCKET_IN_FLOAT(IOR, "IOR", 1.5f); - - SOCKET_OUT_CLOSURE(BSDF, "BSDF"); - -@@ -2623,7 +2623,7 @@ NODE_DEFINE(PrincipledBsdfNode) - SOCKET_IN_COLOR(base_color, "Base Color", make_float3(0.8f, 0.8f, 0.8f)) - SOCKET_IN_FLOAT(metallic, "Metallic", 0.0f); - SOCKET_IN_FLOAT(roughness, "Roughness", 0.5f); -- SOCKET_IN_FLOAT(ior, "IOR", 0.0f); -+ SOCKET_IN_FLOAT(ior, "IOR", 1.5f); - SOCKET_IN_FLOAT(alpha, "Alpha", 1.0f); - SOCKET_IN_NORMAL(normal, "Normal", zero_float3(), SocketType::LINK_NORMAL); - -@@ -5781,7 +5781,7 @@ NODE_DEFINE(FresnelNode) - - SOCKET_IN_NORMAL( - normal, "Normal", zero_float3(), SocketType::LINK_NORMAL | SocketType::OSL_INTERNAL); -- SOCKET_IN_FLOAT(IOR, "IOR", 1.45f); -+ SOCKET_IN_FLOAT(IOR, "IOR", 1.5f); - - SOCKET_OUT_FLOAT(fac, "Fac"); diff --git a/Embree/config.py b/Embree/config.py index 438a7c5401..bb690927cd 100644 --- a/Embree/config.py +++ b/Embree/config.py @@ -2,7 +2,7 @@ "downloads" : [ - "https://github.com/embree/embree/archive/v4.3.0.tar.gz" + "https://github.com/embree/embree/archive/v4.3.2.tar.gz" ], diff --git a/OpenImageDenoise/config.py b/OpenImageDenoise/config.py new file mode 100644 index 0000000000..931c146925 --- /dev/null +++ b/OpenImageDenoise/config.py @@ -0,0 +1,78 @@ +{ + + "downloads" : [ + + "https://github.com/OpenImageDenoise/oidn/releases/download/v2.3.0/oidn-2.3.0.src.tar.gz", + # The OIDN build system will look for ISPC in a directory next to the source, so we can download a platform + # specific ISPC release here and it will be extracted to a location where it will be automatically found. + "{ispcDownload}" + + ], + + "url" : "https://www.openimagedenoise.org/", + + "license" : "LICENSE.txt", + + "dependencies" : [ "TBB", "OpenImageIO" ], + + "commands" : [ + + "mkdir build", + "cd build &&" + " cmake" + " -D CMAKE_INSTALL_PREFIX={buildDir}" + " -D CMAKE_INSTALL_LIBDIR=lib" + " -D CMAKE_PREFIX_PATH={buildDir}" + " -D CMAKE_BUILD_TYPE=Release" + " -D OIDN_APPS=ON" + " -D OIDN_APPS_OPENIMAGEIO=ON" + " -D OIDN_FILTER_RTLIGHTMAP=OFF" + " {extraArguments}" + " ..", + "cd build && cmake --build . --config Release --target install -- -j {jobs}", + + ], + + "manifest" : [ + + "bin/oidnDenoise", + "include/OpenImageDenoise*", + "lib/*OpenImageDenoise*", + + ], + + "variables" : { + + "extraArguments" : "", + "ispcDownload" : "https://github.com/ispc/ispc/releases/download/v1.21.1/ispc-v1.21.1-linux-oneapi.tar.gz", + + }, + + "platform:linux" : { + + "environment" : { + + ## \todo : This environment variable should instead be defined in the build container. + "CUDA_PATH" : "/usr/local/cuda", + + }, + + "variables" : { + + "extraArguments" : "-D OIDN_DEVICE_CUDA=ON", + + }, + + }, + + "platform:macos" : { + + "variables" : { + + "ispcDownload" : "https://github.com/ispc/ispc/releases/download/v1.21.1/ispc-v1.21.1-macOS.universal.tar.gz", + + }, + + }, + +} diff --git a/OpenPGL/config.py b/OpenPGL/config.py index b368418ad0..2040cc7751 100644 --- a/OpenPGL/config.py +++ b/OpenPGL/config.py @@ -2,7 +2,7 @@ "downloads" : [ - "https://github.com/OpenPathGuidingLibrary/openpgl/archive/refs/tags/v0.5.0.tar.gz" + "https://github.com/OpenPathGuidingLibrary/openpgl/archive/refs/tags/v0.6.0.tar.gz" ], diff --git a/Zstd/config.py b/Zstd/config.py new file mode 100644 index 0000000000..e759828164 --- /dev/null +++ b/Zstd/config.py @@ -0,0 +1,37 @@ +{ + + "downloads" : [ + + "https://github.com/facebook/zstd/releases/download/v1.5.0/zstd-1.5.0.tar.gz" + + ], + + "url" : "http://zstd.net", + + "license" : "LICENSE", + + "commands" : [ + + "mkdir gafferBuild", + "cd gafferBuild &&" + " cmake" + " -D CMAKE_CXX_STANDARD={c++Standard}" + " -D CMAKE_INSTALL_PREFIX={buildDir}" + " -D CMAKE_INSTALL_LIBDIR={buildDir}/lib" + " -D CMAKE_BUILD_TYPE=Release" + " -D ZSTD_BUILD_PROGRAMS=OFF" + " -D ZSTD_BUILD_TESTS=OFF" + " ../build/cmake", + + "cd gafferBuild && make -j {jobs} && make install", + + ], + + "manifest" : [ + + "include/zstd.h", + "lib/libzstd{sharedLibraryExtension}*" + + ], + +}