From b862cf0b9fc72a9f2b154bce0163558f577e3f58 Mon Sep 17 00:00:00 2001 From: Tianhao Chai Date: Fri, 29 Jul 2022 14:48:52 +0200 Subject: [PATCH 1/3] Fix Cycles build error with CUDA on arm64 Checking arm64 assembly support before CUDA/Metal would cause NVCC to generate inline arm64 assembly. Differential Revision: https://developer.blender.org/D15569 --- intern/cycles/util/math.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/intern/cycles/util/math.h b/intern/cycles/util/math.h index 2631304c84b..f6400cb879f 100644 --- a/intern/cycles/util/math.h +++ b/intern/cycles/util/math.h @@ -953,7 +953,11 @@ ccl_device_inline uint prev_power_of_two(uint x) ccl_device_inline uint32_t reverse_integer_bits(uint32_t x) { /* Use a native instruction if it exists. */ -#if defined(__aarch64__) || defined(_M_ARM64) +#if defined(__KERNEL_CUDA__) + return __brev(x); +#elif defined(__KERNEL_METAL__) + return reverse_bits(x); +#elif defined(__aarch64__) || defined(_M_ARM64) /* Assume the rbit is always available on 64bit ARM architecture. */ __asm__("rbit %w0, %w1" : "=r"(x) : "r"(x)); return x; @@ -962,10 +966,6 @@ ccl_device_inline uint32_t reverse_integer_bits(uint32_t x) * This 32-bit Thumb instruction is available in ARMv6T2 and above. */ __asm__("rbit %0, %1" : "=r"(x) : "r"(x)); return x; -#elif defined(__KERNEL_CUDA__) - return __brev(x); -#elif defined(__KERNEL_METAL__) - return reverse_bits(x); #elif __has_builtin(__builtin_bitreverse32) return __builtin_bitreverse32(x); #else From 3a138a74e5983213519d53cc4e1b729b63f96a87 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Fri, 29 Jul 2022 15:00:54 +0200 Subject: [PATCH 2/3] install_deps: add building of Alembic binaries. Those are used by alembic regression tests. --- build_files/build_environment/install_deps.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index 2441b9ad89b..10cb1b3579c 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -3000,7 +3000,7 @@ compile_ALEMBIC() { fi # To be changed each time we make edits that would modify the compiled result! - alembic_magic=2 + alembic_magic=3 _init_alembic # Force having own builds for the dependencies. @@ -3048,7 +3048,7 @@ compile_ALEMBIC() { fi if [ "$_with_built_openexr" = true ]; then cmake_d="$cmake_d -D USE_ARNOLD=OFF" - cmake_d="$cmake_d -D USE_BINARIES=OFF" + cmake_d="$cmake_d -D USE_BINARIES=ON" # Tests use some Alembic binaries... cmake_d="$cmake_d -D USE_EXAMPLES=OFF" cmake_d="$cmake_d -D USE_HDF5=OFF" cmake_d="$cmake_d -D USE_MAYA=OFF" From 065dfe744cb94cb63db19353b1c00a5dc1356dfb Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Fri, 29 Jul 2022 15:16:25 +0200 Subject: [PATCH 3/3] install_deps: bump IMath/OpenEXR to 3.1.5. Ref T98555. --- build_files/build_environment/install_deps.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index 10cb1b3579c..f31a3fe02f5 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -478,7 +478,7 @@ OCIO_FORCE_BUILD=false OCIO_FORCE_REBUILD=false OCIO_SKIP=false -IMATH_VERSION="3.1.4" +IMATH_VERSION="3.1.5" IMATH_VERSION_SHORT="3.1" IMATH_VERSION_MIN="3.0" IMATH_VERSION_MEX="4.0" @@ -487,7 +487,7 @@ IMATH_FORCE_REBUILD=false IMATH_SKIP=false _with_built_imath=false -OPENEXR_VERSION="3.1.4" +OPENEXR_VERSION="3.1.5" OPENEXR_VERSION_SHORT="3.1" OPENEXR_VERSION_MIN="3.0" OPENEXR_VERSION_MEX="4.0"