diff --git a/Changes.md b/Changes.md index 89a9f47f2b..452b3cc287 100644 --- a/Changes.md +++ b/Changes.md @@ -1,7 +1,11 @@ 8.0.0 alpha x (relative to 8.0.0 alpha 8) ------------- - +- OpenShadingLanguage : Disabled `USE_BATCHED` on `aarch64`. +- Cycles : Disabled path guiding on `aarch64` pending OpenPGL update. +- Build : Added support for architecture-specific config overrides. +- OpenImageIO : Updated to version 2.5.9.0. +- Embree : Updated to version 4.3.1. 8.0.0 alpha 8 (relative to 8.0.0 alpha 7) ------------- diff --git a/Cycles/config.py b/Cycles/config.py index 989815f09a..d27285317f 100644 --- a/Cycles/config.py +++ b/Cycles/config.py @@ -21,7 +21,7 @@ " -D CMAKE_PREFIX_PATH={buildDir}" " -D CMAKE_BUILD_TYPE=Release" " -D WITH_CYCLES_OPENIMAGEDENOISE=OFF" - " -D WITH_CYCLES_PATH_GUIDING=ON" + " -D WITH_CYCLES_PATH_GUIDING={pathGuiding}" " -D WITH_CYCLES_CUDA_BINARIES=ON" " -D WITH_CYCLES_DEVICE_CUDA=ON" " -D WITH_CYCLES_DEVICE_HIP=OFF" @@ -41,7 +41,24 @@ ], - "manifest" : [ + "variables" : { + + "pathGuiding" : "ON", + + }, + + # OpenPGL 0.5 doesn't support aarch64, 0.6 does, but has API breaks + "arch:aarch64" : { + + "variables" : { + "pathGuiding" : "OFF", + }, + + "dependencies" : [ "Boost", "OpenJPEG", "OpenImageIO", "TBB", "Alembic", "Embree", "OpenColorIO", "OpenVDB", "OpenShadingLanguage", "OpenSubdiv", "LibWebP" ], + + }, + + "manifest" : [ "cycles", diff --git a/Embree/config.py b/Embree/config.py index 438a7c5401..2b06a20759 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.1.tar.gz" ], diff --git a/OpenImageIO/config.py b/OpenImageIO/config.py index 5b331dbe2c..19310c3fdf 100644 --- a/OpenImageIO/config.py +++ b/OpenImageIO/config.py @@ -2,7 +2,7 @@ "downloads" : [ - "https://github.com/OpenImageIO/oiio/archive/refs/tags/v2.5.8.0.tar.gz" + "https://github.com/OpenImageIO/oiio/archive/refs/tags/v2.5.9.0.tar.gz" ], diff --git a/OpenPGL/config.py b/OpenPGL/config.py index b368418ad0..14e02c6ca7 100644 --- a/OpenPGL/config.py +++ b/OpenPGL/config.py @@ -34,4 +34,12 @@ ], + # OpenPGL 0.5 doesn't support aarch64, 0.6 does, but has API breaks + # that aren't compatible with Cycles (currently the only consumer). + "arch:aarch64" : { + + "enabled": False + + } + } diff --git a/OpenShadingLanguage/config.py b/OpenShadingLanguage/config.py index a94cdaba1b..7aa9804e6b 100644 --- a/OpenShadingLanguage/config.py +++ b/OpenShadingLanguage/config.py @@ -69,6 +69,14 @@ "useBatched" : "0", } - } + }, + + "arch:aarch64" : { + + "variables" : { + "useBatched" : "0", + } + + }, } diff --git a/build.py b/build.py index 10243759e7..a20e8df5e8 100755 --- a/build.py +++ b/build.py @@ -7,6 +7,7 @@ import json import os import operator +import platform import multiprocessing import subprocess import shutil @@ -64,7 +65,8 @@ Configs may specify platform-specific overrides in a dictionary named "platform:macos" or "platform:linux". Where a config setting is a dictionary, overrides are merged in via `dict.update()`, otherwise they completely -replace the original value. +replace the original value. Architecture-specific overrides can be +provided with "arch:" e.g. "arch:aarch64". ### Variants @@ -208,6 +210,7 @@ def __loadConfigs( variables, variants ) : for variantProject, variant in variants.items() : __applyConfigOverrides( config, "variant:{}:{}".format( variantProject, variant ) ) __applyConfigOverrides( config, "platform:macos" if sys.platform == "darwin" else "platform:linux" ) + __applyConfigOverrides( config, "arch:{}".format( platform.machine() ) ) if config.get( "enabled", True ) : configs[project] = config