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