- This Embree release adds support for Intel® Arc™ GPUs through SYCL.
- The SYCL support of Embree is in beta phase. Current functionality, quality,
and GPU performance may not reflect that of the final product. Please read the
documentation section "Embree SYCL Known Issues" for known limitations. - Embree CPU support in this release as at Gold level, incorporating the same quality
and performance as previous releases. - A small number of API changes were required to get optimal experience and
performance on the CPU and GPU. See documentation section "Upgrading from Embree 3 to
Embree 4" for details. - rtcIntersect and rtcOccluded function arguments changed slightly.
- RTCIntersectContext is renamed to RTCRayQuery context and most members moved to
new RTCIntersectArguments and RTCOccludedArguments structures. - rtcFilterIntersection and rtcFilterOcclusion API calls got replaced by
rtcInvokeIntersectFilterFromGeometry and rtcInvokeOccludedFilterFromGeometry API calls. - rtcSetGeometryEnableFilterFunctionFromArguments enables argument filter functions for some geometry.
- RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER ray query flag enables argument filter functions for each geometry.
- User geometry callbacks have to return if a valid hit was found.
- Ray masking is enabled by default now as required by most users.
- The default ray mask for geometries got changed from 0xFFFFFFFF to 0x1.
- Removed ray stream API as rarely used with minimal performance benefits over packet tracing.
- Introduced rtcForwardIntersect/rtcForwardOccluded API calls to trace tail recursive rays from user geometry callback.
- The rtcGetGeometryUserDataFromScene API call got added to be used in SYCL code.
- Added support for user geometry callback function pointer passed through ray query context
- Feature flags enable reducing code complexity for optimal performance on the GPU.
- Fixed compilation issues for ARM AArch64 processor under Linux.
- Setting default frequency level to SIMD256 for ARM on all platforms.
This allows using double pumped NEON execution by enabling EMBREE_ISA_NEON2X in cmake under Linux. - Fixed missing end caps of motion blurred line segments.
- EMBREE_ISPC_SUPPORT is turned OFF by default.
- Embree drops support of the deprecated Intel(R) Compiler. It is replaced by
the Intel(R) oneAPI DPC++/C++ Compiler on Windows and Linux and the
Intel(R) C++ Classic Compiler on MacOS (latest tested versions is 2023.0.0).