From f60defa72d5d20d99e3ad1d1ab3aeb8bc71833bf Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 10 Apr 2019 15:59:12 -0700 Subject: [PATCH] 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 --- .gitlab-ci.yml | 5 ++++- .gitlab-ci/debian-install.sh | 13 ++++++++++++- .gitlab-ci/meson-build.sh | 5 +++++ .gitlab-ci/run-shader-db.sh | 15 +++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 .gitlab-ci/run-shader-db.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a8a16f6c1fb..792bbfb13f7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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 diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 64f970fa81f..578074ddb87 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -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 diff --git a/.gitlab-ci/meson-build.sh b/.gitlab-ci/meson-build.sh index 04b0189e254..c7fef6fc315 100755 --- a/.gitlab-ci/meson-build.sh +++ b/.gitlab-ci/meson-build.sh @@ -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 diff --git a/.gitlab-ci/run-shader-db.sh b/.gitlab-ci/run-shader-db.sh new file mode 100755 index 00000000000..70a434c51c6 --- /dev/null +++ b/.gitlab-ci/run-shader-db.sh @@ -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 -- 2.30.2