5c864b9ec1b89fff0b747cca6322f1aa4742559e
[mesa.git] / .gitlab-ci / tracie-runner-gl.sh
1 #!/bin/sh
2
3 set -ex
4
5 INSTALL="$(pwd)/install"
6
7 # Set up the driver environment.
8 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$(pwd)/install/lib/"
9
10 # Set environment for renderdoc libraries.
11 export PYTHONPATH="$PYTHONPATH:/renderdoc/build/lib"
12 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/renderdoc/build/lib"
13
14 # Set environment for the waffle library.
15 export LD_LIBRARY_PATH="/waffle/build/lib:$LD_LIBRARY_PATH"
16
17 # Set environment for apitrace executable.
18 export PATH="/apitrace/build:$PATH"
19
20 # Set environment for wflinfo executable.
21 export PATH="/waffle/build/bin:$PATH"
22
23 # Use the surfaceless EGL platform.
24 export EGL_PLATFORM="surfaceless"
25 export DISPLAY=
26 export WAFFLE_PLATFORM="surfaceless_egl"
27
28 # Our rootfs may not have "less", which apitrace uses during apitrace dump
29 export PAGER=cat
30
31 RESULTS=`pwd`/results
32 mkdir -p $RESULTS
33
34 # For artifact uploads to MinIO
35 cp install/.minio_credentials .
36
37 # Perform a self-test to ensure tracie is working properly.
38 if [ -z "$TRACIE_NO_UNIT_TESTS" ]; then
39 TRACIE_UPLOAD_TO_MINIO=0 python3 -m pytest -v --pyargs $INSTALL/tracie/tests/test.py
40 fi
41
42 if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
43 # tracie is to use virpipe, and virgl_test_server llvmpipe
44 export GALLIUM_DRIVER="$GALLIUM_DRIVER"
45
46 GALLIUM_DRIVER=llvmpipe \
47 GALLIVM_PERF="nopt,no_filter_hacks" \
48 VTEST_USE_EGL_SURFACELESS=1 \
49 VTEST_USE_GLES=1 \
50 virgl_test_server >$RESULTS/vtest-log.txt 2>&1 &
51
52 sleep 1
53 fi
54
55 # Sanity check to ensure that our environment is sufficient to make our tests
56 # run against the Mesa built by CI, rather than any installed distro version.
57 MESA_VERSION=$(cat "$INSTALL/VERSION" | sed 's/\./\\./g')
58 wflinfo --platform surfaceless_egl --api gles2 | grep "Mesa $MESA_VERSION\(\s\|$\)"
59
60 python3 "$INSTALL/tracie/tracie.py" --file "$INSTALL/traces.yml" --device-name "$DEVICE_NAME"