Build: Upgrade Embree to 4.3.2-blender release

This commit is contained in:
Xavier Hallade 2024-05-27 11:42:14 +02:00 committed by Xavier Hallade
parent d8b3f852b9
commit d690b08c1f
2 changed files with 12 additions and 66 deletions

@ -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)

@ -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<tbb::task_arena> 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)