graphics/embree: Added (ray tracing kernels)

Signed-off-by: Dave Woodfall <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Fernando Lopez Jr 2020-11-27 23:48:08 +00:00 committed by Willy Sudiarto Raharjo
parent f136b77e97
commit e0be7bd6aa
No known key found for this signature in database
GPG key ID: 3F617144D7238786
4 changed files with 216 additions and 0 deletions

43
graphics/embree/README Normal file
View file

@ -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)

View file

@ -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}

View file

@ -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"

View file

@ -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: