diff options
author | Eric Anholt <eric@anholt.net> | 2019-11-04 10:54:41 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2019-11-12 12:54:04 -0800 |
commit | f08c810028ba0ef264fb48d5ef0ddac08feef773 (patch) | |
tree | 94fdff594b5ae41f1c5463c2a21fee021ac91396 /.gitlab-ci.yml | |
parent | 7f52df7fc9bbfcd862320be8fbab4b82649aadf3 (diff) |
ci: Use cts_runner for our dEQP runs.
This runner is a little project by Bas, written in C++, that spawns
threads that then loop grabbing chunks of the (randomly shuffled but
consistently so) test list and hand it to a dEQP instance. As the
remaining list gets shorter, so do the chunks, so hopefully the
threads all complete effectively at once. It also handles restarting
after crashes automatically. I've extended the runner a bit to do
what I was doing in the bash scripts before, like the skip list and
expected failures handling. This project should also be a good
baseline for extending to handle retesting of intermittent failures.
By switching to it, we can have the swrast tests just take up one job
slot on the shared runners and keep their allotment of CPUs busy,
instead of taking up job slots with single-threaded dEQP jobs. It
will also let us (eventually, once I reprovision) switch the freedreno
runners over to threading within the job instead of running concurrent
jobs, so that memory scribbles in one pipeline don't affect unrelated
pipelines, and I can experiment with their parallelism (particularly
on a306 where we are frequently backed up) without trashing other
people's jobs.
What we lose in this process is per-test output in the log (not a big
loss, I think, since we summarize fails at the end and reducing log
length keeps chrome from choking on our logs so badly). We also drop
the renderer sanity checking, since it's not saving qpa files for us
to go poke through. Given that all the drivers involved have fail
lists, if we got the wrong renderer somehow, we'd get a job failure
anyway.
v2: Rebase on droppong of the autoscale cluster and the arm64
build/test split. Use a script to deduplicate the cts-runner
build.
v3: Rebase on the amd64 build/test container split.
Acked-by: Daniel Stone <daniels@collabora.com> (v1)
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> (v2)
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bc196134449..83f3346a1c6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,9 +15,9 @@ variables: UPSTREAM_REPO: mesa/mesa DEBIAN_TAG: "amd64-2019-11-13-2" - DEBIAN_TEST_TAG: "amd64-test-2019-11-12" + DEBIAN_TEST_TAG: "amd64-test-2019-11-12-2" DEBIAN_ARM64_TAG: "arm64v8-2019-11-06" - DEBIAN_ARM64_TEST_TAG: "arm64v8-test-2019-11-12" + DEBIAN_ARM64_TEST_TAG: "arm64v8-test-2019-11-12-2" STRETCH_TAG: "2019-09-18" DEBIAN_VERSION: buster-slim STRETCH_VERSION: stretch-slim @@ -520,19 +520,21 @@ piglit-glslparser+quick_shader: - ./artifacts/deqp-runner.sh test-llvmpipe-gles2: - parallel: 4 variables: DEQP_VER: gles2 + DEQP_PARALLEL: 4 + # Don't use threads inside llvmpipe, we've already got all 4 cores + # busy with DEQP_PARALLEL. + LP_NUM_THREADS: 0 DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt LIBGL_ALWAYS_SOFTWARE: "true" - DEQP_RENDERER_MATCH: "llvmpipe" extends: .deqp-test test-softpipe-gles2: extends: test-llvmpipe-gles2 variables: DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt - DEQP_RENDERER_MATCH: "softpipe" + DEQP_SKIPS: deqp-softpipe-skips.txt GALLIUM_DRIVER: "softpipe" # The GLES2 CTS run takes about 8 minutes of CPU time, while GLES3 is @@ -541,9 +543,9 @@ test-softpipe-gles2: test-softpipe-gles3-limited: variables: DEQP_VER: gles3 + DEQP_PARALLEL: 4 DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt LIBGL_ALWAYS_SOFTWARE: "true" - DEQP_RENDERER_MATCH: "softpipe" GALLIUM_DRIVER: "softpipe" CI_NODE_INDEX: 1 CI_NODE_TOTAL: 10 @@ -554,7 +556,6 @@ arm64_a630_gles2: image: $DEBIAN_ARM64_TEST_IMAGE variables: DEQP_VER: gles2 - DEQP_RENDERER_MATCH: "FD630" DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt DEQP_SKIPS: deqp-freedreno-a630-skips.txt NIR_VALIDATE: 0 @@ -584,6 +585,5 @@ arm64_a306_gles2: variables: DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt DEQP_SKIPS: deqp-default-skips.txt - DEQP_RENDERER_MATCH: "FD307" tags: - db410c |