diff --git a/build_files/build_environment/cmake/embree.cmake b/build_files/build_environment/cmake/embree.cmake index eaa35c1bdd3..f9bd594897c 100644 --- a/build_files/build_environment/cmake/embree.cmake +++ b/build_files/build_environment/cmake/embree.cmake @@ -87,9 +87,13 @@ ExternalProject_Add(external_embree CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR} PREFIX ${BUILD_DIR}/embree - PATCH_COMMAND ${PATCH_CMD} -p 1 -d - ${BUILD_DIR}/embree/src/external_embree < - ${PATCH_DIR}/embree.diff + PATCH_COMMAND + ${PATCH_CMD} -p 1 -d + ${BUILD_DIR}/embree/src/external_embree < + ${PATCH_DIR}/embree.diff && + ${PATCH_CMD} -p 1 -d + ${BUILD_DIR}/embree/src/external_embree < + ${PATCH_DIR}/embree_1ace3ba33d.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree @@ -138,9 +142,6 @@ if(WIN32) COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree4_d.lib ${HARVEST_TARGET}/embree/lib/embree4_d.lib - COMMAND ${CMAKE_COMMAND} -E copy - ${LIBDIR}/embree/lib/embree4_sycl_d.lib - ${HARVEST_TARGET}/embree/lib/embree4_sycl_d.lib DEPENDEES install ) diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index 4edd050338d..a68f1244cbb 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -790,9 +790,9 @@ set(SQLITE_CPE "cpe:2.3:a:sqlite:sqlite:${SQLITE_VERSION}:*:*:*:*:*:*:*") set(SQLITE_HOMEPAGE https://www.sqlite.org) set(SQLITE_LICENSE Public Domain) -set(EMBREE_VERSION 4.3.2-blender) +set(EMBREE_VERSION 4.3.3) set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip) -set(EMBREE_HASH 91bd65e59c6cf4d9ff0e4d628aa28d6a) +set(EMBREE_HASH a03f49d17084612dc0f28bdc36d92e89) set(EMBREE_HASH_TYPE MD5) set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip) set(EMBREE_HOMEPAGE https://github.com/embree/embree) diff --git a/build_files/build_environment/patches/embree.diff b/build_files/build_environment/patches/embree.diff index d36017c629b..ba5db5370e6 100644 --- a/build_files/build_environment/patches/embree.diff +++ b/build_files/build_environment/patches/embree.diff @@ -59,3 +59,22 @@ index 7d1386853..6bfc8a9c6 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/CMakeLists.txt b/CMakeLists.txt +index 548038507..8c08e1fa1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -159,7 +159,13 @@ IF (EMBREE_SYCL_GEOMETRY_CALLBACK) + ENDIF() + + IF (EMBREE_SYCL_SUPPORT) +- ADD_DEFINITIONS("-DEMBREE_SYCL_SUPPORT") # FIXME: only use define from rtcore_config.h ++# Too many compilation issues with MSVC Debug and various versions of DPC++. ++# It's preferable to disable SYCL support when using MSVC Debug. ++ IF(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") ++ SET(EMBREE_SYCL_SUPPORT FALSE) ++ ELSE() ++ ADD_DEFINITIONS("-DEMBREE_SYCL_SUPPORT") # FIXME: only use define from rtcore_config.h ++ ENDIF() + ENDIF() + + CMAKE_DEPENDENT_OPTION(EMBREE_SYCL_RT_SIMULATION "Using hardware simulation" OFF "EMBREE_SYCL_SUPPORT" OFF) diff --git a/build_files/build_environment/patches/embree_1ace3ba33d.diff b/build_files/build_environment/patches/embree_1ace3ba33d.diff new file mode 100644 index 00000000000..132329e8b99 --- /dev/null +++ b/build_files/build_environment/patches/embree_1ace3ba33d.diff @@ -0,0 +1,23 @@ +diff --git a/common/sys/sycl.h b/common/sys/sycl.h +index f246f0d08..6bef829fc 100644 +--- a/common/sys/sycl.h ++++ b/common/sys/sycl.h +@@ -282,18 +282,6 @@ namespace embree + return sycl::inclusive_scan_over_group(this_sub_group(),x,binary_op,init); + } + +- template __forceinline T sub_group_shuffle(T x, sycl::id<1> local_id) { +- return this_sub_group().shuffle(x, local_id); +- } +- +- template __forceinline T sub_group_shuffle_down(T x, uint32_t delta) { +- return this_sub_group().shuffle_down(x, delta); +- } +- +- template __forceinline T sub_group_shuffle_up(T x, uint32_t delta) { +- return this_sub_group().shuffle_up(x, delta); +- } +- + template __forceinline T sub_group_load(const void* src) { + return this_sub_group().load(sycl::multi_ptr((T*)src)); + }