diff options
author | Fernando Lopez Jr <fernando.lopezjr@gmail.com> | 2020-11-27 23:48:08 +0000 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2020-11-29 01:02:55 +0700 |
commit | e0be7bd6aac0fe39b722ba22b81867d119270fbb (patch) | |
tree | 7e44c493b753d729a3a46008144e032e92d76b66 /graphics/embree | |
parent | f136b77e97c51f488470ea83e5088f1afe600b72 (diff) |
graphics/embree: Added (ray tracing kernels)
Signed-off-by: Dave Woodfall <dave@slackbuilds.org>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'graphics/embree')
-rw-r--r-- | graphics/embree/README | 43 | ||||
-rw-r--r-- | graphics/embree/embree.SlackBuild | 144 | ||||
-rw-r--r-- | graphics/embree/embree.info | 10 | ||||
-rw-r--r-- | graphics/embree/slack-desc | 19 |
4 files changed, 216 insertions, 0 deletions
diff --git a/graphics/embree/README b/graphics/embree/README new file mode 100644 index 0000000000000..85e4ce2ad7730 --- /dev/null +++ b/graphics/embree/README @@ -0,0 +1,43 @@ +Intel® Embree is a collection of high-performance ray tracing kernels, +developed at Intel. The target users of Intel® Embree are graphics +application engineers who want to improve the performance of their +photo-realistic rendering application by leveraging Embree's +performance- optimized ray tracing kernels. The kernels are optimized +for the latest Intel® processors with support for SSE, AVX, AVX2, and +AVX-512 instructions. + +Intel® Embree supports runtime code selection to choose the traversal +and build algorithms that best matches the instruction set of your CPU. +We recommend using Intel® Embree through its API to get the highest +benefit from future improvements. Intel® Embree is released as Open +Source under the Apache 2.0 license. + +Intel® Embree supports applications written with the Intel® SPMD Program +Compiler (ISPC, https://ispc.github.io/) by also providing an ISPC +interface to the core ray tracing algorithms. This makes it possible to +write a renderer in ISPC that automatically vectorizes and leverages +SSE, AVX, AVX2, and AVX-512 instructions. ISPC also supports runtime +code selection, thus ISPC will select the best code path for your +application. + +Intel® Embree contains algorithms optimized for incoherent workloads +(e.g. Monte Carlo ray tracing algorithms) and coherent workloads (e.g. +primary visibility and hard shadow rays). + +The single-ray traversal kernels of Intel® Embree provide high +performance for incoherent workloads and are very easy to integrate into +existing rendering applications. Using the stream kernels, even higher +performance for incoherent rays is possible, but integration might +require significant code changes to the application to use the stream +paradigm. In general for coherent workloads, the stream mode with +coherent flag set gives the best performance. + +Intel® Embree also supports dynamic scenes by implementing +high-performance two-level spatial index structure construction +algorithms. + +In addition to the ray tracing kernels, Intel® Embree provides some +Embree Tutorials to demonstrate how to use the Embree API. + +Optional dependency: Intel® Threading Building Blocks (TBB) & Intel® +SPMD Program Compiler (ISPC) diff --git a/graphics/embree/embree.SlackBuild b/graphics/embree/embree.SlackBuild new file mode 100644 index 0000000000000..6a70fc784a2ee --- /dev/null +++ b/graphics/embree/embree.SlackBuild @@ -0,0 +1,144 @@ +#!/bin/sh + +# Slackware build script for embree + +# Copyright 2006-2014 Robby Workman, Northport, AL, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=embree +VERSION=${VERSION:-3.12.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* +cd $PRGNAM-$VERSION + +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +#EMBREE_API_NAMESPACE:STRING= +#EMBREE_BACKFACE_CULLING:BOOL=OFF +#EMBREE_COMPACT_POLYS:BOOL=OFF +#EMBREE_CURVE_SELF_INTERSECTION_AVOIDANCE_FACTOR:STRING=2.0 +#EMBREE_FILTER_FUNCTION:BOOL=ON +#EMBREE_GEOMETRY_CURVE:BOOL=ON +#EMBREE_GEOMETRY_GRID:BOOL=ON +#EMBREE_GEOMETRY_INSTANCE:BOOL=ON +#EMBREE_GEOMETRY_POINT:BOOL=ON +#EMBREE_GEOMETRY_QUAD:BOOL=ON +#EMBREE_GEOMETRY_SUBDIVISION:BOOL=ON +#EMBREE_GEOMETRY_TRIANGLE:BOOL=ON +#EMBREE_GEOMETRY_USER:BOOL=ON +#EMBREE_IGNORE_CMAKE_CXX_FLAGS:BOOL=ON +#EMBREE_IGNORE_INVALID_RAYS:BOOL=OFF +#EMBREE_INSTALL_DEPENDENCIES:BOOL=OFF +#EMBREE_ISA_AVX:BOOL=ON +#EMBREE_ISA_AVX2:BOOL=ON +#EMBREE_ISA_AVX512KNL:BOOL=OFF +#EMBREE_ISA_AVX512SKX:BOOL=ON +#EMBREE_ISA_SSE2:BOOL=ON +#EMBREE_ISA_SSE42:BOOL=ON +#EMBREE_ISPC_EXECUTABLE:FILEPATH=EMBREE_ISPC_EXECUTABLE-NOTFOUND +#EMBREE_ISPC_SUPPORT:BOOL=ON +#EMBREE_LIBRARY_NAME:STRING=embree3 +#EMBREE_MAX_INSTANCE_LEVEL_COUNT:STRING=1 +#EMBREE_MAX_ISA:STRING=NONE +#EMBREE_MIN_WIDTH:BOOL=OFF +#EMBREE_RAY_MASK:BOOL=OFF +#EMBREE_RAY_PACKETS:BOOL=ON +#EMBREE_STACK_PROTECTOR:BOOL=OFF +#EMBREE_STATIC_LIB:BOOL=OFF +#EMBREE_STAT_COUNTERS:BOOL=OFF +#EMBREE_TASKING_SYSTEM:STRING=TBB +#EMBREE_TUTORIALS:BOOL=ON +#EMBREE_ZIP_MODE:BOOL=OFF + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_MANDIR=/usr/man \ + -DCMAKE_INSTALL_DOCDIR=/usr/doc \ + -DEMBREE_ISPC_SUPPORT=OFF \ + -DEMBREE_TASKING_SYSTEM=OFF \ + -DEMBREE_TUTORIALS=OFF \ + -DCMAKE_BUILD_TYPE=Release .. + make VERBOSE=1 + make install DESTDIR=$PKG +cd .. + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + third-party-programs-TBB.txt third-party-programs.txt readme.pdf README.md LICENSE.txt CHANGELOG.md doc/* \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc -name "Makefile*" -exec rm {} \; +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/graphics/embree/embree.info b/graphics/embree/embree.info new file mode 100644 index 0000000000000..e5130250b49e4 --- /dev/null +++ b/graphics/embree/embree.info @@ -0,0 +1,10 @@ +PRGNAM="embree" +VERSION="3.12.1" +HOMEPAGE="https://www.embree.org" +DOWNLOAD="https://github.com/embree/embree/archive/v3.12.1/embree-3.12.1.tar.gz" +MD5SUM="2d24fa44db63ae1900cf6279140abd8a" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="glfw3" +MAINTAINER="Fernando Lopez Jr." +EMAIL="fernando.lopezjr@gmail.com" diff --git a/graphics/embree/slack-desc b/graphics/embree/slack-desc new file mode 100644 index 0000000000000..6f4f28dc10d32 --- /dev/null +++ b/graphics/embree/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +embree: embree (ray tracing kernels) +embree: +embree: Intel® Embree is a collection of high-performance ray tracing kernels, +embree: developed at Intel. +embree: The target users of Intel® Embree are graphics application engineers +embree: who want to improve the performance of their photo-realistic rendering +embree: application by leveraging Embree's performance-optimized ray tracing +embree: kernels. +embree: +embree: Homepage: https://www.embree.org/ +embree: |