amd/addrlib: fix the C++ one definition rule violation
[mesa.git] / .gitlab-ci.yml
1 variables:
2 FDO_UPSTREAM_REPO: mesa/mesa
3
4 include:
5 - project: 'freedesktop/ci-templates'
6 ref: 59de540b620c45739871d1a073d76d5521989d11
7 file: '/templates/debian.yml'
8 - local: '.gitlab-ci/lava-gitlab-ci.yml'
9 - local: '.gitlab-ci/test-source-dep.yml'
10
11 stages:
12 - container
13 - container-2
14 - meson-x86_64
15 - scons
16 - meson-misc
17 - llvmpipe
18 - softpipe
19 - freedreno
20 - panfrost
21 - radv
22 - lima
23 - virgl
24 - success
25
26
27 # When to automatically run the CI
28 .ci-run-policy:
29 rules:
30 # If any files affecting the pipeline are changed, build/test jobs run
31 # automatically once all dependency jobs have passed
32 - changes: &all_paths
33 - VERSION
34 - bin/git_sha1_gen.py
35 - bin/install_megadrivers.py
36 - bin/meson_get_version.py
37 - bin/symbols-check.py
38 # GitLab CI
39 - .gitlab-ci.yml
40 - .gitlab-ci/**/*
41 # Meson
42 - meson*
43 - build-support/**/*
44 - subprojects/**/*
45 # SCons
46 - SConstruct
47 - scons/**/*
48 - common.py
49 # Source code
50 - include/**/*
51 - src/**/*
52 when: on_success
53 # Otherwise, build/test jobs won't run
54 - when: never
55 retry:
56 max: 2
57 when:
58 - runner_system_failure
59 # Cancel CI run if a newer commit is pushed to the same branch
60 interruptible: true
61
62 success:
63 stage: success
64 image: debian:stable-slim
65 only:
66 - merge_requests
67 except:
68 changes:
69 *all_paths
70 variables:
71 GIT_STRATEGY: none
72 script:
73 - echo "Dummy job to make sure every merge request pipeline runs at least one job"
74
75
76 .ci-deqp-artifacts:
77 artifacts:
78 name: "mesa_${CI_JOB_NAME}"
79 when: always
80 untracked: false
81 paths:
82 # Watch out! Artifacts are relative to the build dir.
83 # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
84 - artifacts
85
86 # Build the CI docker images.
87 #
88 # FDO_DISTRIBUTION_TAG is the tag of the docker image used by later stage jobs. If the
89 # image doesn't exist yet, the container stage job generates it.
90 #
91 # In order to generate a new image, one should generally change the tag.
92 # While removing the image from the registry would also work, that's not
93 # recommended except for ephemeral images during development: Replacing
94 # an image after a significant amount of time might pull in newer
95 # versions of gcc/clang or other packages, which might break the build
96 # with older commits using the same tag.
97 #
98 # After merging a change resulting in generating a new image to the
99 # main repository, it's recommended to remove the image from the source
100 # repository's container registry, so that the image from the main
101 # repository's registry will be used there as well.
102
103 .container:
104 stage: container
105 extends:
106 - .ci-run-policy
107 rules:
108 # Run pipeline by default if it was triggered by Marge Bot, is for a
109 # merge request, and any files affecting it were changed
110 - if: '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
111 changes:
112 *all_paths
113 when: on_success
114 # Run pipeline by default in the main project if any files affecting it were
115 # changed
116 - if: '$CI_PROJECT_PATH == "mesa/mesa"'
117 changes:
118 *all_paths
119 when: on_success
120 # Allow triggering jobs manually for MRs or branches of forked projects if
121 # any files affecting the pipeline were changed
122 - changes:
123 *all_paths
124 when: manual
125 # Otherwise, container jobs won't run
126 - when: never
127 variables:
128 FDO_DISTRIBUTION_VERSION: buster-slim
129 FDO_REPO_SUFFIX: "debian/$CI_JOB_NAME"
130 FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
131 # no need to pull the whole repo to build the container image
132 GIT_STRATEGY: none
133
134 # Debian 10 based x86 build image base
135 x86_build-base:
136 extends:
137 - .fdo.container-build@debian
138 - .container
139 variables:
140 FDO_DISTRIBUTION_TAG: &x86_build-base "2020-06-02"
141
142 .use-x86_build-base:
143 extends:
144 - x86_build-base
145 - .ci-run-policy
146 stage: container-2
147 variables:
148 BASE_TAG: *x86_build-base
149 FDO_BASE_IMAGE: "$CI_REGISTRY_IMAGE/debian/x86_build-base:$BASE_TAG"
150 needs:
151 - x86_build-base
152
153 # Debian 10 based x86 main build image
154 x86_build:
155 extends:
156 - .use-x86_build-base
157 variables:
158 FDO_DISTRIBUTION_TAG: &x86_build "2020-06-02"
159
160 .use-x86_build:
161 variables:
162 TAG: *x86_build
163 image: "$CI_REGISTRY_IMAGE/debian/x86_build:$TAG"
164 needs:
165 - x86_build-base
166 - x86_build
167
168 # Debian 10 based i386 cross-build image
169 i386_build:
170 extends:
171 - .use-x86_build-base
172 variables:
173 FDO_DISTRIBUTION_TAG: &i386_build "2020-06-02"
174
175 .use-i386_build:
176 variables:
177 TAG: *i386_build
178 image: "$CI_REGISTRY_IMAGE/debian/i386_build:$TAG"
179 needs:
180 - x86_build-base
181 - i386_build
182
183 # Debian 10 based ppc64el cross-build image
184 ppc64el_build:
185 extends:
186 - .use-x86_build-base
187 variables:
188 FDO_DISTRIBUTION_TAG: &ppc64el_build "2020-06-02"
189
190 .use-ppc64el_build:
191 variables:
192 TAG: *ppc64el_build
193 image: "$CI_REGISTRY_IMAGE/debian/ppc64el_build:$TAG"
194 needs:
195 - x86_build-base
196 - ppc64el_build
197
198 # Debian 10 based s390x cross-build image
199 s390x_build:
200 extends:
201 - .use-x86_build-base
202 variables:
203 FDO_DISTRIBUTION_TAG: &s390x_build "2020-06-02"
204
205 .use-s390x_build:
206 variables:
207 TAG: *s390x_build
208 image: "$CI_REGISTRY_IMAGE/debian/s390x_build:$TAG"
209 needs:
210 - x86_build-base
211 - s390x_build
212
213 # Debian 10 based x86 test image base
214 x86_test-base:
215 extends: x86_build-base
216 variables:
217 FDO_DISTRIBUTION_TAG: &x86_test-base "2020-06-02"
218
219 .use-x86_test-base:
220 extends:
221 - x86_build-base
222 - .ci-run-policy
223 stage: container-2
224 variables:
225 BASE_TAG: *x86_test-base
226 FDO_BASE_IMAGE: "$CI_REGISTRY_IMAGE/debian/x86_test-base:$BASE_TAG"
227 needs:
228 - x86_test-base
229
230 # Debian 10 based x86 test image for GL
231 x86_test-gl:
232 extends: .use-x86_test-base
233 variables:
234 FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-06-04"
235
236 # Debian 10 based x86 test image for VK
237 x86_test-vk:
238 extends: .use-x86_test-base
239 variables:
240 FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-06-02-gles"
241
242 # Debian 9 based x86 build image (old LLVM)
243 x86_build_old:
244 extends: x86_build-base
245 variables:
246 FDO_DISTRIBUTION_TAG: &x86_build_old "2020-06-02"
247 FDO_DISTRIBUTION_VERSION: stretch-slim
248
249 .use-x86_build_old:
250 variables:
251 TAG: *x86_build_old
252 image: "$CI_REGISTRY_IMAGE/debian/x86_build_old:$TAG"
253 needs:
254 - x86_build_old
255
256 # Debian 10 based ARM build image
257 arm_build:
258 extends:
259 - .fdo.container-build@debian@arm64v8
260 - .container
261 variables:
262 FDO_DISTRIBUTION_TAG: &arm_build "2020-06-01"
263
264 .use-arm_build:
265 variables:
266 TAG: *arm_build
267 image: "$CI_REGISTRY_IMAGE/debian/arm_build:$TAG"
268 needs:
269 - arm_build
270
271 # Debian 10 based x86 baremetal image base
272 arm_test-base:
273 extends:
274 - .fdo.container-build@debian
275 - .container
276 variables:
277 FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-09-rsync"
278
279 .use-arm_test-base:
280 extends:
281 - arm_test-base
282 - .ci-run-policy
283 stage: container-2
284 variables:
285 BASE_TAG: *arm_test-base
286 FDO_BASE_IMAGE: "$CI_REGISTRY_IMAGE/debian/arm_test-base:$BASE_TAG"
287 needs:
288 - arm_test-base
289
290 # x86 image with ARM64 rootfs for baremetal testing.
291 arm64_test:
292 extends:
293 - .use-arm_test-base
294 variables:
295 FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-09-rsync"
296
297 .use-arm64_test:
298 variables:
299 TAG: *arm64_test
300 image: "$CI_REGISTRY_IMAGE/debian/arm64_test:$TAG"
301 needs:
302 - arm_test-base
303 - arm64_test
304
305 # Native Windows docker builds
306 #
307 # Unlike the above Linux-based builds - including MinGW/SCons builds which
308 # cross-compile for Windows - which use the freedesktop ci-templates, we
309 # cannot use the same scheme here. As Windows lacks support for
310 # Docker-in-Docker, and Podman does not run natively on Windows, we have
311 # to open-code much of the same ourselves.
312 #
313 # This is achieved by first running in a native Windows shell instance
314 # (host PowerShell) in the container stage to build and push the image,
315 # then in the build stage by executing inside Docker.
316
317 .windows-docker-vs2019:
318 variables:
319 WINDOWS_TAG: "2020-05-05-llvm"
320 WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/windows/x64_build:$WINDOWS_TAG"
321 WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows/x64_build:$WINDOWS_TAG"
322
323 windows_build_vs2019:
324 extends:
325 - .container
326 - .windows-docker-vs2019
327 stage: container
328 variables:
329 GIT_STRATEGY: fetch # we do actually need the full repository though
330 timeout: 4h # LLVM takes ages
331 tags:
332 - windows
333 - shell
334 - "1809"
335 - mesa
336 script:
337 - .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $WINDOWS_IMAGE $WINDOWS_UPSTREAM_IMAGE
338
339 .use-windows_build_vs2019:
340 extends: .windows-docker-vs2019
341 image: "$WINDOWS_IMAGE"
342 needs:
343 - windows_build_vs2019
344
345 # BUILD
346
347 # Shared between windows and Linux
348 .build-common:
349 extends: .ci-run-policy
350 artifacts:
351 name: "mesa_${CI_JOB_NAME}"
352 when: always
353 paths:
354 - _build/meson-logs/*.txt
355 # scons:
356 - build/*/config.log
357 - shader-db
358
359 # Just Linux
360 .build-linux:
361 extends: .build-common
362 variables:
363 CCACHE_COMPILERCHECK: "content"
364 CCACHE_COMPRESS: "true"
365 CCACHE_DIR: /cache/mesa/ccache
366 # Use ccache transparently, and print stats before/after
367 before_script:
368 - export PATH="/usr/lib/ccache:$PATH"
369 - export CCACHE_BASEDIR="$PWD"
370 - ccache --show-stats
371 after_script:
372 - ccache --show-stats
373
374 .build-windows:
375 extends: .build-common
376 tags:
377 - windows
378 - docker
379 - "1809"
380 - mesa
381 cache:
382 key: ${CI_JOB_NAME}
383 paths:
384 - subprojects/packagecache
385
386 .meson-build:
387 extends:
388 - .build-linux
389 - .use-x86_build
390 stage: meson-x86_64
391 variables:
392 LLVM_VERSION: 9
393 script:
394 - .gitlab-ci/meson-build.sh
395
396 .scons-build:
397 extends:
398 - .build-linux
399 - .use-x86_build
400 stage: scons
401 variables:
402 SCONSFLAGS: "-j4"
403 script:
404 - .gitlab-ci/scons-build.sh
405
406 meson-testing:
407 extends:
408 - .meson-build
409 - .ci-deqp-artifacts
410 variables:
411 UNWIND: "enabled"
412 DRI_LOADERS: >
413 -D glx=dri
414 -D gbm=enabled
415 -D egl=enabled
416 -D platforms=x11,drm,surfaceless
417 GALLIUM_ST: >
418 -D dri3=enabled
419 GALLIUM_DRIVERS: "swrast,virgl"
420 VULKAN_DRIVERS: amd
421 BUILDTYPE: "debugoptimized"
422 EXTRA_OPTION: >
423 -D werror=true
424 script:
425 - .gitlab-ci/meson-build.sh
426 - .gitlab-ci/prepare-artifacts.sh
427
428 meson-gallium:
429 extends: .meson-build
430 variables:
431 UNWIND: "enabled"
432 DRI_LOADERS: >
433 -D glx=dri
434 -D gbm=enabled
435 -D egl=enabled
436 -D platforms=x11,wayland,drm,surfaceless
437 GALLIUM_ST: >
438 -D dri3=enabled
439 -D gallium-extra-hud=true
440 -D gallium-vdpau=enabled
441 -D gallium-xvmc=enabled
442 -D gallium-omx=bellagio
443 -D gallium-va=enabled
444 -D gallium-xa=enabled
445 -D gallium-nine=true
446 -D gallium-opencl=disabled
447 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
448 EXTRA_OPTION: >
449 -D osmesa=gallium
450 -D tools=all
451 script:
452 - .gitlab-ci/meson-build.sh
453 - .gitlab-ci/run-shader-db.sh
454
455 meson-classic:
456 extends: .meson-build
457 variables:
458 UNWIND: "enabled"
459 DRI_LOADERS: >
460 -D glx=dri
461 -D gbm=enabled
462 -D egl=enabled
463 -D platforms=x11,wayland,drm,surfaceless
464 DRI_DRIVERS: "auto"
465 EXTRA_OPTION: >
466 -D osmesa=classic
467 -D tools=all
468
469 .meson-cross:
470 extends:
471 - .meson-build
472 stage: meson-misc
473 variables:
474 UNWIND: "disabled"
475 DRI_LOADERS: >
476 -D glx=disabled
477 -D gbm=disabled
478 -D egl=enabled
479 -D platforms=surfaceless
480 -D osmesa=none
481 GALLIUM_ST: >
482 -D dri3=disabled
483 -D gallium-vdpau=disabled
484 -D gallium-xvmc=disabled
485 -D gallium-omx=disabled
486 -D gallium-va=disabled
487 -D gallium-xa=disabled
488 -D gallium-nine=false
489 LLVM_VERSION: "8"
490
491 .meson-arm:
492 extends:
493 - .meson-cross
494 - .use-arm_build
495 variables:
496 VULKAN_DRIVERS: freedreno
497 GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
498 BUILDTYPE: "debugoptimized"
499 tags:
500 - aarch64
501
502 meson-armhf:
503 extends:
504 - .meson-arm
505 - .ci-deqp-artifacts
506 variables:
507 CROSS: armhf
508 LLVM_VERSION: "7"
509 EXTRA_OPTION: >
510 -D llvm=disabled
511 script:
512 - .gitlab-ci/meson-build.sh
513 - .gitlab-ci/prepare-artifacts.sh
514
515 meson-arm64:
516 extends:
517 - .meson-arm
518 - .ci-deqp-artifacts
519 variables:
520 VULKAN_DRIVERS: "freedreno"
521 EXTRA_OPTION: >
522 -D llvm=disabled
523 script:
524 - .gitlab-ci/meson-build.sh
525 - .gitlab-ci/prepare-artifacts.sh
526
527 meson-arm64-build-test:
528 extends:
529 - .meson-arm
530 - .ci-deqp-artifacts
531 variables:
532 VULKAN_DRIVERS: "amd"
533 script:
534 - .gitlab-ci/meson-build.sh
535
536 meson-clang:
537 extends: .meson-build
538 variables:
539 UNWIND: "enabled"
540 DRI_LOADERS: >
541 -D glvnd=true
542 DRI_DRIVERS: "auto"
543 GALLIUM_DRIVERS: "auto"
544 VULKAN_DRIVERS: intel,amd,freedreno
545 CC: "ccache clang-9"
546 CXX: "ccache clang++-9"
547
548 meson-windows-vs2019:
549 extends:
550 - .build-windows
551 - .use-windows_build_vs2019
552 stage: meson-misc
553 script:
554 - . .\.gitlab-ci\windows\mesa_build.ps1
555
556 scons-win64:
557 extends: .scons-build
558 variables:
559 SCONS_TARGET: platform=windows machine=x86_64 debug=1
560 SCONS_CHECK_COMMAND: "true"
561 allow_failure: true
562
563 meson-clover:
564 extends: .meson-build
565 variables:
566 UNWIND: "enabled"
567 DRI_LOADERS: >
568 -D glx=disabled
569 -D egl=disabled
570 -D gbm=disabled
571 GALLIUM_DRIVERS: "r600,radeonsi"
572 GALLIUM_ST: >
573 -D dri3=disabled
574 -D gallium-vdpau=disabled
575 -D gallium-xvmc=disabled
576 -D gallium-omx=disabled
577 -D gallium-va=disabled
578 -D gallium-xa=disabled
579 -D gallium-nine=false
580 -D gallium-opencl=icd
581 script:
582 - .gitlab-ci/meson-build.sh
583 - LLVM_VERSION=8 .gitlab-ci/meson-build.sh
584
585 meson-clover-old-llvm:
586 extends:
587 - meson-clover
588 - .use-x86_build_old
589 variables:
590 UNWIND: "disabled"
591 DRI_LOADERS: >
592 -D glx=disabled
593 -D egl=disabled
594 -D gbm=disabled
595 -D platforms=drm,surfaceless
596 GALLIUM_DRIVERS: "i915,r600"
597 script:
598 - LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh
599 - LLVM_VERSION=4.0 .gitlab-ci/meson-build.sh
600 - LLVM_VERSION=5.0 .gitlab-ci/meson-build.sh
601 - LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh
602 - LLVM_VERSION=7 .gitlab-ci/meson-build.sh
603
604 meson-vulkan:
605 extends: .meson-build
606 variables:
607 UNWIND: "disabled"
608 DRI_LOADERS: >
609 -D glx=disabled
610 -D gbm=disabled
611 -D egl=disabled
612 -D platforms=x11,wayland,drm
613 -D osmesa=none
614 GALLIUM_ST: >
615 -D dri3=enabled
616 -D gallium-vdpau=disabled
617 -D gallium-xvmc=disabled
618 -D gallium-omx=disabled
619 -D gallium-va=disabled
620 -D gallium-xa=disabled
621 -D gallium-nine=false
622 -D gallium-opencl=disabled
623 -D b_sanitize=undefined
624 -D c_args=-fno-sanitize-recover=all
625 -D cpp_args=-fno-sanitize-recover=all
626 UBSAN_OPTIONS: "print_stacktrace=1"
627 VULKAN_DRIVERS: intel,amd,freedreno
628 EXTRA_OPTION: >
629 -D vulkan-overlay-layer=true
630 -D werror=true
631
632 meson-i386:
633 extends:
634 - .meson-cross
635 - .use-i386_build
636 variables:
637 CROSS: i386
638 VULKAN_DRIVERS: intel,amd
639 GALLIUM_DRIVERS: "iris,r300,radeonsi,swrast,virgl"
640 EXTRA_OPTION: >
641 -D vulkan-overlay-layer=true
642 -D werror=true
643
644 meson-s390x:
645 extends:
646 - .meson-cross
647 - .use-s390x_build
648 tags:
649 - kvm
650 variables:
651 CROSS: s390x
652 EXTRA_OPTION: >
653 -D werror=true
654 GALLIUM_DRIVERS: "swrast"
655
656 meson-ppc64el:
657 extends:
658 - meson-s390x
659 - .use-ppc64el_build
660 variables:
661 CROSS: ppc64el
662 EXTRA_OPTION: ""
663 GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl"
664 VULKAN_DRIVERS: "amd"
665
666 meson-mingw32-x86_64:
667 extends: .meson-build
668 stage: meson-misc
669 variables:
670 UNWIND: "disabled"
671 DRI_DRIVERS: ""
672 GALLIUM_DRIVERS: "swrast"
673 EXTRA_OPTION: >
674 -Dllvm=disabled
675 -Dosmesa=gallium
676 --cross-file=.gitlab-ci/x86_64-w64-mingw32
677
678 .test:
679 extends:
680 - .ci-run-policy
681 variables:
682 GIT_STRATEGY: none # testing doesn't build anything from source
683 before_script:
684 # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
685 - rm -rf install
686 - tar -xf artifacts/install.tar
687 - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
688 artifacts:
689 when: always
690 name: "mesa_${CI_JOB_NAME}"
691 paths:
692 - results/
693 dependencies:
694 - meson-testing
695
696 .test-gl:
697 extends:
698 - .test
699 variables:
700 TAG: *x86_test-gl
701 image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:$TAG"
702 needs:
703 - x86_build-base
704 - x86_build
705 - meson-testing
706 - x86_test-base
707 - x86_test-gl
708
709 .test-vk:
710 extends:
711 - .test
712 variables:
713 TAG: *x86_test-vk
714 image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:$TAG"
715 needs:
716 - x86_build-base
717 - x86_build
718 - meson-testing
719 - x86_test-base
720 - x86_test-vk
721
722 .piglit-test:
723 extends:
724 - .test-gl
725 - .llvmpipe-rules
726 artifacts:
727 when: on_failure
728 name: "mesa_${CI_JOB_NAME}"
729 paths:
730 - summary/
731 variables:
732 LIBGL_ALWAYS_SOFTWARE: 1
733 PIGLIT_NO_WINDOW: 1
734 script:
735 - install/piglit/run.sh
736
737 piglit-quick_gl:
738 extends: .piglit-test
739 variables:
740 LP_NUM_THREADS: 0
741 NIR_VALIDATE: 0
742 PIGLIT_OPTIONS: >
743 --process-isolation false
744 -x arb_gpu_shader5
745 -x egl_ext_device_
746 -x egl_ext_platform_device
747 -x ext_timer_query@time-elapsed
748 -x glx-multithread-clearbuffer
749 -x glx-multithread-shader-compile
750 -x max-texture-size
751 -x maxsize
752 PIGLIT_PROFILES: quick_gl
753
754 piglit-glslparser:
755 extends: .piglit-test
756 variables:
757 LP_NUM_THREADS: 0
758 NIR_VALIDATE: 0
759 PIGLIT_PROFILES: glslparser
760
761 piglit-quick_shader:
762 extends: .piglit-test
763 variables:
764 LP_NUM_THREADS: 1
765 NIR_VALIDATE: 0
766 PIGLIT_PROFILES: quick_shader
767
768 .deqp-test:
769 variables:
770 DEQP_SKIPS: deqp-default-skips.txt
771 script:
772 - ./install/deqp-runner.sh
773
774 .deqp-test-gl:
775 extends:
776 - .test-gl
777 - .deqp-test
778
779 .deqp-test-vk:
780 extends:
781 - .test-vk
782 - .deqp-test
783 variables:
784 DEQP_VER: vk
785
786 .fossilize-test:
787 extends: .test-vk
788 script:
789 - ./install/fossilize-runner.sh
790
791 llvmpipe-gles2:
792 variables:
793 DEQP_VER: gles2
794 DEQP_PARALLEL: 4
795 NIR_VALIDATE: 0
796 # Don't use threads inside llvmpipe, we've already got all 4 cores
797 # busy with DEQP_PARALLEL.
798 LP_NUM_THREADS: 0
799 DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
800 LIBGL_ALWAYS_SOFTWARE: "true"
801 DEQP_EXPECTED_RENDERER: llvmpipe
802 extends:
803 - .deqp-test-gl
804 - .llvmpipe-rules
805
806 softpipe-gles2:
807 extends:
808 - llvmpipe-gles2
809 - .softpipe-rules
810 variables:
811 DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
812 DEQP_SKIPS: deqp-softpipe-skips.txt
813 GALLIUM_DRIVER: "softpipe"
814 DEQP_EXPECTED_RENDERER: softpipe
815
816 softpipe-gles3:
817 parallel: 2
818 variables:
819 DEQP_VER: gles3
820 extends: softpipe-gles2
821
822 softpipe-gles31:
823 parallel: 4
824 variables:
825 DEQP_VER: gles31
826 extends: softpipe-gles2
827
828 virgl-gles2:
829 variables:
830 DEQP_VER: gles2
831 DEQP_PARALLEL: 4
832 NIR_VALIDATE: 0
833 DEQP_NO_SAVE_RESULTS: 1
834 # Don't use threads inside llvmpipe, we've already got all 4 cores
835 # busy with DEQP_PARALLEL.
836 LP_NUM_THREADS: 0
837 DEQP_EXPECTED_FAILS: deqp-virgl-fails.txt
838 LIBGL_ALWAYS_SOFTWARE: "true"
839 GALLIUM_DRIVER: "virpipe"
840 DEQP_EXPECTED_RENDERER: virgl
841 extends:
842 - .deqp-test-gl
843 - .virgl-rules
844
845 virgl-gles3:
846 variables:
847 DEQP_VER: gles3
848 CI_NODE_INDEX: 1
849 CI_NODE_TOTAL: 3
850 DEQP_RUNNER_OPTIONS: "--timeout 120"
851 extends: virgl-gles2
852
853 virgl-gles31:
854 variables:
855 DEQP_VER: gles31
856 CI_NODE_INDEX: 1
857 CI_NODE_TOTAL: 10
858 DEQP_OPTIONS: "--deqp-log-images=disable"
859 DEQP_RUNNER_OPTIONS: "--timeout 120"
860 MESA_GLES_VERSION_OVERRIDE: "3.1"
861 MESA_GLSL_VERSION_OVERRIDE: "310"
862 MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
863 extends: virgl-gles2
864
865 # Rules for tests that should not be present in MRs or the main
866 # project's pipeline (don't block marge or report red on
867 # mesa/mesamaster) but should be present on pipelines in personal
868 # branches (so you can opt in to running the flaky test when you want
869 # to).
870 .test-manual:
871 rules:
872 - if: '$CI_PROJECT_PATH != "mesa/mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
873 changes:
874 *all_paths
875 when: manual
876 - when: never
877
878 arm64_a630_gles2:
879 extends:
880 - arm64_a306_gles2
881 variables:
882 BM_KERNEL: /lava-files/cheza-kernel
883 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
884 DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
885 DEQP_SKIPS: deqp-freedreno-a630-skips.txt
886 NIR_VALIDATE: 0
887 DEQP_EXPECTED_RENDERER: FD630
888 DEQP_NO_SAVE_RESULTS: ""
889 tags:
890 - google-freedreno-cheza
891 script:
892 - .gitlab-ci/bare-metal/cros-servo.sh
893
894 arm64_a630_gles31:
895 extends: arm64_a630_gles2
896 variables:
897 DEQP_VER: gles31
898
899 arm64_a630_gles3:
900 extends: arm64_a630_gles2
901 variables:
902 DEQP_VER: gles3
903
904 # We almost always manage to lower UBOs back to constant uploads in
905 # the test suite, so get a little testing for it here.
906 arm64_a630_noubo:
907 extends: arm64_a630_gles31
908 variables:
909 DEQP_VER: gles31
910 IR3_SHADER_DEBUG: nouboopt
911 DEQP_CASELIST_FILTER: "functional.*ubo"
912
913 # The driver does some guessing as to whether to render using gmem
914 # or bypass, and some GLES3.1 features interact with either one.
915 # Do a little testing with gmem and bypass forced.
916 arm64_a630_bypass:
917 extends: arm64_a630_gles31
918 variables:
919 CI_NODE_INDEX: 1
920 CI_NODE_TOTAL: 5
921 FD_MESA_DEBUG: nogmem
922 DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt
923
924 # Along with checking gmem path, check that we don't get obvious nir
925 # validation failures (though it's too expensive to have it on for the
926 # full CTS)
927 arm64_a630_gmem:
928 extends: arm64_a630_gles31
929 variables:
930 CI_NODE_INDEX: 1
931 CI_NODE_TOTAL: 5
932 FD_MESA_DEBUG: nobypass
933 NIR_VALIDATE: 1
934
935 arm64_a630_vk:
936 extends: arm64_a630_gles2
937 variables:
938 DEQP_VER: vk
939 CI_NODE_INDEX: 1
940 CI_NODE_TOTAL: 50
941 VK_DRIVER: freedreno
942 # Force binning in the main run, which makes sure we render at
943 # least 2 bins. This is the path that impacts the most different
944 # features. However, we end up with flaky results in
945 # dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
946 TU_DEBUG: forcebin
947
948 # Do a separate sysmem pass over the testcases that really affect sysmem
949 # rendering. This is currently very flaky, leave it as an option for devs
950 # to click play on in their branches.
951 arm64_a630_vk_sysmem:
952 extends:
953 - arm64_a630_vk
954 variables:
955 CI_NODE_INDEX: 1
956 CI_NODE_TOTAL: 10
957 DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
958 DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt
959 TU_DEBUG: sysmem
960
961 .baremetal-test:
962 extends:
963 - .ci-run-policy
964 stage: test
965 artifacts:
966 when: always
967 name: "mesa_${CI_JOB_NAME}"
968 paths:
969 - results/
970 - serial*.txt
971
972 arm64_a306_gles2:
973 extends:
974 - .baremetal-test
975 - .use-arm64_test
976 - .freedreno-rules
977 variables:
978 BM_KERNEL: /lava-files/Image.gz
979 BM_DTB: /lava-files/apq8016-sbc.dtb
980 BM_ROOTFS: /lava-files/rootfs-arm64
981 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
982 FLAKES_CHANNEL: "#freedreno-ci"
983 DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
984 DEQP_SKIPS: deqp-freedreno-a307-skips.txt
985 DEQP_VER: gles2
986 DEQP_PARALLEL: 4
987 DEQP_EXPECTED_RENDERER: FD307
988 # Since we can't get artifacts back yet, skip making them.
989 DEQP_NO_SAVE_RESULTS: 1
990 # NIR_VALIDATE=0 left intentionally unset as a3xx is fast enough at its small testsuite.
991 script:
992 - .gitlab-ci/bare-metal/fastboot.sh
993 needs:
994 - arm_test-base
995 - arm64_test
996 - arm_build
997 - meson-arm64
998 tags:
999 - google-freedreno-db410c
1000
1001 # Fractional run, single threaded, due to flaky results
1002 arm64_a306_gles3:
1003 extends:
1004 - arm64_a306_gles2
1005 variables:
1006 DEQP_VER: gles3
1007 DEQP_PARALLEL: 1
1008 CI_NODE_INDEX: 1
1009 CI_NODE_TOTAL: 25
1010 NIR_VALIDATE: 0
1011
1012 # Fractional runs with debug options. Note that since we're not
1013 # hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
1014 arm64_a306_gles3_options:
1015 extends: arm64_a306_gles2
1016 variables:
1017 DEQP_VER: gles3
1018 script:
1019 # Check that the non-constbuf UBO case works.
1020 - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" .gitlab-ci/bare-metal/fastboot.sh
1021
1022 arm64_a530_gles2:
1023 extends:
1024 - arm64_a306_gles2
1025 variables:
1026 BM_KERNEL: /lava-files/db820c-kernel
1027 BM_DTB: /lava-files/db820c.dtb
1028 # Disable SMP because only CPU 0 is at a freq higher than 19mhz on
1029 # current upstream kernel.
1030 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 nosmp"
1031 DEQP_EXPECTED_FAILS: deqp-freedreno-a530-fails.txt
1032 DEQP_SKIPS: deqp-freedreno-a530-skips.txt
1033 DEQP_EXPECTED_RENDERER: FD530
1034 NIR_VALIDATE: 0
1035 tags:
1036 - google-freedreno-db820c
1037
1038 arm64_a530_gles3:
1039 extends:
1040 - arm64_a530_gles2
1041 variables:
1042 DEQP_VER: gles3
1043 DEQP_PARALLEL: 1
1044 CI_NODE_INDEX: 1
1045 CI_NODE_TOTAL: 40
1046
1047 arm64_a530_gles31:
1048 extends:
1049 - arm64_a530_gles3
1050 variables:
1051 DEQP_VER: gles31
1052 CI_NODE_INDEX: 1
1053 CI_NODE_TOTAL: 10
1054
1055 # RADV CI
1056 .test-radv:
1057 extends: .radv-rules
1058 stage: radv
1059 variables:
1060 VK_DRIVER: radeon
1061 RADV_DEBUG: checkir
1062 ACO_DEBUG: validateir,validatera
1063
1064 # Can only be triggered manually on personal branches because RADV is the only
1065 # driver that does Vulkan testing at the moment.
1066 radv_polaris10_vkcts:
1067 extends:
1068 - .deqp-test-vk
1069 - .test-radv
1070 - .test-manual
1071 variables:
1072 DEQP_SKIPS: deqp-radv-polaris10-skips.txt
1073 tags:
1074 - polaris10
1075
1076 radv-fossils:
1077 extends:
1078 - .fossilize-test
1079 - .test-radv
1080 script:
1081 # Pitcairn (GFX6)
1082 - export RADV_FORCE_FAMILY="pitcairn"
1083 - ./install/fossilize-runner.sh
1084 - RADV_PERFTEST=aco ./install/fossilize-runner.sh
1085 # Bonaire (GFX7)
1086 - export RADV_FORCE_FAMILY="bonaire"
1087 - ./install/fossilize-runner.sh
1088 - RADV_PERFTEST=aco ./install/fossilize-runner.sh
1089 # Polaris10 (GFX8)
1090 - export RADV_FORCE_FAMILY="polaris10"
1091 - ./install/fossilize-runner.sh
1092 - RADV_PERFTEST=aco ./install/fossilize-runner.sh
1093 # Vega10 (GFX9)
1094 - export RADV_FORCE_FAMILY="gfx900"
1095 - ./install/fossilize-runner.sh
1096 - RADV_PERFTEST=aco ./install/fossilize-runner.sh
1097 # Navi10 (GFX10)
1098 - export RADV_FORCE_FAMILY="gfx1010"
1099 - ./install/fossilize-runner.sh
1100 - RADV_PERFTEST=aco ./install/fossilize-runner.sh
1101
1102 # Traces CI
1103 .traces-test:
1104 cache:
1105 key: ${CI_JOB_NAME}
1106 paths:
1107 - traces-db/
1108
1109 .traces-test-gl:
1110 extends:
1111 - .test-gl
1112 - .traces-test
1113 script:
1114 - ./install/tracie-runner-gl.sh
1115
1116 .traces-test-vk:
1117 extends:
1118 - .test-vk
1119 - .traces-test
1120 script:
1121 - ./install/tracie-runner-vk.sh
1122
1123 llvmpipe-traces:
1124 extends:
1125 - .traces-test-gl
1126 - .llvmpipe-rules
1127 variables:
1128 LIBGL_ALWAYS_SOFTWARE: "true"
1129 GALLIUM_DRIVER: "llvmpipe"
1130 DEVICE_NAME: "gl-vmware-llvmpipe"
1131
1132 radv-polaris10-traces:
1133 extends:
1134 - .traces-test-vk
1135 - .test-radv
1136 - .test-manual
1137 variables:
1138 DEVICE_NAME: "vk-amd-polaris10"
1139 tags:
1140 - polaris10
1141
1142 virgl-traces:
1143 extends:
1144 - .traces-test-gl
1145 - .virgl-rules
1146 variables:
1147 LIBGL_ALWAYS_SOFTWARE: "true"
1148 GALLIUM_DRIVER: "virpipe"
1149 DEVICE_NAME: "gl-virgl"
1150 MESA_GLES_VERSION_OVERRIDE: "3.1"
1151 MESA_GLSL_VERSION_OVERRIDE: "310"