gitlab-ci: Run piglit tests with llvmpipe

One job for the quick_gl profile, one for the glslparser & quick_shader
profiles (doing these together takes hardly any more time than
quick_shader alone).

v2:
* Don't break lava tests
v3:
* Remove piglit test artifacts paths:
* Exclude some quick_shader tests again:
  - Test whose result flips between pass/fail/skip
  - *@vs_in tests, as not the same one of these gets picked every time
v4:
* Do not list passing tests in .gitlab-ci/piglit/*.txt (Eric Anholt)
* Include the test number summary in .gitlab-ci/piglit/*.txt
* Completely disable generating any vs_in tests in the piglit build.
* Remove some more unneded files from the piglit build tree.
* Exclude quick_gl arb_gpu_shader5 tests; they were all skipped anyway,
  as llvmpipe doesn't support this extension yet, but occasionally they
  would spuriously fail instead.
v5:
* Set LD_LIBRARY_PATH, so we actually test the Mesa build from the
  pipeline...
* Verify that wflinfo reports the expected Mesa version
* Pass -noreset to Xvfb
v6:
* Don't use autoscale runners, run piglit with -j4 (Eric Anholt)

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Michel Dänzer 2019-10-22 17:16:52 +02:00 committed by Michel Dänzer
parent 4b25b5885b
commit 576f7b6ea5
8 changed files with 7267 additions and 11 deletions

View File

@ -445,23 +445,17 @@ scons-old-llvm:
- LLVM_VERSION=5.0 .gitlab-ci/scons-build.sh
.test:
extends: .ci-run-policy
extends:
- .ci-run-policy
- .use-debian-10:amd64
stage: test
variables:
GIT_STRATEGY: none # testing doesn't build anything from source
.deqp-test:
extends:
- .test
- .use-debian-10:amd64
variables:
DEQP_SKIPS: deqp-default-skips.txt
script:
before_script:
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
- rm -rf install
- tar -xf artifacts/install.tar
- LD_LIBRARY_PATH=install/lib ldd install/lib/{*,dri/swrast_dri}.so
- ./artifacts/deqp-runner.sh
artifacts:
when: on_failure
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
@ -473,6 +467,50 @@ scons-old-llvm:
- meson-main
- debian-10:amd64
.piglit-test:
extends: .test
artifacts:
reports:
junit: results/results.xml
variables:
LIBGL_ALWAYS_SOFTWARE: 1
PIGLIT_NO_WINDOW: 1
script:
- artifacts/piglit/run.sh
piglit-quick_gl:
extends: .piglit-test
variables:
LP_NUM_THREADS: 0
PIGLIT_OPTIONS: >
-x arb_gpu_shader5
-x glx-multithread-clearbuffer
-x glx-multithread-shader-compile
-x max-texture-size
-x maxsize
PIGLIT_PROFILES: quick_gl
piglit-glslparser+quick_shader:
extends: .piglit-test
variables:
LP_NUM_THREADS: 1
PIGLIT_OPTIONS: >
-x spec@arb_arrays_of_arrays@execution@ubo
-x spec@arb_gpu_shader_int64@execution$$
-x spec@arb_separate_shader_objects@execution
-x spec@arb_separate_shader_objects@linker
-x spec@arb_shader_storage_buffer_object@execution
-x spec@glsl-1.50@execution@built-in-functions
PIGLIT_PROFILES: "glslparser quick_shader"
PIGLIT_RESULTS: "glslparser+quick_shader"
.deqp-test:
extends: .test
variables:
DEQP_SKIPS: deqp-default-skips.txt
script:
- ./artifacts/deqp-runner.sh
test-llvmpipe-gles2:
parallel: 4
variables:

View File

@ -58,6 +58,7 @@ apt-get install -y --no-remove \
libtool \
libunwind-dev \
libvulkan-dev \
libwaffle-dev \
libx11-dev \
libx11-xcb-dev \
libxdamage-dev \
@ -72,8 +73,13 @@ apt-get install -y --no-remove \
pkg-config \
python-mako \
python3-mako \
python3-numpy \
python3-six \
scons \
waffle-utils \
x11proto-gl-dev \
xauth \
xvfb \
xz-utils \
zlib1g-dev
@ -240,6 +246,15 @@ for arch in $CROSS_ARCHITECTURES; do
fi
done
############### Build piglit
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
cd /piglit
git checkout 7a92b02210dabbba31ae5fd71272ea742346a9c8
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
ninja -j4
rm -rf .git .ninja* *.ninja **/CMake* **/cmake* ninja.* **/*.[chao] target_api
############### Build dEQP
@ -257,6 +272,7 @@ apt-get purge -y \
libgbm-dev \
libgles2-mesa-dev \
libtool \
libwaffle-dev \
unzip \
wget \
x11proto-gl-dev

View File

@ -139,8 +139,10 @@ lava-build:arm64:
.lava-test:
extends:
- .test
- .lava-ci-run-policy
stage: test
variables:
GIT_STRATEGY: none # testing doesn't build anything from source
script:
- lava_job_id=`lavacli jobs submit $CI_PROJECT_DIR/results/lava-deqp-$DEVICE_TYPE.yml`
- echo $lava_job_id

View File

@ -0,0 +1,36 @@
diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt
index 738526546..6f89048cd 100644
--- a/generated_tests/CMakeLists.txt
+++ b/generated_tests/CMakeLists.txt
@@ -206,11 +206,6 @@ piglit_make_generated_tests(
templates/gen_variable_index_write_tests/vs.shader_test.mako
templates/gen_variable_index_write_tests/fs.shader_test.mako
templates/gen_variable_index_write_tests/helpers.mako)
-piglit_make_generated_tests(
- vs_in_fp64.list
- gen_vs_in_fp64.py
- templates/gen_vs_in_fp64/columns.shader_test.mako
- templates/gen_vs_in_fp64/regular.shader_test.mako)
piglit_make_generated_tests(
shader_framebuffer_fetch_tests.list
gen_shader_framebuffer_fetch_tests.py)
@@ -279,7 +274,6 @@ add_custom_target(gen-gl-tests
gen_extensions_defined.list
vp-tex.list
variable_index_write_tests.list
- vs_in_fp64.list
gpu_shader4_tests.list
)
diff --git a/tests/sanity.py b/tests/sanity.py
index 12f1614c9..9019087e2 100644
--- a/tests/sanity.py
+++ b/tests/sanity.py
@@ -100,7 +100,6 @@ shader_tests = (
'spec/arb_tessellation_shader/execution/barrier-patch.shader_test',
'spec/arb_tessellation_shader/execution/built-in-functions/tcs-any-bvec4-using-if.shader_test',
'spec/arb_tessellation_shader/execution/sanity.shader_test',
- 'spec/arb_vertex_attrib_64bit/execution/vs_in/vs-input-uint_uvec4-double_dmat3x4_array2-position.shader_test',
'spec/glsl-1.50/execution/geometry-basic.shader_test',
'spec/oes_viewport_array/viewport-gs-write-simple.shader_test',
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

27
.gitlab-ci/piglit/run.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
set -e
set -o xtrace
VERSION=`cat artifacts/VERSION`
cd /piglit
PIGLIT_OPTIONS=$(echo $PIGLIT_OPTIONS | head -n 1)
xvfb-run --server-args="-noreset" sh -c \
"export LD_LIBRARY_PATH=$OLDPWD/install/lib;
wflinfo --platform glx --api gl --profile core | grep \"Mesa $VERSION\\\$\" &&
./piglit run -j4 --backend junit --process-isolation false $PIGLIT_OPTIONS $PIGLIT_PROFILES $OLDPWD/results"
PIGLIT_RESULTS=${PIGLIT_RESULTS:-$PIGLIT_PROFILES}
mkdir -p .gitlab-ci/piglit
cp $OLDPWD/artifacts/piglit/$PIGLIT_RESULTS.txt .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline
./piglit summary console $OLDPWD/results | head -n -1 | grep -v ": pass" >.gitlab-ci/piglit/$PIGLIT_RESULTS.txt
if diff -q .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,}; then
exit 0
fi
echo Unexpected change in results:
diff -u .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,}
exit 1

View File

@ -21,7 +21,9 @@ find install -name \*.so -exec $STRIP {} \;
# Test runs don't pull down the git tree, so put the dEQP helper
# script and associated bits there.
mkdir -p artifacts/
cp VERSION artifacts/
cp -Rp .gitlab-ci/deqp* artifacts/
cp -Rp .gitlab-ci/piglit artifacts/
# cp -Rp src/freedreno/ci/expected* artifacts/
# Tar up the install dir so that symlinks and hardlinks aren't each