- Update to version 2.10.0

- Remove `compiler:c++11-lang' from USES, it is not needed (the port does
  not build on 9.x with any of c++11-lang/c++11-lib/USE_GCC=yes anyways)
- Make image format support in helper programs optional (and off by default)
This commit is contained in:
Alexey Dokuchaev 2016-05-27 05:41:27 +00:00
parent 87e395557a
commit 3848c3ec7f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=415924
10 changed files with 151 additions and 126 deletions

View file

@ -3,8 +3,7 @@
PORTNAME= embree
DISTVERSIONPREFIX= v
DISTVERSION= 2.7.0
PORTREVISION= 1
DISTVERSION= 2.10.0
CATEGORIES= graphics
MAINTAINER= danfe@FreeBSD.org
@ -12,9 +11,6 @@ COMMENT= Collection of high-performance ray tracing kernels
LICENSE= APACHE20
LIB_DEPENDS= libMagick++-6.so:graphics/ImageMagick \
libIlmImf.so:graphics/OpenEXR
ONLY_FOR_ARCHS= i386 amd64
ONLY_FOR_ARCHS_REASON= heavy use of SSE instructions
@ -22,7 +18,7 @@ BROKEN_FreeBSD_9= does not build (insufficient C++11 support)
USE_GITHUB= yes
USES= cmake compiler:c++11-lang
USES= cmake
USE_GL= glut
USE_XORG= xmu
USE_LDCONFIG= yes
@ -33,25 +29,33 @@ CMAKE_ARGS= -DRTCORE_TASKING_SYSTEM:STRING=INTERNAL \
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
IMAGE_MAGICK_LIB_DEPENDS= libMagick++-6.so:graphics/ImageMagick
IMAGE_MAGICK_CMAKE_ON= -DUSE_IMAGE_MAGICK:BOOL=ON
JPEG_USES= jpeg
JPEG_CMAKE_OFF= -DUSE_LIBJPEG:BOOL=OFF
OPENEXR_LIB_DEPENDS= libIlmImf.so:graphics/OpenEXR
OPENEXR_CMAKE_OFF= -DUSE_OPENEXR:BOOL=OFF
PNG_LIB_DEPENDS= libpng.so:graphics/png
PNG_CMAKE_OFF= -DUSE_LIBPNG:BOOL=OFF
post-patch:
# MAP_NORESERVE was never implemented in FreeBSD and retired in r273250
@${REINPLACE_CMD} -e 's,MAP_NORESERVE,0,' \
@${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,__UNIX__) &&.*,__LINUX__),' \
@${REINPLACE_CMD} -e 's,MAP_POPULATE,MAP_PREFAULT_READ,' \
${WRKSRC}/tests/benchmark.cpp
@${REINPLACE_CMD} -e '/share\/doc/,+2 { \
s,share/doc/embree-[^)]*,${DOCSDIR_REL}, ; \
s,bin/,, ; } ' ${WRKSRC}/common/cmake/package.cmake
@${REINPLACE_CMD} -e '/encodeRGB8_to_JPEG/s,size_t \*,unsigned \
long *,' ${WRKSRC}/tutorials/common/image/image.h \
${WRKSRC}/tutorials/common/image/jpeg.cpp
post-install:
${LN} -sf libembree.so.${DISTVERSION} \
${STAGEDIR}${PREFIX}/lib/libembree.so
.include <bsd.port.mk>

View file

@ -1,2 +1,2 @@
SHA256 (embree-embree-v2.7.0_GH0.tar.gz) = 2b5dacbf1c94a2e6568661eae7cdb91abbdc65feaccd8aec03c8fd4b32fca6aa
SIZE (embree-embree-v2.7.0_GH0.tar.gz) = 1697062
SHA256 (embree-embree-v2.10.0_GH0.tar.gz) = c011dc3c035c9618733a2e256ca24efe54aea937f86069e24ff87b02af2d50e4
SIZE (embree-embree-v2.10.0_GH0.tar.gz) = 1774006

View file

@ -1,18 +0,0 @@
--- common/cmake/clang.cmake.orig 2015-09-17 06:11:18 UTC
+++ common/cmake/clang.cmake
@@ -23,11 +23,11 @@ SET(FLAGS_AVX "-mavx")
SET(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2")
SET(FLAGS_AVX512 "-mavx512")
-SET(CMAKE_CXX_COMPILER "clang++")
-SET(CMAKE_C_COMPILER "clang")
-SET(CMAKE_CXX_FLAGS "-fPIC -std=c++11 -fno-strict-aliasing -Wno-narrowing -Wno-deprecated-register")
+#SET(CMAKE_CXX_COMPILER "clang++")
+#SET(CMAKE_C_COMPILER "clang")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++11 -fno-strict-aliasing -Wno-narrowing -Wno-deprecated-register")
SET(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -g -O0")
-SET(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3")
+SET(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DDEBUG -g -O3")
SET(CMAKE_EXE_LINKER_FLAGS "")

View file

@ -1,18 +0,0 @@
--- common/cmake/gcc.cmake.orig 2015-09-17 06:11:18 UTC
+++ common/cmake/gcc.cmake
@@ -23,11 +23,11 @@ SET(FLAGS_AVX "-mavx")
SET(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2")
SET(FLAGS_AVX512 "-mavx512f -mavx512pf -mavx512er -mavx512cd")
-SET(CMAKE_CXX_COMPILER "g++")
-SET(CMAKE_C_COMPILER "gcc")
-SET(CMAKE_CXX_FLAGS "-fPIC -std=c++11 -fno-strict-aliasing -Wno-narrowing")
+#SET(CMAKE_CXX_COMPILER "g++")
+#SET(CMAKE_C_COMPILER "gcc")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++11 -fno-strict-aliasing -Wno-narrowing")
SET(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -g -O0")
-SET(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3")
+SET(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DDEBUG -g -O3")
SET(CMAKE_EXE_LINKER_FLAGS "")

View file

@ -0,0 +1,11 @@
--- common/math/math.h.orig 2016-05-20 05:45:13 UTC
+++ common/math/math.h
@@ -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,6 +1,6 @@
--- common/sys/intrinsics.h.orig 2015-09-17 06:11:18 UTC
--- common/sys/intrinsics.h.orig 2016-05-20 05:45:13 UTC
+++ common/sys/intrinsics.h
@@ -361,6 +361,7 @@ namespace embree
@@ -268,6 +268,7 @@ namespace embree
#endif
}
@ -8,7 +8,7 @@
__forceinline unsigned __bsf(unsigned v)
{
#if defined(__AVX2__)
@@ -369,6 +370,7 @@ namespace embree
@@ -276,6 +277,7 @@ namespace embree
unsigned r = 0; asm ("bsf %1,%0" : "=r"(r) : "r"(v)); return r;
#endif
}
@ -16,7 +16,7 @@
__forceinline size_t __bsf(size_t v) {
#if defined(__AVX2__)
@@ -389,12 +391,14 @@ namespace embree
@@ -306,12 +308,14 @@ namespace embree
return i;
}
@ -31,7 +31,7 @@
__forceinline size_t __bscf(size_t& v)
{
@@ -411,6 +415,7 @@ namespace embree
@@ -328,6 +332,7 @@ namespace embree
#endif
}
@ -39,7 +39,7 @@
__forceinline unsigned __bsr(unsigned v) {
#if defined(__AVX2__)
return 31 - _lzcnt_u32(v);
@@ -418,6 +423,7 @@ namespace embree
@@ -335,6 +340,7 @@ namespace embree
unsigned r = 0; asm ("bsr %1,%0" : "=r"(r) : "r"(v)); return r;
#endif
}
@ -47,16 +47,15 @@
__forceinline size_t __bsr(size_t v) {
#if defined(__AVX2__)
@@ -443,7 +449,11 @@ namespace embree
__forceinline size_t __blsr(size_t v) {
#if defined(__AVX2__)
- return _blsr_u64(v);
@@ -363,7 +369,11 @@ namespace embree
#if defined(__INTEL_COMPILER)
return _blsr_u64(v);
#else
+#if defined(__X86_64__)
+ return __blsr_u64(v);
return __blsr_u64(v);
+#else
+ return __blsr_u32(v);
+#endif
#endif
#else
return v & (v-1);
#endif

View file

@ -1,21 +1,59 @@
--- common/sys/thread.cpp.orig 2015-09-17 06:11:18 UTC
--- common/sys/thread.cpp.orig 2016-05-20 05:45:13 UTC
+++ common/sys/thread.cpp
@@ -171,13 +171,16 @@ namespace embree
/// Linux Platform
////////////////////////////////////////////////////////////////////////////////
@@ -239,6 +239,29 @@ namespace embree
#endif
-#if defined(__LINUX__)
+#if defined(__LINUX__) || defined(__FreeBSD__)
////////////////////////////////////////////////////////////////////////////////
+/// FreeBSD Platform
+////////////////////////////////////////////////////////////////////////////////
+
+#if defined(__FreeBSD__)
+
+#include <pthread_np.h>
+
namespace embree
{
/*! set affinity of the calling thread */
void setAffinity(ssize_t affinity)
{
- cpu_set_t cset;
+namespace embree
+{
+ /*! set affinity of the calling thread */
+ void setAffinity(ssize_t affinity)
+ {
+ cpuset_t cset;
CPU_ZERO(&cset);
CPU_SET(affinity, &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/bvh4/bvh4_rotate.cpp.orig 2015-09-17 06:11:18 UTC
+++ kernels/xeon/bvh4/bvh4_rotate.cpp
@@ -104,7 +104,11 @@ namespace embree
/*! find best other child */
float4 area0123 = float4(extract<0>(min0),extract<0>(min1),extract<0>(min2),extract<0>(min3)) - float4(childArea[c2]);
int pos[4] = { pos0,pos1,pos2,pos3 };
- bool4 valid = int4(int(depth+1))+cdepth <= int4(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 int4(BVH4::maxBuildDepth) call.
+ const size_t mbd = BVH4::maxBuildDepth;
+ bool4 valid = int4(int(depth+1))+cdepth <= int4(mbd); // only select swaps that fulfill depth constraints
valid &= int4(c2) != int4(step);
if (none(valid)) continue;
size_t c1 = select_min(valid,area0123);

View file

@ -0,0 +1,15 @@
--- 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,33 +1,41 @@
embree-%%VERSION%%/benchmark
embree-%%VERSION%%/bvh_builder
embree-%%VERSION%%/displacement_geometry
embree-%%VERSION%%/dynamic_scene
embree-%%VERSION%%/hair_geometry
embree-%%VERSION%%/instanced_geometry
embree-%%VERSION%%/interpolation
embree-%%VERSION%%/intersection_filter
embree-%%VERSION%%/lazy_geometry
embree-%%VERSION%%/models/cornell_box.ecs
embree-%%VERSION%%/models/cornell_box.mtl
embree-%%VERSION%%/models/cornell_box.obj
embree-%%VERSION%%/models/subdiv0.xml
embree-%%VERSION%%/models/subdiv1.xml
embree-%%VERSION%%/models/subdiv2.xml
embree-%%VERSION%%/models/subdiv3.xml
embree-%%VERSION%%/models/subdiv4.xml
embree-%%VERSION%%/models/subdiv5.xml
embree-%%VERSION%%/models/subdiv6.xml
embree-%%VERSION%%/models/subdiv7.xml
embree-%%VERSION%%/models/subdiv8.xml
embree-%%VERSION%%/models/subdiv9.xml
embree-%%VERSION%%/motion_blur_geometry
embree-%%VERSION%%/pathtracer
embree-%%VERSION%%/retrace
embree-%%VERSION%%/subdivision_geometry
embree-%%VERSION%%/triangle_geometry
embree-%%VERSION%%/user_geometry
embree-%%VERSION%%/verify
embree-%%VERSION%%/viewer
bin/embree2/benchmark
bin/embree2/bvh_access
bin/embree2/bvh_builder
bin/embree2/convert
bin/embree2/curve_geometry
bin/embree2/displacement_geometry
bin/embree2/dynamic_scene
bin/embree2/hair_geometry
bin/embree2/instanced_geometry
bin/embree2/interpolation
bin/embree2/intersection_filter
bin/embree2/lazy_geometry
bin/embree2/models/cornell_box.ecs
bin/embree2/models/cornell_box.mtl
bin/embree2/models/cornell_box.obj
bin/embree2/models/curve0.xml
bin/embree2/models/curve1.xml
bin/embree2/models/linesegments.ecs
bin/embree2/models/linesegments.xml
bin/embree2/models/subdiv0.xml
bin/embree2/models/subdiv1.xml
bin/embree2/models/subdiv2.xml
bin/embree2/models/subdiv3.xml
bin/embree2/models/subdiv4.xml
bin/embree2/models/subdiv5.xml
bin/embree2/models/subdiv6.xml
bin/embree2/models/subdiv7.xml
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
bin/embree2/verify
bin/embree2/viewer
bin/embree2/viewer_stream
include/embree2/rtcore.h
include/embree2/rtcore.isph
include/embree2/rtcore_geometry.h
@ -38,6 +46,7 @@ include/embree2/rtcore_ray.h
include/embree2/rtcore_ray.isph
include/embree2/rtcore_scene.h
include/embree2/rtcore_scene.isph
lib/cmake/embree-%%VERSION%%/embree-config-default.cmake
lib/cmake/embree-%%VERSION%%/embree-config-version.cmake
lib/cmake/embree-%%VERSION%%/embree-config.cmake
lib/libembree.so