- Update `graphics/embree' to version 2.11.0

- GC patches (all of them got integrated upstream)
- Rename IMAGE_MAGICK option to a standard IMAGEMAGICK, but keep custom
  description which is more specific and follows internal one

Because GitHub releases (tarballs) are not fetched with correct modification
time, set TIMESTAMP to 1472729819 which corresponds to commit aa318b0 tagged
as this release.
This commit is contained in:
Alexey Dokuchaev 2016-10-17 10:38:50 +00:00
parent d8be863d00
commit 5f938536c2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=424104
8 changed files with 13 additions and 217 deletions

View File

@ -3,8 +3,7 @@
PORTNAME= embree
DISTVERSIONPREFIX= v
DISTVERSION= 2.10.0
PORTREVISION= 1
PORTVERSION= 2.11.0
CATEGORIES= graphics
MAINTAINER= danfe@FreeBSD.org
@ -24,40 +23,27 @@ USE_GL= glut
USE_XORG= xmu
USE_LDCONFIG= yes
CMAKE_ARGS= -DRTCORE_TASKING_SYSTEM:STRING=INTERNAL \
-DENABLE_ISPC_SUPPORT:BOOL=OFF
CMAKE_ARGS= -DEMBREE_TASKING_SYSTEM:STRING=INTERNAL \
-DEMBREE_ISPC_SUPPORT:BOOL=OFF
CXXFLAGS+= -msse2 # required on i386
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}2
PLIST_SUB+= VERSION=${DISTVERSION}
OPTIONS_DEFINE= IMAGE_MAGICK JPEG OPENEXR PNG
IMAGE_MAGICK_DESC= BMP, GIF, PNG, TGA, TIFF image formats support
OPTIONS_DEFINE= IMAGEMAGICK JPEG OPENEXR PNG
IMAGEMAGICK_DESC= BMP, GIF, PNG, TGA, TIFF image formats support
IMAGE_MAGICK_LIB_DEPENDS= libMagick++-6.so:graphics/ImageMagick
IMAGE_MAGICK_CMAKE_ON= -DUSE_IMAGE_MAGICK:BOOL=ON
IMAGEMAGICK_LIB_DEPENDS= libMagick++-6.so:graphics/ImageMagick
IMAGEMAGICK_CMAKE_ON= -DEMBREE_TUTORIALS_IMAGE_MAGICK:BOOL=ON
JPEG_USES= jpeg
JPEG_CMAKE_OFF= -DUSE_LIBJPEG:BOOL=OFF
JPEG_CMAKE_OFF= -DEMBREE_TUTORIALS_LIBJPEG:BOOL=OFF
OPENEXR_LIB_DEPENDS= libIlmImf.so:graphics/OpenEXR
OPENEXR_CMAKE_OFF= -DUSE_OPENEXR:BOOL=OFF
OPENEXR_CMAKE_OFF= -DEMBREE_TUTORIALS_OPENEXR:BOOL=OFF
PNG_LIB_DEPENDS= libpng.so:graphics/png
PNG_CMAKE_OFF= -DUSE_LIBPNG:BOOL=OFF
post-patch:
@${REINPLACE_CMD} -e 's,MAP_HUGETLB,MAP_ALIGNED_SUPER,' \
${WRKSRC}/common/sys/alloc.cpp
@${REINPLACE_CMD} -e '/__aligned/s,^,//,' \
${WRKSRC}/common/sys/platform.h
@${REINPLACE_CMD} -e 's,MAP_POPULATE,MAP_PREFAULT_READ,' \
${WRKSRC}/tests/benchmark.cpp
@${REINPLACE_CMD} -e '/encodeRGB8_to_JPEG/s,size_t \*,unsigned \
long *,' ${WRKSRC}/tutorials/common/image/image.h \
${WRKSRC}/tutorials/common/image/jpeg.cpp
@${REINPLACE_CMD} -e 's,__forceinline,inline __attribute__((always_inline)),' \
${WRKSRC}/include/embree2/rtcore_ray.h
PNG_CMAKE_OFF= -DEMBREE_TUTORIALS_LIBPNG:BOOL=OFF
.include <bsd.port.mk>

View File

@ -1,2 +1,3 @@
SHA256 (embree-embree-v2.10.0_GH0.tar.gz) = c011dc3c035c9618733a2e256ca24efe54aea937f86069e24ff87b02af2d50e4
SIZE (embree-embree-v2.10.0_GH0.tar.gz) = 1774006
TIMESTAMP = 1472729819
SHA256 (embree-embree-v2.11.0_GH0.tar.gz) = 35283fa82c3f345a05a9d3ff3af5a36cf71d75d19dc9150a681999f301d67832
SIZE (embree-embree-v2.11.0_GH0.tar.gz) = 1789427

View File

@ -1,20 +0,0 @@
--- common/math/math.h.orig 2016-05-20 05:45:13 UTC
+++ common/math/math.h
@@ -83,7 +83,7 @@ namespace embree
return _mm_cvtss_f32(c);
}
-#if !defined(__WIN32__)
+#if !defined(__WIN32__) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION < 3800)
__forceinline float abs ( const float x ) { return ::fabsf(x); }
__forceinline float acos ( const float x ) { return ::acosf (x); }
__forceinline float asin ( const float x ) { return ::asinf (x); }
@@ -179,7 +179,7 @@ namespace embree
}
#endif
-#if defined(__WIN32__)
+#if defined(__WIN32__) || defined(__FreeBSD__)
__forceinline void sincosf(float x, float *s, float *c) {
*s = sinf(x); *c = cosf(x);
}

View File

@ -1,61 +0,0 @@
--- common/sys/intrinsics.h.orig 2016-05-20 05:45:13 UTC
+++ common/sys/intrinsics.h
@@ -268,6 +268,7 @@ namespace embree
#endif
}
+#if defined(__X86_64__)
__forceinline unsigned __bsf(unsigned v)
{
#if defined(__AVX2__)
@@ -276,6 +277,7 @@ namespace embree
unsigned r = 0; asm ("bsf %1,%0" : "=r"(r) : "r"(v)); return r;
#endif
}
+#endif
__forceinline size_t __bsf(size_t v) {
#if defined(__AVX2__)
@@ -306,12 +308,14 @@ namespace embree
return i;
}
+#if defined(__X86_64__)
__forceinline unsigned int __bscf(unsigned int& v)
{
unsigned int i = __bsf(v);
v &= v-1;
return i;
}
+#endif
__forceinline size_t __bscf(size_t& v)
{
@@ -328,6 +332,7 @@ namespace embree
#endif
}
+#if defined(__X86_64__)
__forceinline unsigned __bsr(unsigned v) {
#if defined(__AVX2__)
return 31 - _lzcnt_u32(v);
@@ -335,6 +340,7 @@ namespace embree
unsigned r = 0; asm ("bsr %1,%0" : "=r"(r) : "r"(v)); return r;
#endif
}
+#endif
__forceinline size_t __bsr(size_t v) {
#if defined(__AVX2__)
@@ -363,7 +369,11 @@ namespace embree
#if defined(__INTEL_COMPILER)
return _blsr_u64(v);
#else
+#if defined(__X86_64__)
return __blsr_u64(v);
+#else
+ return __blsr_u32(v);
+#endif
#endif
#else
return v & (v-1);

View File

@ -1,34 +0,0 @@
--- common/sys/sysinfo.cpp.orig 2015-09-17 06:11:18 UTC
+++ common/sys/sysinfo.cpp
@@ -414,6 +414,31 @@ namespace embree
#endif
////////////////////////////////////////////////////////////////////////////////
+/// FreeBSD Platform
+////////////////////////////////////////////////////////////////////////////////
+
+#ifdef __FreeBSD__
+
+#include <sys/sysctl.h>
+
+namespace embree
+{
+ std::string getExecutableFileName()
+ {
+#if __FreeBSD_version > 900009
+ const
+#endif
+ int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
+ char buf[1024];
+ size_t len = sizeof(buf);
+ if (sysctl(mib, 4, buf, &len, 0x0, 0) == -1) *buf = '\0';
+ return std::string(buf);
+ }
+}
+
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
/// Mac OS X Platform
////////////////////////////////////////////////////////////////////////////////

View File

@ -1,59 +0,0 @@
--- common/sys/thread.cpp.orig 2016-05-20 05:45:13 UTC
+++ common/sys/thread.cpp
@@ -239,6 +239,29 @@ namespace embree
#endif
////////////////////////////////////////////////////////////////////////////////
+/// FreeBSD Platform
+////////////////////////////////////////////////////////////////////////////////
+
+#if defined(__FreeBSD__)
+
+#include <pthread_np.h>
+
+namespace embree
+{
+ /*! set affinity of the calling thread */
+ void setAffinity(ssize_t affinity)
+ {
+ cpuset_t cset;
+ CPU_ZERO(&cset);
+ CPU_SET(affinity, &cset);
+
+ if (pthread_setaffinity_np(pthread_self(), sizeof(cset), &cset) != 0)
+ WARNING("pthread_setaffinity_np failed"); // on purpose only a warning
+ }
+}
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
/// MacOSX Platform
////////////////////////////////////////////////////////////////////////////////
@@ -291,7 +314,8 @@ namespace embree
{
_mm_setcsr(_mm_getcsr() | /*FTZ:*/ (1<<15) | /*DAZ:*/ (1<<6));
-#if !defined(__LINUX__)
+#if defined(__MACOSX__)
+ /*! Mac OS X does not support setting affinity at thread creation time */
if (parg->affinity >= 0)
setAffinity(parg->affinity);
#endif
@@ -320,7 +344,15 @@ namespace embree
cpu_set_t cset;
CPU_ZERO(&cset);
CPU_SET(mapThreadID(threadID), &cset);
- if (pthread_setaffinity_np(*tid,sizeof(cpu_set_t),&cset))
+ if (pthread_setaffinity_np(*tid, sizeof(cset), &cset))
+ WARNING("pthread_setaffinity_np failed"); // on purpose only a warning
+ }
+#elif defined(__FreeBSD__)
+ if (threadID >= 0) {
+ cpuset_t cset;
+ CPU_ZERO(&cset);
+ CPU_SET(threadID, &cset);
+ if (pthread_setaffinity_np(*tid, sizeof(cset), &cset))
WARNING("pthread_setaffinity_np failed"); // on purpose only a warning
}
#endif

View File

@ -1,15 +0,0 @@
--- kernels/xeon/bvh/bvh_rotate.cpp.orig 2016-05-20 05:45:13 UTC
+++ kernels/xeon/bvh/bvh_rotate.cpp
@@ -104,7 +104,11 @@ namespace embree
/*! find best other child */
vfloat4 area0123 = vfloat4(extract<0>(min0),extract<0>(min1),extract<0>(min2),extract<0>(min3)) - vfloat4(childArea[c2]);
int pos[4] = { pos0,pos1,pos2,pos3 };
- vbool4 valid = vint4(int(depth+1))+cdepth <= vint4(BVH4::maxBuildDepth); // only select swaps that fulfill depth constraints
+ // Ensure that we have a variable to avoid linking problems on i386.
+ // On amd64 sizeof(size_t) == 8, so previously temporary was created
+ // for the vint4(BVH4::maxBuildDepth) call.
+ const size_t mbd = BVH4::maxBuildDepth;
+ vbool4 valid = vint4(int(depth+1))+cdepth <= vint4(mbd); // only select swaps that fulfill depth constraints
valid &= vint4(c2) != vint4(step);
if (none(valid)) continue;
size_t c1 = select_min(valid,area0123);

View File

@ -1,4 +1,3 @@
bin/embree2/benchmark
bin/embree2/bvh_access
bin/embree2/bvh_builder
bin/embree2/convert
@ -29,7 +28,6 @@ bin/embree2/models/subdiv8.xml
bin/embree2/models/subdiv9.xml
bin/embree2/motion_blur_geometry
bin/embree2/pathtracer
bin/embree2/retrace
bin/embree2/subdivision_geometry
bin/embree2/triangle_geometry
bin/embree2/user_geometry