|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
PROJECT_PATH="$(dirname $(readlink -f "$0"))/.."
|
|
|
|
|
|
|
|
cd ${PROJECT_PATH}
|
|
|
|
|
|
|
|
DOCKER_DRIVER=overlay2
|
|
|
|
DOCKER_IMAGE=virglrenderer/ci
|
|
|
|
|
|
|
|
# Use slightly less than half of available threads
|
|
|
|
NUM_THREADS=$(expr $(expr $(nproc) + 2) / 3)
|
|
|
|
|
|
|
|
# When running the erhm, CI, locally,
|
|
|
|
# do use HW based backends, which
|
|
|
|
# may introduce variabity.
|
|
|
|
RENDER_DEVICE=/dev/dri/renderD128
|
|
|
|
|
|
|
|
LOCAL_MESA_PATH="../$PROJECT_PATH/mesa"
|
|
|
|
LOCAL_VIRGL_PATH="${PROJECT_PATH}"
|
|
|
|
|
|
|
|
if test $NUM_THREADS -gt 0; then THREAD_CONFIG="-e NUM_THREADS=$NUM_THREADS"; fi
|
|
|
|
if test -e $RENDER_DEVICE; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
|
|
|
|
if test -e $LOCAL_MESA_PATH; then LOCAL_MESA="-v $LOCAL_MESA_PATH:/local_mesa -e LOCAL_MESA=/local_mesa"; fi
|
|
|
|
if test -e $LOCAL_VIRGL_PATH; then LOCAL_VIRGL="-v $LOCAL_VIRGL_PATH:/virglrenderer -e LOCAL_VIRGL=/virglrenderer"; fi
|
|
|
|
|
|
|
|
echo THREAD_CONFIG=$THREAD_CONFIG
|
|
|
|
echo RD_CONFIG=$RD_CONFIG
|
|
|
|
echo LOCAL_MESA=$LOCAL_MESA
|
|
|
|
echo LOCAL_VIRGL=$LOCAL_VIRGL
|
|
|
|
|
|
|
|
rm -rf $PROJECT_PATH/results
|
|
|
|
mkdir -p $PROJECT_PATH/results
|
|
|
|
|
|
|
|
time docker build -t $DOCKER_IMAGE -f ci/Dockerfile --cache-from $DOCKER_IMAGE:latest ci
|
|
|
|
|
|
|
|
time docker run \
|
|
|
|
-it \
|
|
|
|
--ulimit core=99999999999:99999999999 \
|
|
|
|
$THREAD_CONFIG \
|
|
|
|
$RD_CONFIG \
|
|
|
|
$LOCAL_MESA \
|
|
|
|
$LOCAL_VIRGL \
|
|
|
|
$DOCKER_IMAGE:latest \
|
|
|
|
bash -c "/virglrenderer/ci/run_tests.sh --make-check --deqp-gl --deqp-gles --piglit-gl --piglit-gles" 2>&1 | tee results/log.txt
|