From d690b08c1f9034cd7230166affc49650d86c42a2 Mon Sep 17 00:00:00 2001 From: Xavier Hallade Date: Mon, 27 May 2024 11:42:14 +0200 Subject: [PATCH] Build: Upgrade Embree to 4.3.2-blender release --- .../build_environment/cmake/versions.cmake | 4 +- .../build_environment/patches/embree.diff | 74 +++---------------- 2 files changed, 12 insertions(+), 66 deletions(-) diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index 4575c265484..5db1b241c37 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -511,9 +511,9 @@ set(SQLITE_FILE sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz) set(SQLITE_CPE "cpe:2.3:a:sqlite:sqlite:${SQLITE_VERSION}:*:*:*:*:*:*:*") set(SQLITE_HOMEPAGE https://www.sqlite.org) -set(EMBREE_VERSION 4.1.0) +set(EMBREE_VERSION 4.3.2-blender) set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip) -set(EMBREE_HASH 4b525955b08e1249a700dea5b5ffc8b2) +set(EMBREE_HASH 91bd65e59c6cf4d9ff0e4d628aa28d6a) set(EMBREE_HASH_TYPE MD5) set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip) diff --git a/build_files/build_environment/patches/embree.diff b/build_files/build_environment/patches/embree.diff index 44b314d8e6a..f942109aba1 100644 --- a/build_files/build_environment/patches/embree.diff +++ b/build_files/build_environment/patches/embree.diff @@ -1,16 +1,3 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7fa9423e2..6de9b072b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -242,7 +242,7 @@ OPTION(EMBREE_MIN_WIDTH "Enables min-width feature to enlarge curve and point th - IF (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" OR CMAKE_OSX_ARCHITECTURES MATCHES "arm64")) - MESSAGE(STATUS "Building for Apple silicon") - SET(EMBREE_ARM ON) --ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") -+ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") - MESSAGE(STATUS "Building for AArch64") - SET(EMBREE_ARM ON) - ENDIF() diff --git a/kernels/CMakeLists.txt b/kernels/CMakeLists.txt index fae31f4a4..8bb3601e7 100644 --- a/kernels/CMakeLists.txt @@ -37,57 +24,16 @@ index fae31f4a4..8bb3601e7 100644 DISABLE_STACK_PROTECTOR_FOR_INTERSECTORS(${EMBREE_LIBRARY_FILES_AVX2}) ADD_LIBRARY(embree_avx2 STATIC ${EMBREE_LIBRARY_FILES_AVX2}) TARGET_LINK_LIBRARIES(embree_avx2 PRIVATE tasking) -diff --git a/kernels/rthwif/rtbuild/rtbuild.cpp b/kernels/rthwif/rtbuild/rtbuild.cpp -index 6d439f939..367b1ce7b 100644 ---- a/kernels/rthwif/rtbuild/rtbuild.cpp -+++ b/kernels/rthwif/rtbuild/rtbuild.cpp -@@ -10,7 +10,7 @@ namespace embree - { - using namespace embree::isa; +diff --git a/common/cmake/dpcpp_orig.cmake b/common/cmake/dpcpp.cmake +index a15c179..4760e63 100644 +--- a/common/cmake/dpcpp.cmake ++++ b/common/cmake/dpcpp.cmake +@@ -45,7 +45,7 @@ IF (EMBREE_SYCL_SUPPORT) -- static std::unique_ptr g_arena; -+ static tbb::task_arena g_arena(tbb::this_task_arena::max_concurrency(),tbb::this_task_arena::max_concurrency()); + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sycl") # makes dpcpp compiler compatible with clang++ - typedef enum _ze_raytracing_accel_format_internal_t { - ZE_RTAS_DEVICE_FORMAT_EXP_INVALID = 0, // invalid acceleration structure format -@@ -210,13 +210,10 @@ namespace embree +- SET(CMAKE_CXX_FLAGS_SYCL "-fsycl -fsycl-unnamed-lambda -Xclang -fsycl-allow-func-ptr") ++ SET(CMAKE_CXX_FLAGS_SYCL "-fsycl -nolibsycl -fsycl-unnamed-lambda -Xclang -fsycl-allow-func-ptr") + SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} -Wno-mismatched-tags -Wno-pessimizing-move -Wno-reorder -Wno-unneeded-internal-declaration -Wno-delete-non-abstract-non-virtual-dtor -Wno-dangling-field -Wno-unknown-pragmas -Wno-logical-op-parentheses") - RTHWIF_API void zeRTASInitExp() - { -- uint32_t numThreads = tbb::this_task_arena::max_concurrency(); -- g_arena.reset(new tbb::task_arena(numThreads,numThreads)); - } - - RTHWIF_API void zeRTASExitExp() - { -- g_arena.reset(); - } - - typedef struct _zet_base_desc_t -@@ -740,7 +737,7 @@ namespace embree - //if (op->hBuilder != hBuilder) - // return ZE_RESULT_ERROR_INVALID_ARGUMENT; - -- g_arena->execute([&](){ op->group.run([=](){ -+ g_arena.execute([&](){ op->group.run([=](){ - op->errorCode = zeRTASBuilderBuildExpInternal(args, - pScratchBuffer, scratchBufferSizeBytes, - pRtasBuffer, rtasBufferSizeBytes, -@@ -753,7 +750,7 @@ namespace embree - else - { - ze_result_t errorCode = ZE_RESULT_SUCCESS; -- g_arena->execute([&](){ errorCode = zeRTASBuilderBuildExpInternal(args, -+ g_arena.execute([&](){ errorCode = zeRTASBuilderBuildExpInternal(args, - pScratchBuffer, scratchBufferSizeBytes, - pRtasBuffer, rtasBufferSizeBytes, - pBuildUserPtr, pBounds, pRtasBufferSizeBytes); -@@ -801,7 +798,7 @@ namespace embree - VALIDATE(hParallelOperation); - - ze_rtas_parallel_operation_t* op = (ze_rtas_parallel_operation_t*) hParallelOperation; -- g_arena->execute([&](){ op->group.wait(); }); -+ g_arena.execute([&](){ op->group.wait(); }); - return op->errorCode; - } - } + IF (SYCL_ONEAPI_ICX AND WIN32)