gitlab-ci: Add a shader-db run using v3d on drm-shim.

This provides significant compiler coverage during CI at a fairly low
cost in CPU time (~17s per thread for 4 threads on
gst-gitlab-htz-runner3).

I'm leaving wget in the docker image, as once this is in master I'm
planning on having an automatic shader-db comparison between master
and the branch included in the artifacts.  I also haven't done
freedreno yet, because it has some races when run in multithreaded
mode that I'm still tracking down.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
This commit is contained in:
Eric Anholt 2019-04-10 15:59:12 -07:00
parent dd3d0b2897
commit f60defa72d
4 changed files with 36 additions and 2 deletions

View File

@ -14,7 +14,7 @@
# repository's registry will be used there as well.
variables:
UPSTREAM_REPO: mesa/mesa
DEBIAN_TAG: "2019-07-11"
DEBIAN_TAG: "2019-07-23"
DEBIAN_VERSION: stretch-slim
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
@ -66,6 +66,7 @@ debian:
- _build/meson-logs/*.txt
# scons:
- _build/*/config.log
- shader-db
variables:
CCACHE_COMPILERCHECK: "content"
# Use ccache transparently, and print stats before/after
@ -166,6 +167,7 @@ meson-main:
DRI_DRIVERS: "i915,i965,r100,r200,swrast,nouveau"
GALLIUM_ST: >
-D dri3=true
-D tools=drm-shim
-D gallium-extra-hud=true
-D gallium-vdpau=true
-D gallium-xvmc=true
@ -178,6 +180,7 @@ meson-main:
LLVM_VERSION: "7"
EXTRA_OPTION: >
-D tools=all
MESON_SHADERDB: "true"
meson-clover:
extends: .meson-build

View File

@ -57,6 +57,10 @@ apt-get install -y \
libxdamage-dev \
libxxf86vm-dev \
gcc \
git \
libepoxy-dev \
libegl1-mesa-dev \
libgbm-dev \
libclc-dev \
libxvmc-dev \
libomxil-bellagio-dev \
@ -196,6 +200,13 @@ tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.
cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
rm -rf $WAYLAND_PROTOCOLS_VERSION
pushd /usr/local
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
rm -rf shader-db/.git
cd shader-db
make
popd
# Use ccache to speed up builds
apt-get install -y ccache
@ -205,10 +216,10 @@ apt-get install -y libxml2-utils
# Remove unused packages
apt-get purge -y \
automake \
git \
libtool \
curl \
unzip \
wget \
gnupg \
software-properties-common
apt-get autoremove -y --purge

View File

@ -33,3 +33,8 @@ meson configure
ninja -j4
LC_ALL=C.UTF-8 ninja test
DESTDIR=$PWD/../install ninja install
cd ..
if test -n "$MESON_SHADERDB"; then
./.gitlab-ci/run-shader-db.sh;
fi

15
.gitlab-ci/run-shader-db.sh Executable file
View File

@ -0,0 +1,15 @@
set -e
set -v
ARTIFACTSDIR=`pwd`/shader-db
mkdir -p $ARTIFACTSDIR
export DRM_SHIM_DEBUG=true
LIBDIR=`pwd`/install/usr/local/lib
export LIBGL_DRIVERS_PATH=$LIBDIR/dri
cd /usr/local/shader-db
env LD_PRELOAD=$LIBDIR/libv3d_noop_drm_shim.so \
./run -j 4 ./shaders \
> $ARTIFACTSDIR/v3d-shader-db.txt