egl/x11_dri3: implement EGL_KHR_swap_buffers_with_damage
[mesa.git] / .gitlab-ci / tracie-runner-gl.sh
index 28331e83cd3479b907c63862f7295494e76a6184..da4ce3987b61578112b4744300b47a14527fa4ad 100755 (executable)
@@ -2,10 +2,10 @@
 
 set -ex
 
-ARTIFACTS="$(pwd)/artifacts"
+INSTALL="$(pwd)/install"
 
 # Set up the driver environment.
-export LD_LIBRARY_PATH="$(pwd)/install/lib/"
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$(pwd)/install/lib/"
 
 # Set environment for renderdoc libraries.
 export PYTHONPATH="$PYTHONPATH:/renderdoc/build/lib"
@@ -15,20 +15,43 @@ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/renderdoc/build/lib"
 export LD_LIBRARY_PATH="/waffle/build/lib:$LD_LIBRARY_PATH"
 
 # Set environment for apitrace executable.
-export PATH=/apitrace/build:$PATH
+export PATH="/apitrace/build:$PATH"
+
+# Set environment for wflinfo executable.
+export PATH="/waffle/build/bin:$PATH"
 
 # Use the surfaceless EGL platform.
-export EGL_PLATFORM=surfaceless
+export EGL_PLATFORM="surfaceless"
 export DISPLAY=
-export WAFFLE_PLATFORM=surfaceless_egl
+export WAFFLE_PLATFORM="surfaceless_egl"
+
+# Our rootfs may not have "less", which apitrace uses during apitrace dump
+export PAGER=cat
+
+RESULTS=`pwd`/results
+mkdir -p $RESULTS
 
 # Perform a self-test to ensure tracie is working properly.
-"$ARTIFACTS/tracie/tests/test.sh"
+if [ -z "$TRACIE_NO_UNIT_TESTS" ]; then
+    TRACIE_UPLOAD_TO_MINIO=0 python3 -m pytest -v --pyargs $INSTALL/tracie/tests/test.py
+fi
+
+if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
+    # tracie is to use virpipe, and virgl_test_server llvmpipe
+    export GALLIUM_DRIVER="$GALLIUM_DRIVER"
 
-ret=0
+    GALLIUM_DRIVER=llvmpipe \
+    GALLIVM_PERF="nopt,no_filter_hacks" \
+    VTEST_USE_EGL_SURFACELESS=1 \
+    VTEST_USE_GLES=1 \
+    virgl_test_server >$RESULTS/vtest-log.txt 2>&1 &
 
-"$ARTIFACTS/tracie/tracie.sh" "$ARTIFACTS/traces.yml" renderdoc || ret=1
+    sleep 1
+fi
 
-"$ARTIFACTS/tracie/tracie.sh" "$ARTIFACTS/traces.yml" apitrace || ret=1
+# Sanity check to ensure that our environment is sufficient to make our tests
+# run against the Mesa built by CI, rather than any installed distro version.
+MESA_VERSION=$(cat "$INSTALL/VERSION" | sed 's/\./\\./g')
+wflinfo --platform surfaceless_egl --api gles2 | grep "Mesa $MESA_VERSION\(\s\|$\)"
 
-exit $ret
+python3 "$INSTALL/tracie/tracie.py" --file "$INSTALL/traces-$DRIVER_NAME.yml" --device-name "$DEVICE_NAME"