ci: update piglit's version so it features replayer
[platform/upstream/mesa.git] / .gitlab-ci.yml
1 variables:
2   FDO_UPSTREAM_REPO: mesa/mesa
3   MESA_TEMPLATES_COMMIT: &ci-templates-commit 43ac932d5b8ebf43040d302de3c6e734df178384
4   CI_PRE_CLONE_SCRIPT: |-
5           set -o xtrace
6           /usr/bin/wget -q -O- ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | sh -
7           set +o xtrace
8
9 include:
10   - project: 'freedesktop/ci-templates'
11     ref: *ci-templates-commit
12     file:
13       - '/templates/ci-fairy.yml'
14   - project: 'freedesktop/ci-templates'
15     ref: 52dd4a94044449c8481d18dcdc221a3c636366d2
16     file:
17       - '/templates/debian.yml'
18   - local: '.gitlab-ci/lava-gitlab-ci.yml'
19   - local: '.gitlab-ci/test-source-dep.yml'
20
21 stages:
22   - sanity
23   - container
24   - container-2
25   - git-archive
26   - meson-x86_64
27   - build-misc
28   - amd
29   - arm
30   - freedreno
31   - raspberrypi
32   - software-renderer
33   - layered-backends
34   - deploy
35   - success
36
37 # Generic rule to not run the job during scheduled pipelines
38 # ----------------------------------------------------------
39 .scheduled_pipelines-rules:
40   rules: &ignore_scheduled_pipelines
41     if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
42     when: never
43
44 # YAML anchors for rule conditions
45 # --------------------------------
46 .rules-anchors:
47   rules:
48     # For Marge Bot
49     - if: &is-for-marge '$GITLAB_USER_LOGIN == "marge-bot"'
50       when: never
51     # Forked project branch
52     - if: &is-forked-branch '$CI_PROJECT_NAMESPACE != "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
53       when: manual
54     # Forked project branch / pre-merge pipeline
55     - if: &is-forked-branch-or-pre-merge '$CI_PROJECT_NAMESPACE != "mesa" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
56       when: manual
57     # Pipeline runs for the master branch of the main project
58     - if: &is-main-master '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == "master" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != "master"'
59       when: always
60     # Post-merge pipeline
61     - if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
62       when: on_success
63     # Post-merge pipeline, not for Marge Bot
64     - if: &is-post-merge-not-for-marge '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
65       when: on_success
66     # Pre-merge pipeline
67     - if: &is-pre-merge '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
68       when: on_success
69     # Pre-merge pipeline for Marge Bot
70     - if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
71       when: on_success
72
73
74 .docs-base:
75   extends:
76     - .fdo.ci-fairy
77     - .ci-run-policy
78   script:
79   - apk --no-cache add graphviz
80   - pip3 install sphinx sphinx_rtd_theme
81   - sphinx-build -b html docs public
82
83 pages:
84   extends: .docs-base
85   stage: deploy
86   artifacts:
87     paths:
88     - public
89   needs: []
90   rules:
91     - *ignore_scheduled_pipelines
92     - if: *is-main-master
93       changes: &docs-or-ci
94       - docs/**/*
95       - .gitlab-ci.yml
96       when: always
97     # Other cases default to never
98
99 test-docs:
100   extends: .docs-base
101   # Cancel job if a newer commit is pushed to the same branch
102   interruptible: true
103   stage: deploy
104   needs: []
105   rules:
106     - *ignore_scheduled_pipelines
107     - if: *is-forked-branch
108       changes: *docs-or-ci
109       when: manual
110     # Other cases default to never
111
112 test-docs-mr:
113   extends:
114     - test-docs
115   needs:
116     - sanity
117   rules:
118     - if: *is-pre-merge-for-marge
119       changes: *docs-or-ci
120       when: on_success
121     - if: *is-pre-merge
122       changes: *docs-or-ci
123       when: manual
124     # Other cases default to never
125
126 # When to automatically run the CI
127 .ci-run-policy:
128   rules:
129     - *ignore_scheduled_pipelines
130     # If any files affecting the pipeline are changed, build/test jobs run
131     # automatically once all dependency jobs have passed
132     - changes: &all_paths
133       - VERSION
134       - bin/git_sha1_gen.py
135       - bin/install_megadrivers.py
136       - bin/meson_get_version.py
137       - bin/symbols-check.py
138       # GitLab CI
139       - .gitlab-ci.yml
140       - .gitlab-ci/**/*
141       # Meson
142       - meson*
143       - build-support/**/*
144       - subprojects/**/*
145       # SCons
146       - SConstruct
147       - scons/**/*
148       - common.py
149       # Source code
150       - include/**/*
151       - src/**/*
152       when: on_success
153     # Otherwise, build/test jobs won't run
154     - when: never
155   retry:
156     max: 2
157     when:
158       - runner_system_failure
159
160 success:
161   stage: success
162   image: debian:stable-slim
163   rules:
164     - *ignore_scheduled_pipelines
165     - if: *is-post-merge
166       when: never
167     - if: *is-for-marge
168       changes: *docs-or-ci
169       when: never
170     - changes: *all_paths
171       when: never
172     - if: *is-pre-merge
173       when: on_success
174   variables:
175     GIT_STRATEGY: none
176   script:
177     - echo "Dummy job to make sure every merge request pipeline runs at least one job"
178
179
180 .ci-deqp-artifacts:
181   artifacts:
182     name: "mesa_${CI_JOB_NAME}"
183     when: always
184     untracked: false
185     paths:
186       # Watch out!  Artifacts are relative to the build dir.
187       # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
188       - artifacts
189
190 # Build the CI docker images.
191 #
192 # MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the
193 # image doesn't exist yet, the container stage job generates it.
194 #
195 # In order to generate a new image, one should generally change the tag.
196 # While removing the image from the registry would also work, that's not
197 # recommended except for ephemeral images during development: Replacing
198 # an image after a significant amount of time might pull in newer
199 # versions of gcc/clang or other packages, which might break the build
200 # with older commits using the same tag.
201 #
202 # After merging a change resulting in generating a new image to the
203 # main repository, it's recommended to remove the image from the source
204 # repository's container registry, so that the image from the main
205 # repository's registry will be used there as well.
206
207 .container:
208   stage: container
209   extends:
210     - .ci-run-policy
211   rules:
212     - *ignore_scheduled_pipelines
213     # Run pipeline by default in the main project if any CI pipeline
214     # configuration files were changed, to ensure docker images are up to date
215     - if: *is-post-merge
216       changes:
217       - .gitlab-ci.yml
218       - .gitlab-ci/**/*
219       when: on_success
220     # Run pipeline by default if it was triggered by Marge Bot, is for a
221     # merge request, and any files affecting the pipeline were changed
222     - if: *is-pre-merge-for-marge
223       changes:
224         *all_paths
225       when: on_success
226     # Run pipeline by default in the main project if it was not triggered by
227     # Marge Bot, and any files affecting the pipeline were changed
228     - if: *is-post-merge-not-for-marge
229       changes:
230         *all_paths
231       when: on_success
232     # Allow triggering jobs manually in other cases if any files affecting the
233     # pipeline were changed
234     - changes:
235         *all_paths
236       when: manual
237     # Otherwise, container jobs won't run
238     - when: never
239   variables:
240     FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}-${MESA_TEMPLATES_COMMIT}"
241     FDO_DISTRIBUTION_VERSION: buster-slim
242     FDO_REPO_SUFFIX: "debian/$CI_JOB_NAME"
243     FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
244     # no need to pull the whole repo to build the container image
245     GIT_STRATEGY: none
246
247 .use-base-image:
248   extends:
249     - .container
250     # Don't want the .container rules
251     - .ci-run-policy
252   stage: container-2
253   variables:
254     FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}-${MESA_TEMPLATES_COMMIT}"
255
256 # Debian 10 based x86 build image base
257 x86_build-base:
258   extends:
259     - .fdo.container-build@debian
260     - .container
261   variables:
262     MESA_IMAGE_TAG: &x86_build-base "2020-12-17-use-ephemeral"
263
264 .use-x86_build-base:
265   extends:
266     - .fdo.container-build@debian
267     - .use-base-image
268   variables:
269     MESA_BASE_IMAGE: "debian/x86_build-base"
270     MESA_BASE_TAG: *x86_build-base
271   needs:
272     - x86_build-base
273
274 # Debian 10 based x86 main build image
275 x86_build:
276   extends:
277     - .use-x86_build-base
278   variables:
279     MESA_IMAGE_TAG: &x86_build "2020-12-17-use-ephemeral"
280
281 .use-x86_build:
282   variables:
283     TAG: *x86_build
284   image: "$CI_REGISTRY_IMAGE/debian/x86_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
285   needs:
286     - x86_build
287
288 # Debian 10 based i386 cross-build image
289 i386_build:
290   extends:
291     - .use-x86_build-base
292   variables:
293     MESA_IMAGE_TAG: &i386_build "2020-12-17-use-ephemeral"
294
295 .use-i386_build:
296   variables:
297     TAG: *i386_build
298   image: "$CI_REGISTRY_IMAGE/debian/i386_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
299   needs:
300     - i386_build
301
302 # Debian 10 based ppc64el cross-build image
303 ppc64el_build:
304   extends:
305     - .use-x86_build-base
306   variables:
307     MESA_IMAGE_TAG: &ppc64el_build "2020-12-17-use-ephemeral"
308
309 .use-ppc64el_build:
310   variables:
311     TAG: *ppc64el_build
312   image: "$CI_REGISTRY_IMAGE/debian/ppc64el_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
313   needs:
314     - ppc64el_build
315
316 # Debian 10 based s390x cross-build image
317 s390x_build:
318   extends:
319     - .use-x86_build-base
320   variables:
321     MESA_IMAGE_TAG: &s390x_build "2020-12-17-use-ephemeral"
322
323 .use-s390x_build:
324   variables:
325     TAG: *s390x_build
326   image: "$CI_REGISTRY_IMAGE/debian/s390x_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
327   needs:
328     - s390x_build
329
330 # Android NDK cross-build image
331 android_build:
332   extends:
333     - .use-x86_build-base
334   variables:
335     MESA_IMAGE_TAG: &android_build "2020-12-17-use-ephemeral"
336
337 .use-android_build:
338   variables:
339     TAG: *android_build
340   image: "$CI_REGISTRY_IMAGE/debian/android_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
341   needs:
342     - android_build
343
344 # Debian 10 based x86 test image base
345 x86_test-base:
346   extends: x86_build-base
347   variables:
348     MESA_IMAGE_TAG: &x86_test-base "2020-12-17-install-ci-fairy"
349
350 .use-x86_test-base:
351   extends:
352     - .fdo.container-build@debian
353     - .use-base-image
354   variables:
355     MESA_BASE_IMAGE: "debian/x86_test-base"
356     MESA_BASE_TAG: *x86_test-base
357   needs:
358     - x86_test-base
359
360 # Debian 10 based x86 test image for GL
361 x86_test-gl:
362   extends: .use-x86_test-base
363   variables:
364     MESA_IMAGE_TAG: &x86_test-gl "2020-12-18-piglit-replayer"
365
366 # Debian 10 based x86 test image for VK
367 x86_test-vk:
368   extends: .use-x86_test-base
369   variables:
370     MESA_IMAGE_TAG: &x86_test-vk "2020-12-18-piglit-replayer"
371
372 # Debian 10 based ARM build image
373 arm_build:
374   extends:
375     - .fdo.container-build@debian@arm64v8
376     - .container
377   variables:
378     MESA_IMAGE_TAG: &arm_build "2020-12-02"
379
380 .use-arm_build:
381   variables:
382     TAG: *arm_build
383   image: "$CI_REGISTRY_IMAGE/debian/arm_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
384   needs:
385     - arm_build
386
387 # Debian 10 based x86 baremetal image base
388 arm_test-base:
389   extends:
390     - .fdo.container-build@debian
391     - .container
392   variables:
393     MESA_IMAGE_TAG: &arm_test-base "2020-12-03-expect"
394
395 .use-arm_test-base:
396   extends:
397     - .fdo.container-build@debian
398     - .use-base-image
399   variables:
400     MESA_BASE_IMAGE: "debian/arm_test-base"
401     MESA_BASE_TAG: *arm_test-base
402   needs:
403     - arm_test-base
404
405 # x86 image with ARM64 rootfs for baremetal testing.
406 arm64_test:
407   extends:
408     - .use-arm_test-base
409   variables:
410     MESA_IMAGE_TAG: &arm64_test "2020-12-17-fdo-upstream-repo"
411
412 .use-arm64_test:
413   variables:
414     TAG: *arm64_test
415   image: "$CI_REGISTRY_IMAGE/debian/arm64_test:${TAG}-${MESA_TEMPLATES_COMMIT}"
416   needs:
417     - arm64_test
418
419 # x86 image with armhf rootfs for baremetal testing
420 armhf_test:
421   extends:
422     - .use-arm_test-base
423   variables:
424     MESA_IMAGE_TAG: &armhf_test "2020-12-17-fdo-upstream-repo"
425
426 .use-armhf_test:
427   variables:
428     TAG: *armhf_test
429   image: "$CI_REGISTRY_IMAGE/debian/armhf_test:${TAG}-${MESA_TEMPLATES_COMMIT}"
430   needs:
431     - armhf_test
432
433 # Native Windows docker builds
434 #
435 # Unlike the above Linux-based builds - including MinGW/SCons builds which
436 # cross-compile for Windows - which use the freedesktop ci-templates, we
437 # cannot use the same scheme here. As Windows lacks support for
438 # Docker-in-Docker, and Podman does not run natively on Windows, we have
439 # to open-code much of the same ourselves.
440 #
441 # This is achieved by first running in a native Windows shell instance
442 # (host PowerShell) in the container stage to build and push the image,
443 # then in the build stage by executing inside Docker.
444
445 .windows-docker-vs2019:
446   variables:
447     WINDOWS_TAG: "2020-12-02"
448     WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/windows/x64_build:${WINDOWS_TAG}-${MESA_TEMPLATES_COMMIT}"
449     WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows/x64_build:${WINDOWS_TAG}-${MESA_TEMPLATES_COMMIT}"
450
451 windows_build_vs2019:
452   extends:
453     - .container
454     - .windows-docker-vs2019
455   stage: container
456   variables:
457     GIT_STRATEGY: fetch # we do actually need the full repository though
458   timeout: 2h # LLVM + piglit takes ages
459   tags:
460     - windows
461     - shell
462     - "1809"
463     - mesa
464   script:
465     - .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $WINDOWS_IMAGE $WINDOWS_UPSTREAM_IMAGE
466
467 .use-windows_build_vs2019:
468   extends: .windows-docker-vs2019
469   image: "$WINDOWS_IMAGE"
470   needs:
471     - windows_build_vs2019
472
473
474 # Git archive
475
476 make git archive:
477   extends:
478     - .fdo.ci-fairy
479   stage: git-archive
480   rules:
481     - if: *is-scheduled-pipeline
482       when: on_success
483   # ensure we are running on packet
484   tags:
485     - packet.net
486   script:
487     # Compactify the .git directory
488     - git gc --aggressive
489     # compress the current folder
490     - tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
491
492     # login with the JWT token
493     - ci-fairy minio login $CI_JOB_JWT
494     - ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://minio-packet.freedesktop.org/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
495
496
497 # Sanity checks of MR settings and commit logs
498 sanity:
499   extends:
500     - .fdo.ci-fairy
501   stage: sanity
502   rules:
503     - if: *is-pre-merge
504       when: on_success
505     # Other cases default to never
506   variables:
507     GIT_STRATEGY: none
508   script:
509     # ci-fairy check-commits --junit-xml=check-commits.xml
510     - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
511   artifacts:
512     when: on_failure
513     reports:
514       junit: check-*.xml
515
516
517 # BUILD
518
519 # Shared between windows and Linux
520 .build-common:
521   extends: .ci-run-policy
522   # Cancel job if a newer commit is pushed to the same branch
523   interruptible: true
524   artifacts:
525     name: "mesa_${CI_JOB_NAME}"
526     when: always
527     paths:
528       - _build/meson-logs/*.txt
529       # scons:
530       - build/*/config.log
531       - shader-db
532
533 # Just Linux
534 .build-linux:
535   extends: .build-common
536   variables:
537     CCACHE_COMPILERCHECK: "content"
538     CCACHE_COMPRESS: "true"
539     CCACHE_DIR: /cache/mesa/ccache
540   # Use ccache transparently, and print stats before/after
541   before_script:
542     - export PATH="/usr/lib/ccache:$PATH"
543     - export CCACHE_BASEDIR="$PWD"
544     - ccache --show-stats
545   after_script:
546     - ccache --show-stats
547
548 .build-windows:
549   extends: .build-common
550   tags:
551     - windows
552     - docker
553     - "1809"
554     - mesa
555   cache:
556     key: ${CI_JOB_NAME}
557     paths:
558       - subprojects/packagecache
559
560 .meson-build:
561   extends:
562     - .build-linux
563     - .use-x86_build
564   stage: meson-x86_64
565   variables:
566     LLVM_VERSION: 10
567   script:
568     - .gitlab-ci/meson-build.sh
569
570 .scons-build:
571   extends:
572     - .build-linux
573     - .use-x86_build
574   stage: build-misc
575   script:
576     - env SCONSFLAGS="-j${FDO_CI_CONCURRENT:-4}" .gitlab-ci/scons-build.sh
577
578 meson-testing:
579   extends:
580     - .meson-build
581     - .ci-deqp-artifacts
582   variables:
583     UNWIND: "enabled"
584     DRI_LOADERS: >
585       -D glx=dri
586       -D gbm=enabled
587       -D egl=enabled
588       -D platforms=x11
589     GALLIUM_ST: >
590       -D dri3=enabled
591     GALLIUM_DRIVERS: "swrast,virgl,radeonsi"
592     VULKAN_DRIVERS: "swrast,amd"
593     BUILDTYPE: "debugoptimized"
594     EXTRA_OPTION: >
595       -D werror=true
596     UPLOAD_FOR_LAVA: 1
597     DEBIAN_ARCH: amd64
598   script:
599     - .gitlab-ci/meson-build.sh
600     - .gitlab-ci/prepare-artifacts.sh
601
602 meson-testing-asan:
603   extends:
604     - meson-testing
605   variables:
606     EXTRA_OPTION: >
607       -D b_sanitize=address
608     UPLOAD_FOR_LAVA: ""
609
610 meson-clover-testing:
611   extends:
612     - .meson-build
613     - .ci-deqp-artifacts
614   variables:
615     UNWIND: "enabled"
616     LLVM_VERSION: 10
617     DRI_LOADERS: >
618       -D glx=disabled
619       -D egl=disabled
620       -D gbm=disabled
621     GALLIUM_ST: >
622       -D gallium-opencl=icd
623       -D opencl-spirv=true
624     GALLIUM_DRIVERS: "swrast"
625     BUILDTYPE: "debugoptimized"
626     EXTRA_OPTION: >
627       -D werror=true
628   script:
629     - .gitlab-ci/meson-build.sh
630     - .gitlab-ci/prepare-artifacts.sh
631
632 meson-gallium:
633   extends: .meson-build
634   variables:
635     UNWIND: "enabled"
636     DRI_LOADERS: >
637       -D glx=dri
638       -D gbm=enabled
639       -D egl=enabled
640       -D platforms=x11,wayland
641     GALLIUM_ST: >
642       -D dri3=enabled
643       -D gallium-extra-hud=true
644       -D gallium-vdpau=enabled
645       -D gallium-xvmc=enabled
646       -D gallium-omx=bellagio
647       -D gallium-va=enabled
648       -D gallium-xa=enabled
649       -D gallium-nine=true
650       -D gallium-opencl=disabled
651     GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
652     VULKAN_DRIVERS: swrast
653     EXTRA_OPTION: >
654       -D osmesa=true
655       -D tools=all
656       -D werror=true
657   script:
658     - .gitlab-ci/meson-build.sh
659     - .gitlab-ci/run-shader-db.sh
660     - src/freedreno/.gitlab-ci/run-fdtools.sh
661
662 # Test a release build with -Werror so new warnings don't sneak in.
663 meson-release:
664   extends: .meson-build
665   variables:
666     UNWIND: "enabled"
667     DRI_LOADERS: >
668       -D glx=dri
669       -D gbm=enabled
670       -D egl=enabled
671       -D platforms=x11,wayland
672     GALLIUM_ST: >
673       -D dri3=enabled
674       -D gallium-extra-hud=true
675       -D gallium-vdpau=enabled
676       -D gallium-xvmc=disabled
677       -D gallium-omx=disabled
678       -D gallium-va=enabled
679       -D gallium-xa=enabled
680       -D gallium-nine=false
681       -D gallium-opencl=disabled
682       -D llvm=false
683     GALLIUM_DRIVERS: "nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
684     BUILDTYPE: "release"
685     EXTRA_OPTION: >
686       -D osmesa=true
687       -D tools=all
688       -D werror=true
689   script:
690     - .gitlab-ci/meson-build.sh
691
692 meson-android:
693   extends:
694     - .meson-cross
695     - .use-android_build
696   variables:
697     UNWIND: "disabled"
698     DRI_LOADERS: >
699       -D glx=disabled
700       -D gbm=disabled
701       -D egl=enabled
702       -D platforms=android
703     EXTRA_OPTION: >
704       -D android-stub=true
705       -D llvm=disabled
706       -D platform-sdk-version=26
707     GALLIUM_ST: >
708       -D dri3=disabled
709       -D gallium-vdpau=disabled
710       -D gallium-xvmc=disabled
711       -D gallium-omx=disabled
712       -D gallium-va=disabled
713       -D gallium-xa=disabled
714       -D gallium-nine=false
715       -D gallium-opencl=disabled
716     LLVM_VERSION: ""
717   script:
718     # arm64 build: Can't build v3d/vc4 because they require expat for v3d_decode.
719     - PKG_CONFIG_PATH=/usr/local/lib/aarch64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/pkgconfig/ CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost VULKAN_DRIVERS=freedreno .gitlab-ci/meson-build.sh
720     # x86_64 build:
721     # Can't do Intel because gen_decoder.c currently requires libexpat, which
722     # is not a dependency that AOSP wants to accept.  Can't do Radeon because
723     # it requires LLVM, which we don't have an Android build of.
724     # - PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=intel .gitlab-ci/meson-build.sh
725
726 .meson-cross:
727   extends:
728     - .meson-build
729   stage: build-misc
730   variables:
731     UNWIND: "disabled"
732     DRI_LOADERS: >
733       -D glx=disabled
734       -D gbm=disabled
735       -D egl=enabled
736       -D platforms=[]
737       -D osmesa=false
738     GALLIUM_ST: >
739       -D dri3=disabled
740       -D gallium-vdpau=disabled
741       -D gallium-xvmc=disabled
742       -D gallium-omx=disabled
743       -D gallium-va=disabled
744       -D gallium-xa=disabled
745       -D gallium-nine=false
746     LLVM_VERSION: "8"
747
748 .meson-arm:
749   extends:
750     - .meson-cross
751     - .use-arm_build
752   needs:
753     - arm_build
754   variables:
755     VULKAN_DRIVERS: freedreno,broadcom
756     GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
757     BUILDTYPE: "debugoptimized"
758   tags:
759     - aarch64
760
761 meson-armhf:
762   extends:
763     - .meson-arm
764     - .ci-deqp-artifacts
765   variables:
766     CROSS: armhf
767     LLVM_VERSION: "7"
768     EXTRA_OPTION: >
769       -D llvm=disabled
770     UPLOAD_FOR_LAVA: 1
771     DEBIAN_ARCH: armhf
772   script:
773     - .gitlab-ci/meson-build.sh
774     - .gitlab-ci/prepare-artifacts.sh
775
776 meson-arm64:
777   extends:
778     - .meson-arm
779     - .ci-deqp-artifacts
780   variables:
781     VULKAN_DRIVERS: "freedreno,broadcom"
782     EXTRA_OPTION: >
783       -D llvm=disabled
784     UPLOAD_FOR_LAVA: 1
785     DEBIAN_ARCH: arm64
786   script:
787     - .gitlab-ci/meson-build.sh
788     - .gitlab-ci/prepare-artifacts.sh
789
790 meson-arm64-build-test:
791   extends:
792     - .meson-arm
793     - .ci-deqp-artifacts
794   variables:
795     VULKAN_DRIVERS: "amd"
796     EXTRA_OPTION: >
797       -Dtools=panfrost
798       -D werror=true
799   script:
800     - .gitlab-ci/meson-build.sh
801
802 meson-clang:
803   extends: .meson-build
804   variables:
805     UNWIND: "enabled"
806     DRI_LOADERS: >
807       -D glvnd=true
808     DRI_DRIVERS: "auto"
809     GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra"
810     VULKAN_DRIVERS: intel,amd,freedreno,broadcom
811     CC: "ccache clang-10"
812     CXX: "ccache clang++-10"
813
814 meson-windows-vs2019:
815   extends:
816     - .build-windows
817     - .use-windows_build_vs2019
818     - .windows-build-rules
819   stage: build-misc
820   script:
821     - . .\.gitlab-ci\windows\mesa_build.ps1
822   artifacts:
823     paths:
824       - _install/
825
826 test-d3d12-windows:
827   extends:
828     - .build-windows
829     - .use-windows_build_vs2019
830     - .windows-test-rules
831   stage: layered-backends
832   dependencies:
833     - meson-windows-vs2019
834   needs:
835     - meson-windows-vs2019
836   variables:
837     GIT_STRATEGY: none # testing doesn't build anything from source
838     GALLIUM_DRIVER: d3d12
839     PIGLIT_PROFILE: quick_gl
840     PIGLIT_OPTIONS: -x nv_copy_depth_to_color -x repeat-wait
841   script:
842     - . _install/piglit_run.ps1
843   artifacts:
844     when: on_failure
845     name: "mesa_${CI_JOB_NAME}"
846     paths:
847       - summary/
848
849 scons-win64:
850   extends: .scons-build
851   variables:
852     SCONS_TARGET: platform=windows machine=x86_64 debug=1
853     SCONS_CHECK_COMMAND: "true"
854   allow_failure: true
855
856 meson-clover:
857   extends: .meson-build
858   variables:
859     UNWIND: "enabled"
860     DRI_LOADERS: >
861       -D glx=disabled
862       -D egl=disabled
863       -D gbm=disabled
864     GALLIUM_DRIVERS: "r600,radeonsi"
865     GALLIUM_ST: >
866       -D dri3=disabled
867       -D gallium-vdpau=disabled
868       -D gallium-xvmc=disabled
869       -D gallium-omx=disabled
870       -D gallium-va=disabled
871       -D gallium-xa=disabled
872       -D gallium-nine=false
873       -D gallium-opencl=icd
874     EXTRA_OPTION: >
875       -D werror=true
876   script:
877     - LLVM_VERSION=8 .gitlab-ci/meson-build.sh
878     - LLVM_VERSION=9 .gitlab-ci/meson-build.sh
879     - .gitlab-ci/meson-build.sh
880
881 meson-vulkan:
882   extends: .meson-build
883   variables:
884     UNWIND: "disabled"
885     DRI_LOADERS: >
886       -D glx=disabled
887       -D gbm=disabled
888       -D egl=disabled
889       -D platforms=x11,wayland
890       -D osmesa=false
891     GALLIUM_ST: >
892       -D dri3=enabled
893       -D gallium-vdpau=disabled
894       -D gallium-xvmc=disabled
895       -D gallium-omx=disabled
896       -D gallium-va=disabled
897       -D gallium-xa=disabled
898       -D gallium-nine=false
899       -D gallium-opencl=disabled
900       -D b_sanitize=undefined
901       -D c_args=-fno-sanitize-recover=all
902       -D cpp_args=-fno-sanitize-recover=all
903     UBSAN_OPTIONS: "print_stacktrace=1"
904     VULKAN_DRIVERS: intel,amd,freedreno,broadcom
905     EXTRA_OPTION: >
906       -D vulkan-overlay-layer=true
907       -D vulkan-device-select-layer=true
908       -D build-aco-tests=true
909       -D werror=true
910
911 meson-i386:
912   extends:
913     - .meson-cross
914     - .use-i386_build
915   variables:
916     CROSS: i386
917     VULKAN_DRIVERS: intel,amd
918     GALLIUM_DRIVERS: "iris,r300,radeonsi,swrast,virgl"
919     EXTRA_OPTION: >
920       -D vulkan-overlay-layer=true
921       -D vulkan-device-select-layer=true
922       -D werror=true
923
924 meson-s390x:
925   extends:
926     - .meson-cross
927     - .use-s390x_build
928   tags:
929     - kvm
930   variables:
931     CROSS: s390x
932     EXTRA_OPTION: >
933       -D werror=true
934     GALLIUM_DRIVERS: "swrast"
935
936 meson-ppc64el:
937   extends:
938     - meson-s390x
939     - .use-ppc64el_build
940   variables:
941     CROSS: ppc64el
942     EXTRA_OPTION: ""
943     GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl"
944     VULKAN_DRIVERS: "amd"
945
946 meson-mingw32-x86_64:
947   extends: .meson-build
948   stage: build-misc
949   variables:
950     UNWIND: "disabled"
951     DRI_DRIVERS: ""
952     GALLIUM_DRIVERS: "swrast"
953     EXTRA_OPTION: >
954       -Dllvm=disabled
955       -Dosmesa=true
956       --cross-file=.gitlab-ci/x86_64-w64-mingw32
957
958 .test:
959   extends:
960     - .ci-run-policy
961   # Cancel job if a newer commit is pushed to the same branch
962   interruptible: true
963   variables:
964     GIT_STRATEGY: none # testing doesn't build anything from source
965   before_script:
966     # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
967     - rm -rf install
968     - tar -xf artifacts/install.tar
969     - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
970   artifacts:
971     when: always
972     name: "mesa_${CI_JOB_NAME}"
973     paths:
974       - results/
975
976 .use-x86_test-gl:
977   extends:
978     - .test
979   variables:
980     TAG: *x86_test-gl
981   image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:${TAG}-${MESA_TEMPLATES_COMMIT}"
982   needs:
983     - x86_test-gl
984
985 .test-gl:
986   extends:
987     - .use-x86_test-gl
988   needs:
989     - x86_test-gl
990     - meson-testing
991
992 .test-vk:
993   extends:
994     - .test
995   variables:
996     TAG: *x86_test-vk
997   image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:${TAG}-${MESA_TEMPLATES_COMMIT}"
998   needs:
999     - meson-testing
1000     - x86_test-vk
1001
1002 .test-cl:
1003   extends:
1004     - .use-x86_test-gl
1005   needs:
1006     - x86_test-gl
1007     - meson-clover-testing
1008
1009 .piglit-test:
1010   extends:
1011     - .test-gl
1012     - .llvmpipe-rules
1013   artifacts:
1014     when: on_failure
1015     name: "mesa_${CI_JOB_NAME}"
1016     paths:
1017       - summary/
1018   variables:
1019     LIBGL_ALWAYS_SOFTWARE: 1
1020     PIGLIT_NO_WINDOW: 1
1021   script:
1022     - install/piglit/run.sh
1023
1024 llvmpipe-piglit-cl:
1025   extends:
1026     - .piglit-test
1027     - .test-cl
1028     - .llvmpipe-cl-rules
1029   variables:
1030     LP_CL: 1
1031     LP_NUM_THREADS: 1
1032     PIGLIT_PROFILES: cl
1033     PIGLIT_OPTIONS: >
1034       -x bswap -x phatk -x clz-optimizations
1035   script:
1036     - install/piglit/run_cl.sh
1037
1038 llvmpipe-piglit-quick_gl:
1039   extends: .piglit-test
1040   variables:
1041     LP_NUM_THREADS: 0
1042     PIGLIT_OPTIONS: >
1043       --process-isolation false
1044       -x egl_ext_device_
1045       -x egl_ext_platform_device
1046       -x ext_timer_query@time-elapsed
1047       -x glx-multithread-clearbuffer
1048       -x glx-multithread-shader-compile
1049       -x max-texture-size
1050       -x maxsize
1051     PIGLIT_PROFILES: quick_gl
1052
1053 llvmpipe-piglit-glslparser:
1054   extends: .piglit-test
1055   variables:
1056     LP_NUM_THREADS: 0
1057     PIGLIT_PROFILES: glslparser
1058
1059 llvmpipe-piglit-quick_shader:
1060   extends: .piglit-test
1061   variables:
1062     LP_NUM_THREADS: 1
1063     PIGLIT_PROFILES: quick_shader
1064
1065 .deqp-test:
1066   script:
1067     - ./install/deqp-runner.sh
1068
1069 .deqp-test-gl:
1070   extends:
1071     - .test-gl
1072     - .deqp-test
1073
1074 .deqp-test-vk:
1075   extends:
1076     - .test-vk
1077     - .deqp-test
1078   variables:
1079     DEQP_VER: vk
1080
1081 .fossilize-test:
1082   extends: .test-vk
1083   script:
1084     - ./install/fossilize-runner.sh
1085   artifacts:
1086     when: on_failure
1087     name: "mesa_${CI_JOB_NAME}"
1088     paths:
1089       - results/
1090
1091 llvmpipe-gles2:
1092   variables:
1093     DEQP_VER: gles2
1094     # Don't use threads inside llvmpipe, we've already got all cores
1095     # busy at the deqp-runner level.
1096     LP_NUM_THREADS: 0
1097     GPU_VERSION: llvmpipe
1098     LIBGL_ALWAYS_SOFTWARE: "true"
1099     DEQP_EXPECTED_RENDERER: llvmpipe
1100   extends:
1101     - .deqp-test-gl
1102     - .llvmpipe-rules
1103
1104 softpipe-gles2:
1105   extends:
1106     - llvmpipe-gles2
1107     - .softpipe-rules
1108   variables:
1109     GPU_VERSION: softpipe
1110     GALLIUM_DRIVER: "softpipe"
1111     DEQP_EXPECTED_RENDERER: softpipe
1112
1113 softpipe-gles3:
1114   variables:
1115     DEQP_VER: gles3
1116   extends: softpipe-gles2
1117
1118 softpipe-gles31:
1119   parallel: 2
1120   variables:
1121     DEQP_VER: gles31
1122   extends: softpipe-gles2
1123
1124 # Note that KHR-GL3* test sets include all tests from the previous
1125 # version, so we only need to run one test list (unlike dEQP-GLES,
1126 # where the test sets are separate).
1127 softpipe-gl:
1128   variables:
1129     DEQP_VER: gl33
1130   extends:
1131     - softpipe-gles2
1132
1133 virgl-gles2-on-gl:
1134   variables:
1135     DEQP_VER: gles2
1136     DEQP_NO_SAVE_RESULTS: 1
1137     GPU_VERSION: virgl-gl
1138     # Don't use threads inside llvmpipe, we've already got all cores
1139     # busy at the deqp-runner level.
1140     LP_NUM_THREADS: 0
1141     DEQP_OPTIONS: "--deqp-log-images=disable"
1142     LIBGL_ALWAYS_SOFTWARE: "true"
1143     GALLIUM_DRIVER: "virpipe"
1144     DEQP_EXPECTED_RENDERER: virgl
1145   extends:
1146     - .deqp-test-gl
1147     - .virgl-rules
1148
1149 virgl-gles3-on-gl:
1150   variables:
1151     DEQP_VER: gles3
1152     DEQP_RUNNER_OPTIONS: "--timeout 180"
1153   extends: virgl-gles2-on-gl
1154
1155 virgl-gles31-on-gl:
1156   parallel: 2
1157   variables:
1158     DEQP_VER: gles31
1159     MESA_GLES_VERSION_OVERRIDE: "3.1"
1160     MESA_GLSL_VERSION_OVERRIDE: "310"
1161     MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
1162   extends: virgl-gles3-on-gl
1163
1164 virgl-gl30-on-gl:
1165   variables:
1166     DEQP_VER: gl30
1167   extends: virgl-gles2-on-gl
1168
1169 virgl-gl31-on-gl:
1170   variables:
1171     DEQP_VER: gl31
1172   extends: virgl-gles2-on-gl
1173
1174 virgl-gl32-on-gl:
1175   variables:
1176     DEQP_VER: gl32
1177   extends: virgl-gles2-on-gl
1178
1179 # Rules for tests that should not be present in MRs or the main
1180 # project's pipeline (don't block marge or report red on
1181 # mesa/mesamaster) but should be present on pipelines in personal
1182 # branches (so you can opt in to running the flaky test when you want
1183 # to).
1184 .test-manual:
1185   rules:
1186     - *ignore_scheduled_pipelines
1187     - if: *is-forked-branch
1188       changes:
1189         *all_paths
1190       when: manual
1191     - when: never
1192   variables:
1193     GIT_STRATEGY: none
1194
1195 virgl-gles2-on-gles:
1196   variables:
1197     VIRGL_HOST_API: GLES
1198     GPU_VERSION: virgl-gles
1199   extends:
1200     - virgl-gles2-on-gl
1201     - .test-manual
1202
1203 virgl-gles3-on-gles:
1204   variables:
1205     VIRGL_HOST_API: GLES
1206     GPU_VERSION: virgl-gles
1207   extends:
1208     - virgl-gles3-on-gl
1209     - .test-manual
1210
1211 virgl-gles31-on-gles:
1212   variables:
1213     VIRGL_HOST_API: GLES
1214     GPU_VERSION: virgl-gles
1215   extends:
1216     - virgl-gles31-on-gl
1217     - .test-manual
1218
1219 arm64_a630_gles2:
1220   extends:
1221     - arm64_a306_gles2
1222   variables:
1223     BM_KERNEL: /lava-files/cheza-kernel
1224     BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
1225     GPU_VERSION: freedreno-a630
1226     GIT_STRATEGY: none
1227     DEQP_EXPECTED_RENDERER: FD630
1228     VK_DRIVER: freedreno
1229   tags:
1230     - google-freedreno-cheza
1231   script:
1232     - ./install/bare-metal/cros-servo.sh
1233
1234 arm64_a630_gles31:
1235   extends: arm64_a630_gles2
1236   variables:
1237     DEQP_VER: gles31
1238
1239 arm64_a630_gles3:
1240   extends: arm64_a630_gles2
1241   variables:
1242     DEQP_VER: gles3
1243
1244 arm64_a630_traces:
1245   extends:
1246     - arm64_a630_gles2
1247   variables:
1248     BARE_METAL_TEST_SCRIPT: "/install/tracie-runner-gl.sh"
1249     DEVICE_NAME: "freedreno-a630"
1250     DRIVER_NAME: "freedreno"
1251     TRACIE_NO_UNIT_TESTS: 1
1252     TRACIE_UPLOAD_TO_MINIO: 1
1253     # This lets us run several more traces which don't use any features we're
1254     # missing.
1255     MESA_GLSL_VERSION_OVERRIDE: "460"
1256     MESA_GL_VERSION_OVERRIDE: "4.6"
1257   artifacts:
1258     reports:
1259       junit: results/junit.xml
1260
1261 arm64_a630_gl:
1262   extends: arm64_a630_gles2
1263   variables:
1264     DEQP_VER: gl30
1265
1266 arm64_a630_gles_others:
1267   extends: arm64_a630_gles2
1268   variables:
1269     BARE_METAL_TEST_SCRIPT: "/install/bare-metal/arm64_a630_gles_others.sh"
1270
1271 arm64_a630_vk:
1272   extends: arm64_a630_gles2
1273   parallel: 2
1274   variables:
1275     DEQP_VER: vk
1276     DEQP_FRACTION: 10
1277     # Force binning in the main run, which makes sure we render at
1278     # least 2 bins.  This is the path that impacts the most different
1279     # features.  However, we end up with flaky results in
1280     # dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
1281     TU_DEBUG: forcebin
1282
1283 # Do a separate sysmem pass over the testcases that really affect sysmem
1284 # rendering.  This is currently very flaky, leave it as an option for devs
1285 # to click play on in their branches.
1286 arm64_a630_vk_sysmem:
1287   extends:
1288     - arm64_a630_gles2
1289   variables:
1290     DEQP_VER: vk
1291     DEQP_FRACTION: 15
1292     DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
1293     GPU_VERSION: freedreno-a630-bypass
1294     TU_DEBUG: sysmem
1295
1296 .baremetal-test:
1297   extends:
1298     - .ci-run-policy
1299     - .test
1300   # Cancel job if a newer commit is pushed to the same branch
1301   interruptible: true
1302   stage: test
1303   artifacts:
1304     when: always
1305     name: "mesa_${CI_JOB_NAME}"
1306     paths:
1307       - results/
1308       - serial*.txt
1309
1310 arm64_a306_gles2:
1311   extends:
1312     - .baremetal-test
1313     - .use-arm64_test
1314     - .freedreno-rules
1315   variables:
1316     BM_KERNEL: /lava-files/Image.gz
1317     BM_DTB: /lava-files/apq8016-sbc.dtb
1318     BM_ROOTFS: /lava-files/rootfs-arm64
1319     BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
1320     FLAKES_CHANNEL: "#freedreno-ci"
1321     BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
1322     GPU_VERSION: freedreno-a307
1323     DEQP_PARALLEL: 0 # Default to number of CPUs
1324     DEQP_VER: gles2
1325     DEQP_EXPECTED_RENDERER: FD307
1326   script:
1327     - ./install/bare-metal/fastboot.sh
1328   needs:
1329     - arm64_test
1330     - meson-arm64
1331   tags:
1332     - google-freedreno-db410c
1333
1334 # Fractional run, single threaded, due to flaky results
1335 arm64_a306_gles3:
1336   extends:
1337     - arm64_a306_gles2
1338   variables:
1339     DEQP_VER: gles3
1340     DEQP_PARALLEL: 1
1341     DEQP_FRACTION: 25
1342
1343 # Fractional runs with debug options.  Note that since we're not
1344 # hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
1345 arm64_a306_gles3_options:
1346   extends: arm64_a306_gles2
1347   variables:
1348     DEQP_VER: gles3
1349   script:
1350     # Check that the non-constbuf UBO case works.
1351     - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
1352
1353 .arm64_a530_deqp:
1354   extends:
1355     - arm64_a306_gles2
1356   variables:
1357     BM_KERNEL: /lava-files/db820c-kernel
1358     BM_DTB: /lava-files/db820c.dtb
1359     # Disable SMP because only CPU 0 is at a freq higher than 19mhz on
1360     # current upstream kernel.
1361     BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 nosmp"
1362     GPU_VERSION: freedreno-a530
1363     DEQP_EXPECTED_RENDERER: FD530
1364   tags:
1365     - google-freedreno-db820c
1366
1367 arm64_a530_gles2:
1368   extends:
1369     - .arm64_a530_deqp
1370   parallel: 2
1371
1372 arm64_a530_gles3:
1373   extends:
1374     - .arm64_a530_deqp
1375   variables:
1376     DEQP_VER: gles3
1377     DEQP_PARALLEL: 1
1378     DEQP_FRACTION: 40
1379
1380 arm64_a530_gles31:
1381   extends:
1382     - arm64_a530_gles3
1383   variables:
1384     DEQP_VER: gles31
1385     DEQP_FRACTION: 10
1386
1387 vc4-rpi3-gles2:armhf:
1388   extends:
1389     - .baremetal-test
1390     - .use-armhf_test
1391     - .vc4-rules
1392   parallel: 4
1393   variables:
1394     BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
1395     BM_BOOTFS: /boot/armhf
1396     BM_KERNEL_MODULES: vc4
1397     BM_ROOTFS: /lava-files/rootfs-armhf
1398     BM_ROOTFS_EXTRA: /modules/armhf
1399     GPU_VERSION: vc4-rpi3
1400     DEQP_EXPECTED_RENDERER: VC4
1401     DEQP_VER: gles2
1402   script:
1403     - ./install/bare-metal/poe-powered.sh
1404   needs:
1405     - armhf_test
1406     - meson-armhf
1407   tags:
1408     - igalia-rpi3
1409
1410 lavapipe-vk:
1411   stage: software-renderer
1412   extends:
1413     - .llvmpipe-rules
1414     - .deqp-test-vk
1415   variables:
1416     GPU_VERSION: lvp
1417     VK_DRIVER: lvp
1418     DEQP_FRACTION: 10
1419
1420 # RADV CI
1421 .test-radv:
1422   extends: .radv-rules
1423   stage: amd
1424   variables:
1425     VK_DRIVER: radeon
1426     ACO_DEBUG: validateir,validatera
1427
1428 # Can only be triggered manually on personal branches because RADV is the only
1429 # driver that does Vulkan testing at the moment.
1430 radv_polaris10_vkcts:
1431   extends:
1432     - .deqp-test-vk
1433     - .test-radv
1434     - .test-manual
1435   variables:
1436     GPU_VERSION: radv-polaris10
1437   tags:
1438     - polaris10
1439
1440 radv-fossils:
1441   extends:
1442     - .fossilize-test
1443     - .test-radv
1444   script:
1445     # Pitcairn (GFX6)
1446     - export RADV_FORCE_FAMILY="pitcairn"
1447     - ./install/fossilize-runner.sh
1448     # Bonaire (GFX7)
1449     - export RADV_FORCE_FAMILY="bonaire"
1450     - ./install/fossilize-runner.sh
1451     # Polaris10 (GFX8)
1452     - export RADV_FORCE_FAMILY="polaris10"
1453     - ./install/fossilize-runner.sh
1454     # Vega10 (GFX9)
1455     - export RADV_FORCE_FAMILY="gfx900"
1456     - ./install/fossilize-runner.sh
1457     # Navi10 (GFX10)
1458     - export RADV_FORCE_FAMILY="gfx1010"
1459     - ./install/fossilize-runner.sh
1460     # Sienna Cichlid (GFX10)
1461     - export RADV_FORCE_FAMILY="gfx1030"
1462     - ./install/fossilize-runner.sh
1463
1464 # Traces CI
1465 .traces-test:
1466   cache:
1467     key: ${CI_JOB_NAME}
1468     paths:
1469       - traces-db/
1470   variables:
1471     TRACIE_UPLOAD_TO_MINIO: 1
1472   artifacts:
1473     reports:
1474       junit: results/junit.xml
1475
1476 .traces-test-gl:
1477   extends:
1478     - .test-gl
1479     - .traces-test
1480   script:
1481     - ./install/tracie-runner-gl.sh
1482
1483 .traces-test-vk:
1484   extends:
1485     - .test-vk
1486     - .traces-test
1487   script:
1488     - ./install/tracie-runner-vk.sh
1489
1490 llvmpipe-traces:
1491   extends:
1492     - .traces-test-gl
1493     - .llvmpipe-rules
1494   variables:
1495     LIBGL_ALWAYS_SOFTWARE: "true"
1496     GALLIUM_DRIVER: "llvmpipe"
1497     DEVICE_NAME: "gl-vmware-llvmpipe"
1498     DRIVER_NAME: "llvmpipe"
1499
1500 radv-polaris10-traces:
1501   extends:
1502     - .traces-test-vk
1503     - .test-radv
1504     - .test-manual
1505   variables:
1506     DEVICE_NAME: "vk-amd-polaris10"
1507     DRIVER_NAME: "radv"
1508   tags:
1509     - polaris10
1510
1511 radv-raven-traces:
1512   extends:
1513     - .traces-test-vk
1514     - .test-radv
1515     - .test-manual
1516   variables:
1517     DEVICE_NAME: "vk-amd-raven"
1518     DRIVER_NAME: "radv"
1519   tags:
1520     - raven
1521
1522 virgl-traces:
1523   extends:
1524     - .traces-test-gl
1525     - .virgl-rules
1526   variables:
1527     LIBGL_ALWAYS_SOFTWARE: "true"
1528     GALLIUM_DRIVER: "virpipe"
1529     DEVICE_NAME: "gl-virgl"
1530     DRIVER_NAME: "virgl"
1531     MESA_GLES_VERSION_OVERRIDE: "3.1"
1532     MESA_GLSL_VERSION_OVERRIDE: "310"