Initial work on bundling script
Not finished, but has something workign already.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,5 +7,7 @@
|
||||
/config/*.cfg
|
||||
# Ignore generated datasets.
|
||||
/benchmark/website/dataset/*.js
|
||||
# Ignore configuration
|
||||
/bundle/config
|
||||
# Ignore Python cache
|
||||
__pycache__
|
108
bundle/bundle-linux.sh
Executable file
108
bundle/bundle-linux.sh
Executable file
@@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Prepares benchmark bundle for Linux.
|
||||
#
|
||||
# This is so called "works for me (tm)".
|
||||
#
|
||||
#
|
||||
# The following settings are to be passed via config file in this directory
|
||||
# or via environment variable:
|
||||
#
|
||||
# - STORAGE_DIRECTORY
|
||||
#
|
||||
# This is directory where persistent "temporary" files will be stored.
|
||||
# For example, this is where benchmark repository is being checked out.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
SCRIPT=$(readlink -f $0)
|
||||
SCRIPTPATH=`dirname $SCRIPT`
|
||||
|
||||
CONFIG="${SCRIPTPATH}/config"
|
||||
|
||||
if [ ! -f ${CONFIG} ]; then
|
||||
echo "Configuration is not provided, will expect all settings to be"
|
||||
echo "passed via environment variables."
|
||||
else
|
||||
. "${CONFIG}"
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# Initialization and sanity checks.
|
||||
|
||||
SVN_BENCHMARK_URL="https://svn.blender.org/svnroot/bf-blender/trunk/lib/benchmarks/cycles/"
|
||||
SVN_BENCHMARK_CHECKOUT_DIRECTORY="${STORAGE_DIRECTORY}/benchmark_scenes"
|
||||
BUNDLE_DIRECTORY="${STORAGE_DIRECTORY}/blender-benchmark"
|
||||
SCENES="barbershop_interior bmw27 classroom fishy_cat koro pavillon_barcelona victor"
|
||||
IMAGE_WIDTH=1600 # 800*2
|
||||
IMAGE_HEIGHT=740 # 370*2
|
||||
|
||||
SVN=`which svn`
|
||||
if [ -z "${SVN}" ]; then
|
||||
echo "ERROR: Subversion is not found, can not continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CONVERT=`which convert`
|
||||
if [ -z "${CONVERT}" ]; then
|
||||
echo "ERROR: ImageMagic's convert is not found, can not continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Make sure storage directory exists.
|
||||
if [ -z ${STORAGE_DIRECTORY} ]; then
|
||||
echo "ERROR: STORAGE_DIRECTORY is not specified, can not continue."
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p "${STORAGE_DIRECTORY}"
|
||||
|
||||
if [ -z "${BLENDER_VERSION}" ]; then
|
||||
echo ""
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# Check out benchmark repository.
|
||||
|
||||
|
||||
if [ -d "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}" ]; then
|
||||
echo "Updating benchmark scenes..."
|
||||
${SVN} up "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}"
|
||||
else
|
||||
echo "Making a new checkout of scenes..."
|
||||
${SVN} checkout "${SVN_BENCHMARK_URL}" "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}"
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# Package the bundle.
|
||||
|
||||
# We always start from scratch.
|
||||
rm -rf "${BUNDLE_DIRECTORY}"
|
||||
mkdir -p "${BUNDLE_DIRECTORY}"
|
||||
|
||||
# Create background to stack image on.
|
||||
BACKGROUND_IMAGE="${STORAGE_DIRECTORY}/background.png"
|
||||
${CONVERT} -size ${IMAGE_WIDTH}x${IMAGE_HEIGHT} xc:'rgb(51,51,51)' ${BACKGROUND_IMAGE}
|
||||
|
||||
# Copy scenes.
|
||||
mkdir -p "${BUNDLE_DIRECTORY}/scenes"
|
||||
echo "Bundling scenes..."
|
||||
for scene in ${SCENES}; do
|
||||
echo "Bundling scene ${scene}..."
|
||||
cp -r "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}/${scene}" "${BUNDLE_DIRECTORY}/scenes/${scene}"
|
||||
# Leave single scene only.
|
||||
rm -f "${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}_gpu.blend"
|
||||
mv "${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}_cpu.blend" "${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}.blend"
|
||||
# Tweak image.
|
||||
if true; then
|
||||
input="${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}.png"
|
||||
input_we=`basename "${input%.*}"`
|
||||
output_scaled="${STORAGE_DIRECTORY}/${input_we}_scaled.png"
|
||||
output_compo="${STORAGE_DIRECTORY}/${input_we}.png"
|
||||
${CONVERT} "${input}" -resize ${IMAGE_WIDTH}x${IMAGE_HEIGHT} "${output_scaled}"
|
||||
${CONVERT} ${BACKGROUND_IMAGE} "${output_scaled}" -gravity center -composite "${output_compo}"
|
||||
mv "${output_compo}" "${input}"
|
||||
rm ${output_scaled}
|
||||
fi
|
||||
done
|
Reference in New Issue
Block a user