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