2 FDO_UPSTREAM_REPO: mesa/mesa
3 MESA_TEMPLATES_COMMIT: &ci-templates-commit 52dd4a94044449c8481d18dcdc221a3c636366d2
4 CI_PRE_CLONE_SCRIPT: |-
6 /usr/bin/wget -q -O- ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | sh -
8 MINIO_HOST: minio-packet.freedesktop.org
11 - project: 'freedesktop/ci-templates'
12 ref: 79c325922670137e8f0a4dc5f6f097e0eb57c1af
14 - '/templates/ci-fairy.yml'
15 - project: 'freedesktop/ci-templates'
16 ref: *ci-templates-commit
18 - '/templates/debian.yml'
19 - local: '.gitlab-ci/lava-gitlab-ci.yml'
20 - local: '.gitlab-ci/test-source-dep.yml'
38 # Generic rule to not run the job during scheduled pipelines
39 # ----------------------------------------------------------
40 .scheduled_pipelines-rules:
41 rules: &ignore_scheduled_pipelines
42 if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
45 # YAML anchors for rule conditions
46 # --------------------------------
50 - if: &is-for-marge '$GITLAB_USER_LOGIN == "marge-bot"'
52 # Forked project branch
53 - if: &is-forked-branch '$CI_PROJECT_NAMESPACE != "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
55 # Forked project branch / pre-merge pipeline
56 - if: &is-forked-branch-or-pre-merge '$CI_PROJECT_NAMESPACE != "mesa" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
58 # Pipeline runs for the master branch of the main project
59 - if: &is-main-master '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == "master" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != "master"'
62 - if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
64 # Post-merge pipeline, not for Marge Bot
65 - 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 - if: &is-pre-merge '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
70 # Pre-merge pipeline for Marge Bot
71 - if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
80 - apk --no-cache add graphviz
81 - pip3 install sphinx sphinx_rtd_theme
82 - sphinx-build -b html docs public
92 - *ignore_scheduled_pipelines
98 # Other cases default to never
102 # Cancel job if a newer commit is pushed to the same branch
107 - *ignore_scheduled_pipelines
108 - if: *is-forked-branch
111 # Other cases default to never
119 - if: *is-pre-merge-for-marge
125 # Other cases default to never
127 # When to automatically run the CI
130 - *ignore_scheduled_pipelines
131 # If any files affecting the pipeline are changed, build/test jobs run
132 # automatically once all dependency jobs have passed
133 - changes: &all_paths
135 - bin/git_sha1_gen.py
136 - bin/install_megadrivers.py
137 - bin/meson_get_version.py
138 - bin/symbols-check.py
154 # Otherwise, build/test jobs won't run
159 - runner_system_failure
163 image: debian:stable-slim
165 - *ignore_scheduled_pipelines
171 - changes: *all_paths
178 - echo "Dummy job to make sure every merge request pipeline runs at least one job"
183 name: "mesa_${CI_JOB_NAME}"
187 # Watch out! Artifacts are relative to the build dir.
188 # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
191 # Build the CI docker images.
193 # MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the
194 # image doesn't exist yet, the container stage job generates it.
196 # In order to generate a new image, one should generally change the tag.
197 # While removing the image from the registry would also work, that's not
198 # recommended except for ephemeral images during development: Replacing
199 # an image after a significant amount of time might pull in newer
200 # versions of gcc/clang or other packages, which might break the build
201 # with older commits using the same tag.
203 # After merging a change resulting in generating a new image to the
204 # main repository, it's recommended to remove the image from the source
205 # repository's container registry, so that the image from the main
206 # repository's registry will be used there as well.
213 - *ignore_scheduled_pipelines
214 # Run pipeline by default in the main project if any CI pipeline
215 # configuration files were changed, to ensure docker images are up to date
221 # Run pipeline by default if it was triggered by Marge Bot, is for a
222 # merge request, and any files affecting the pipeline were changed
223 - if: *is-pre-merge-for-marge
227 # Run pipeline by default in the main project if it was not triggered by
228 # Marge Bot, and any files affecting the pipeline were changed
229 - if: *is-post-merge-not-for-marge
233 # Allow triggering jobs manually in other cases if any files affecting the
234 # pipeline were changed
238 # Otherwise, container jobs won't run
241 FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
242 FDO_DISTRIBUTION_VERSION: buster-slim
243 FDO_REPO_SUFFIX: "debian/$CI_JOB_NAME"
244 FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
245 # no need to pull the whole repo to build the container image
251 # Don't want the .container rules
255 FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
257 # Debian 10 based x86 build image base
260 - .fdo.container-build@debian
263 MESA_IMAGE_TAG: &x86_build-base "2021-01-08-more-vulkan-cross"
267 - .fdo.container-build@debian
270 MESA_BASE_IMAGE: "debian/x86_build-base"
271 MESA_BASE_TAG: *x86_build-base
275 # Debian 10 based x86 main build image
278 - .use-x86_build-base
280 MESA_IMAGE_TAG: &x86_build "2021-02-02-procps"
285 image: "$CI_REGISTRY_IMAGE/debian/x86_build:${TAG}--${MESA_TEMPLATES_COMMIT}"
289 # Debian 10 based i386 cross-build image
292 - .use-x86_build-base
294 MESA_IMAGE_TAG: &i386_build "2021-01-08-more-vulkan-cross"
299 image: "$CI_REGISTRY_IMAGE/debian/i386_build:${TAG}--${MESA_TEMPLATES_COMMIT}"
303 # Debian 10 based ppc64el cross-build image
306 - .use-x86_build-base
308 MESA_IMAGE_TAG: &ppc64el_build "2021-01-08-more-vulkan-cross"
313 image: "$CI_REGISTRY_IMAGE/debian/ppc64el_build:${TAG}--${MESA_TEMPLATES_COMMIT}"
317 # Debian 10 based s390x cross-build image
320 - .use-x86_build-base
322 MESA_IMAGE_TAG: &s390x_build "2021-01-08-more-vulkan-cross"
327 image: "$CI_REGISTRY_IMAGE/debian/s390x_build:${TAG}--${MESA_TEMPLATES_COMMIT}"
331 # Android NDK cross-build image
334 - .use-x86_build-base
336 MESA_IMAGE_TAG: &android_build "2020-12-17-use-ephemeral"
341 image: "$CI_REGISTRY_IMAGE/debian/android_build:${TAG}--${MESA_TEMPLATES_COMMIT}"
345 # Debian 10 based x86 test image base
347 extends: x86_build-base
349 MESA_IMAGE_TAG: &x86_test-base "2021-01-14-asan"
353 - .fdo.container-build@debian
356 MESA_BASE_IMAGE: "debian/x86_test-base"
357 MESA_BASE_TAG: *x86_test-base
361 # Debian 10 based x86 test image for GL
363 extends: .use-x86_test-base
365 MESA_IMAGE_TAG: &x86_test-gl "2021-02-05-runner"
367 # Debian 10 based x86 test image for VK
369 extends: .use-x86_test-base
371 MESA_IMAGE_TAG: &x86_test-vk "2021-02-05-runner"
373 # Debian 10 based ARM build image
376 - .fdo.container-build@debian@arm64v8
379 MESA_IMAGE_TAG: &arm_build "2020-12-23-opengl"
384 image: "$CI_REGISTRY_IMAGE/debian/arm_build:${TAG}--${MESA_TEMPLATES_COMMIT}"
388 # Debian 10 based x86 baremetal image base
391 - .fdo.container-build@debian
394 MESA_IMAGE_TAG: &arm_test-base "2021-01-21-noexpect"
398 - .fdo.container-build@debian
401 MESA_BASE_IMAGE: "debian/arm_test-base"
402 MESA_BASE_TAG: *arm_test-base
406 # x86 image with ARM64 rootfs for baremetal testing.
411 MESA_IMAGE_TAG: &arm64_test "2021-02-01-runner"
416 image: "$CI_REGISTRY_IMAGE/debian/arm64_test:${TAG}--${MESA_TEMPLATES_COMMIT}"
420 # x86 image with armhf rootfs for baremetal testing
425 MESA_IMAGE_TAG: &armhf_test "2021-02-01-runner"
430 image: "$CI_REGISTRY_IMAGE/debian/armhf_test:${TAG}--${MESA_TEMPLATES_COMMIT}"
434 # Native Windows docker builds
436 # Unlike the above Linux-based builds - including MinGW/SCons builds which
437 # cross-compile for Windows - which use the freedesktop ci-templates, we
438 # cannot use the same scheme here. As Windows lacks support for
439 # Docker-in-Docker, and Podman does not run natively on Windows, we have
440 # to open-code much of the same ourselves.
442 # This is achieved by first running in a native Windows shell instance
443 # (host PowerShell) in the container stage to build and push the image,
444 # then in the build stage by executing inside Docker.
446 .windows-docker-vs2019:
448 WINDOWS_TAG: "2021-01-29"
449 WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/windows/x64_build:${WINDOWS_TAG}--${MESA_TEMPLATES_COMMIT}"
450 WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows/x64_build:${WINDOWS_TAG}--${MESA_TEMPLATES_COMMIT}"
452 windows_build_vs2019:
455 - .windows-docker-vs2019
458 GIT_STRATEGY: fetch # we do actually need the full repository though
459 timeout: 2h 30m # LLVM + piglit takes ages
466 - .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $WINDOWS_IMAGE $WINDOWS_UPSTREAM_IMAGE
468 .use-windows_build_vs2019:
469 extends: .windows-docker-vs2019
470 image: "$WINDOWS_IMAGE"
472 - windows_build_vs2019
482 - if: *is-scheduled-pipeline
484 # ensure we are running on packet
488 # Compactify the .git directory
489 - git gc --aggressive
490 # compress the current folder
491 - tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
493 # login with the JWT token
494 - ci-fairy minio login $CI_JOB_JWT
495 - ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://$MINIO_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
498 # Sanity checks of MR settings and commit logs
506 # Other cases default to never
510 # ci-fairy check-commits --junit-xml=check-commits.xml
511 - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
520 # Shared between windows and Linux
522 extends: .ci-run-policy
523 # Cancel job if a newer commit is pushed to the same branch
526 name: "mesa_${CI_JOB_NAME}"
529 - _build/meson-logs/*.txt
536 extends: .build-common
538 CCACHE_COMPILERCHECK: "content"
539 CCACHE_COMPRESS: "true"
540 CCACHE_DIR: /cache/mesa/ccache
541 # Use ccache transparently, and print stats before/after
543 - export PATH="/usr/lib/ccache:$PATH"
544 - export CCACHE_BASEDIR="$PWD"
545 - ccache --show-stats
547 - ccache --show-stats
550 extends: .build-common
559 - subprojects/packagecache
569 - .gitlab-ci/meson-build.sh
577 - env SCONSFLAGS="-j${FDO_CI_CONCURRENT:-4}" .gitlab-ci/scons-build.sh
592 GALLIUM_DRIVERS: "swrast,virgl,radeonsi"
593 VULKAN_DRIVERS: "swrast,amd"
594 BUILDTYPE: "debugoptimized"
600 - .gitlab-ci/meson-build.sh
601 - .gitlab-ci/prepare-artifacts.sh
608 -D b_sanitize=address
610 ARTIFACTS_DEBUG_SYMBOLS: 1
612 meson-clover-testing:
624 -D gallium-opencl=icd
626 GALLIUM_DRIVERS: "swrast"
627 BUILDTYPE: "debugoptimized"
631 - .gitlab-ci/meson-build.sh
632 - .gitlab-ci/prepare-artifacts.sh
635 extends: .meson-build
642 -D platforms=x11,wayland
645 -D gallium-extra-hud=true
646 -D gallium-vdpau=enabled
647 -D gallium-xvmc=enabled
648 -D gallium-omx=bellagio
649 -D gallium-va=enabled
650 -D gallium-xa=enabled
652 -D gallium-opencl=disabled
653 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12"
654 VULKAN_DRIVERS: swrast
660 - .gitlab-ci/meson-build.sh
661 - .gitlab-ci/run-shader-db.sh
662 - src/freedreno/.gitlab-ci/run-fdtools.sh
664 # Test a release build with -Werror so new warnings don't sneak in.
666 extends: .meson-build
673 -D platforms=x11,wayland
676 -D gallium-extra-hud=true
677 -D gallium-vdpau=enabled
678 -D gallium-xvmc=disabled
679 -D gallium-omx=disabled
680 -D gallium-va=enabled
681 -D gallium-xa=enabled
682 -D gallium-nine=false
683 -D gallium-opencl=disabled
685 GALLIUM_DRIVERS: "nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12"
692 - .gitlab-ci/meson-build.sh
708 -D platform-sdk-version=26
711 -D gallium-vdpau=disabled
712 -D gallium-xvmc=disabled
713 -D gallium-omx=disabled
714 -D gallium-va=disabled
715 -D gallium-xa=disabled
716 -D gallium-nine=false
717 -D gallium-opencl=disabled
720 # arm64 build: Can't build v3d/vc4 because they require expat for v3d_decode.
721 - 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
723 # Can't do Intel because gen_decoder.c currently requires libexpat, which
724 # is not a dependency that AOSP wants to accept. Can't do Radeon because
725 # it requires LLVM, which we don't have an Android build of.
726 # - 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
742 -D gallium-vdpau=disabled
743 -D gallium-xvmc=disabled
744 -D gallium-omx=disabled
745 -D gallium-va=disabled
746 -D gallium-xa=disabled
747 -D gallium-nine=false
757 VULKAN_DRIVERS: freedreno,broadcom
758 GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
759 BUILDTYPE: "debugoptimized"
775 - .gitlab-ci/meson-build.sh
776 - .gitlab-ci/prepare-artifacts.sh
783 VULKAN_DRIVERS: "freedreno,broadcom"
789 - .gitlab-ci/meson-build.sh
790 - .gitlab-ci/prepare-artifacts.sh
792 meson-arm64-build-test:
797 VULKAN_DRIVERS: "amd"
802 - .gitlab-ci/meson-build.sh
805 extends: .meson-build
811 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12"
812 VULKAN_DRIVERS: intel,amd,freedreno,broadcom
813 CC: "ccache clang-10"
814 CXX: "ccache clang++-10"
816 meson-windows-vs2019:
819 - .use-windows_build_vs2019
820 - .windows-build-rules
823 - . .\.gitlab-ci\windows\mesa_build.ps1
831 - .use-windows_build_vs2019
832 - .windows-test-rules
833 stage: layered-backends
835 - meson-windows-vs2019
837 - meson-windows-vs2019
839 GIT_STRATEGY: none # testing doesn't build anything from source
840 GALLIUM_DRIVER: d3d12
841 PIGLIT_PROFILE: quick_gl
842 PIGLIT_OPTIONS: -x nv_copy_depth_to_color -x repeat-wait
844 - . _install/piglit_run.ps1
847 name: "mesa_${CI_JOB_NAME}"
852 extends: .scons-build
854 SCONS_TARGET: platform=windows machine=x86_64 debug=1
855 SCONS_CHECK_COMMAND: "true"
859 extends: .meson-build
866 GALLIUM_DRIVERS: "r600,radeonsi"
869 -D gallium-vdpau=disabled
870 -D gallium-xvmc=disabled
871 -D gallium-omx=disabled
872 -D gallium-va=disabled
873 -D gallium-xa=disabled
874 -D gallium-nine=false
875 -D gallium-opencl=icd
879 - LLVM_VERSION=8 .gitlab-ci/meson-build.sh
880 - LLVM_VERSION=9 .gitlab-ci/meson-build.sh
881 - .gitlab-ci/meson-build.sh
884 extends: .meson-build
891 -D platforms=x11,wayland
895 -D gallium-vdpau=disabled
896 -D gallium-xvmc=disabled
897 -D gallium-omx=disabled
898 -D gallium-va=disabled
899 -D gallium-xa=disabled
900 -D gallium-nine=false
901 -D gallium-opencl=disabled
902 -D b_sanitize=undefined
903 -D c_args=-fno-sanitize-recover=all
904 -D cpp_args=-fno-sanitize-recover=all
905 UBSAN_OPTIONS: "print_stacktrace=1"
906 VULKAN_DRIVERS: intel,amd,freedreno,broadcom
908 -D vulkan-overlay-layer=true
909 -D vulkan-device-select-layer=true
910 -D build-aco-tests=true
919 VULKAN_DRIVERS: intel,amd,swrast
920 GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink"
921 DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
923 -D vulkan-overlay-layer=true
924 -D vulkan-device-select-layer=true
937 GALLIUM_DRIVERS: "swrast,zink"
938 VULKAN_DRIVERS: "swrast"
948 GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
949 VULKAN_DRIVERS: "amd,swrast"
951 meson-mingw32-x86_64:
952 extends: .meson-build
957 GALLIUM_DRIVERS: "swrast"
961 --cross-file=.gitlab-ci/x86_64-w64-mingw32
966 # Cancel job if a newer commit is pushed to the same branch
969 GIT_STRATEGY: none # testing doesn't build anything from source
971 # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
973 - tar -xf artifacts/install.tar
974 - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
977 name: "mesa_${CI_JOB_NAME}"
986 image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:${TAG}--${MESA_TEMPLATES_COMMIT}"
1002 image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:${TAG}--${MESA_TEMPLATES_COMMIT}"
1012 - meson-clover-testing
1017 name: "mesa_${CI_JOB_NAME}"
1024 - install/piglit/run.sh
1026 .piglit-traces-test:
1035 name: "mesa_${CI_JOB_NAME}"
1037 junit: results/junit.xml
1039 PIGLIT_PROFILES: replay
1040 PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
1041 PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/
1042 PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL: "/mesa-tracie-results/$FDO_UPSTREAM_REPO"
1043 PIGLIT_REPLAY_ARTIFACTS_BASE_URL: "/artifacts/$CI_PROJECT_PATH/$CI_PIPELINE_ID/$CI_JOB_ID"
1044 PIGLIT_HTML_SUMMARY: 0
1045 PIGLIT_JUNIT_RESULTS: 1
1051 LIBGL_ALWAYS_SOFTWARE: "true"
1052 GALLIUM_DRIVER: "llvmpipe"
1059 - .llvmpipe-cl-rules
1064 PIGLIT_RESULTS: "llvmpipe-cl"
1066 -x bswap -x phatk -x clz-optimizations
1068 - install/piglit/run_cl.sh
1070 llvmpipe-piglit-quick_gl:
1078 --process-isolation false
1080 -x egl_ext_platform_device
1081 -x ext_timer_query@time-elapsed
1082 -x glx-multithread-clearbuffer
1083 -x glx-multithread-shader-compile
1086 PIGLIT_PROFILES: quick_gl
1087 PIGLIT_RESULTS: "llvmpipe-quick_gl"
1089 llvmpipe-piglit-glslparser:
1096 PIGLIT_PROFILES: glslparser
1097 PIGLIT_RESULTS: "llvmpipe-glslparser"
1099 llvmpipe-piglit-quick_shader:
1106 PIGLIT_PROFILES: quick_shader
1107 PIGLIT_RESULTS: "llvmpipe-quick_shader"
1112 - .piglit-traces-test
1115 EGL_PLATFORM: "surfaceless"
1116 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-llvmpipe.yml"
1117 PIGLIT_REPLAY_DEVICE_NAME: "gl-vmware-llvmpipe"
1118 PIGLIT_RESULTS: "llvmpipe-replay"
1125 LIBGL_ALWAYS_SOFTWARE: "true"
1126 GALLIUM_DRIVER: "virpipe"
1130 - .piglit-traces-test
1133 EGL_PLATFORM: "surfaceless"
1134 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-virgl.yml"
1135 PIGLIT_REPLAY_DEVICE_NAME: "gl-virgl"
1136 PIGLIT_RESULTS: "virgl-replay"
1137 MESA_GLES_VERSION_OVERRIDE: "3.1"
1138 MESA_GLSL_VERSION_OVERRIDE: "310"
1142 - .piglit-traces-test
1145 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1147 PIGLIT_REPLAY_DESCRIPTION_FILE: "/install/traces-freedreno.yml"
1148 PIGLIT_REPLAY_DEVICE_NAME: "freedreno-a630"
1149 PIGLIT_RESULTS: "freedreno-a630-replay"
1150 # This lets us run several more traces which don't use any features we're
1152 MESA_GLSL_VERSION_OVERRIDE: "460"
1153 MESA_GL_VERSION_OVERRIDE: "4.6"
1156 junit: results/junit.xml
1158 radv-polaris10-traces:
1160 - .piglit-traces-test
1165 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-radv.yml"
1166 PIGLIT_REPLAY_DEVICE_NAME: "vk-amd-polaris10"
1167 PIGLIT_RESULTS: "radv-polaris10-replay"
1173 - .piglit-traces-test
1178 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-radv.yml"
1179 PIGLIT_REPLAY_DEVICE_NAME: "vk-amd-raven"
1180 PIGLIT_RESULTS: "radv-raven-replay"
1186 - ./install/deqp-runner.sh
1189 junit: results/junit.xml
1199 - ./install/fossilize-runner.sh
1202 name: "mesa_${CI_JOB_NAME}"
1209 # Don't use threads inside llvmpipe, we've already got all cores
1210 # busy at the deqp-runner level.
1212 GPU_VERSION: llvmpipe
1213 DEQP_EXPECTED_RENDERER: llvmpipe
1224 GPU_VERSION: softpipe
1225 GALLIUM_DRIVER: "softpipe"
1226 DEQP_EXPECTED_RENDERER: softpipe
1231 extends: softpipe-gles2
1237 extends: softpipe-gles2
1239 softpipe-asan-gles31:
1241 GPU_VERSION: softpipe-asan
1244 TEST_LD_PRELOAD: libasan.so.5
1245 extends: softpipe-gles2
1248 - meson-testing-asan
1250 softpipe-piglit-quick:
1256 GALLIUM_DRIVER: softpipe
1257 # rasterpos skipped until we uprev piglit (commit ff2a7650be7349)
1258 # triangle-rasterization skipped due to flakes thanks to it using a time-based random seed.
1259 # glx-multithread-texture is flaky, undiagnosed
1262 -x triangle-rasterization
1263 -x glx-multithread-texture
1265 -x egl_ext_platform_device
1266 -x ext_timer_query@time-elapsed
1267 -x glx-multithread-clearbuffer
1268 -x glx-multithread-shader-compile
1271 -x fs-execution-ordering
1272 -x local-id-explosion
1273 -x arb_pipeline_statistics_query-comp
1274 -x streaming-texture-leak
1276 -x shader-mem-barrier
1277 -x arb_gpu_shader_fp64
1278 -x arb_gpu_shader_int64
1279 -x arb_tessellation_shader
1288 PIGLIT_PROFILES: quick_gl quick_shader
1289 PIGLIT_RESULTS: softpipe-quick
1291 # Note that KHR-GL3* test sets include all tests from the previous
1292 # version, so we only need to run one test list (unlike dEQP-GLES,
1293 # where the test sets are separate).
1303 DEQP_NO_SAVE_RESULTS: 1
1304 GPU_VERSION: virgl-gl
1305 # Don't use threads inside llvmpipe, we've already got all cores
1306 # busy at the deqp-runner level.
1308 DEQP_OPTIONS: "--deqp-log-images=disable"
1309 DEQP_EXPECTED_RENDERER: virgl
1317 DEQP_RUNNER_OPTIONS: "--timeout 180"
1318 extends: virgl-gles2-on-gl
1324 MESA_GLES_VERSION_OVERRIDE: "3.1"
1325 MESA_GLSL_VERSION_OVERRIDE: "310"
1326 MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
1327 extends: virgl-gles3-on-gl
1332 extends: virgl-gles2-on-gl
1337 extends: virgl-gles2-on-gl
1342 extends: virgl-gles2-on-gl
1344 # Rules for tests that should not be present in MRs or the main
1345 # project's pipeline (don't block marge or report red on
1346 # mesa/mesamaster) but should be present on pipelines in personal
1347 # branches (so you can opt in to running the flaky test when you want
1351 - *ignore_scheduled_pipelines
1352 - if: *is-forked-branch
1360 virgl-gles2-on-gles:
1362 VIRGL_HOST_API: GLES
1363 GPU_VERSION: virgl-gles
1368 virgl-gles3-on-gles:
1370 VIRGL_HOST_API: GLES
1371 GPU_VERSION: virgl-gles
1376 virgl-gles31-on-gles:
1378 VIRGL_HOST_API: GLES
1379 GPU_VERSION: virgl-gles
1381 - virgl-gles31-on-gl
1388 BM_KERNEL: /lava-files/cheza-kernel
1389 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
1390 GPU_VERSION: freedreno-a630
1391 BM_DTB: /lava-files/db820c.dtb
1392 DEQP_EXPECTED_RENDERER: FD630
1394 - google-freedreno-cheza
1396 - ./install/bare-metal/cros-servo.sh
1400 - .baremetal-deqp-test
1407 - .baremetal-deqp-test
1414 - .baremetal-deqp-test
1421 - .baremetal-deqp-test
1426 arm64_a630_gles_others:
1428 - .baremetal-deqp-test
1431 BARE_METAL_TEST_SCRIPT: "/install/bare-metal/arm64_a630_gles_others.sh"
1435 - .baremetal-deqp-test-freedreno-vk
1440 # Force binning in the main run, which makes sure we render at
1441 # least 2 bins. This is the path that impacts the most different
1442 # features. However, we end up with flaky results in
1443 # dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
1446 # Do a separate sysmem pass over the testcases that really affect sysmem
1447 # rendering. This is currently very flaky, leave it as an option for devs
1448 # to click play on in their branches.
1449 arm64_a630_vk_sysmem:
1451 - .baremetal-deqp-test-freedreno-vk
1455 DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
1456 GPU_VERSION: freedreno-a630-bypass
1465 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1467 # Excluding various features we don't support to keep runtime down in
1468 # deciding that they aren't supported.
1470 # Also excluding some particularly slow tests (gl-1.3-texture-env takes 100s)
1472 # Known flakes in the list are between "arb_blend_func_extended" and
1475 # vs-output-array-vec2-index-wr-before-gs is skipped because it causes
1476 # a flood of GPU hangs and makes the rest of the job flakey
1478 # vs-clip-distance/vertex-enables skipped because they seem to be flaky in
1479 # parallel with other tests (reliably fails on its own)
1481 -x vs-output-array-vec2-index-wr-before-gs
1482 -x fixed-clip-enables
1483 -x vs-clip-distance-enables
1484 -x vs-clip-vertex-enables
1485 -x arb_blend_func_extended-fbo-extended-blend-pattern_gles2
1488 -x copyteximage-border
1491 -x getteximage-simple
1499 -x egl_ext_platform_device
1500 -x ext_timer_query@time-elapsed
1501 -x glx-multithread-clearbuffer
1502 -x glx-multithread-shader-compile
1505 -x arb_gpu_shader_fp64
1506 -x arb_gpu_shader_gpu5
1507 -x arb_gpu_shader_int64
1515 -x gl-1.3-texture-env
1517 # Takes ~20 minutes, so manual-only until we can sort out runtime.
1518 arm64_a630_piglit_gl:
1520 - .arm64_a630_piglit
1523 PIGLIT_PROFILES: quick_gl
1524 PIGLIT_RESULTS: freedreno-a630-gl
1526 arm64_a630_piglit_shader:
1528 - .arm64_a630_piglit
1530 PIGLIT_PROFILES: quick_shader
1531 PIGLIT_RESULTS: freedreno-a630-shader
1537 # Cancel job if a newer commit is pushed to the same branch
1541 DRIVER_URL: https://minio-packet.freedesktop.org/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/mesa-arm64.tar.gz
1543 # Use this instead of gitlab's artifacts download because it hits packet.net
1544 # instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to
1545 # improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for
1547 - wget ${FDO_HTTP_CACHE_URI:-}${DRIVER_URL} -S --progress=dot:giga -O- | tar -xz
1550 name: "mesa_${CI_JOB_NAME}"
1555 - results/*.shader_cache
1557 junit: results/junit.xml
1565 BM_ROOTFS: /lava-files/rootfs-arm64
1566 FLAKES_CHANNEL: "#freedreno-ci"
1567 PIGLIT_PLATFORM: mixed_glx_egl
1569 - ./install/bare-metal/fastboot.sh
1575 - google-freedreno-db410c
1577 .baremetal-deqp-test:
1579 BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
1580 DEQP_SKIPS: deqp-default-skips.txt
1581 DEQP_PARALLEL: 0 # Default to number of CPUs
1583 .baremetal-deqp-test-freedreno-vk:
1585 - .baremetal-deqp-test
1588 VK_DRIVER: freedreno
1594 BM_KERNEL: /lava-files/Image.gz
1595 BM_DTB: /lava-files/apq8016-sbc.dtb
1596 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
1597 GPU_VERSION: freedreno-a307
1598 DEQP_EXPECTED_RENDERER: FD307
1602 - .baremetal-deqp-test
1607 # Fractional run, single threaded, due to flaky results
1610 - .baremetal-deqp-test
1617 # Fractional runs with debug options. Note that since we're not
1618 # hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
1619 arm64_a306_gles3_options:
1621 - .baremetal-deqp-test
1626 # Check that the non-constbuf UBO case works.
1627 - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
1633 BM_KERNEL: /lava-files/db820c-kernel
1634 BM_DTB: /lava-files/db820c.dtb
1635 # Disable SMP because only CPU 0 is at a freq higher than 19mhz on
1636 # current upstream kernel.
1637 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 nosmp"
1638 FDO_CI_CONCURRENT: 1
1639 GPU_VERSION: freedreno-a530
1640 DEQP_EXPECTED_RENDERER: FD530
1642 - google-freedreno-db820c
1646 - .baremetal-deqp-test
1654 - .baremetal-deqp-test
1673 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1675 # SMP is disabled in the current kernels for db820c.
1676 FDO_CI_CONCURRENT: 1
1677 # Excluding for flakes in multisample (MSAA fails covered well by deqp, we
1678 # can enable it once we stabilize that.) and other flakes from
1679 # atomic_counters through userclip in the list.
1681 # Also excluding some particularly slow tests (gl-1.3-texture-env)
1683 # Check fastboot.sh for more piglit tests being excluded!
1686 -x gl-1.0-blend-func
1687 -x glsl-1.30@execution@clipping
1689 -x arb_texture_multisample
1690 -x ext_framebuffer_multisample
1692 -x egl_ext_platform_device
1693 -x ext_timer_query@time-elapsed
1694 -x glx-multithread-clearbuffer
1695 -x glx-multithread-shader-compile
1699 -x arb_gpu_shader_fp64
1700 -x arb_gpu_shader_int64
1701 -x arb_tessellation_shader
1710 -x gl-1.3-texture-env
1712 # Takes ~25 minutes, so manual-only until we can sort out runtime.
1713 arm64_a530_piglit_gl:
1715 - .arm64_a530_piglit
1717 PIGLIT_PROFILES: quick_gl
1718 PIGLIT_RESULTS: freedreno-a530-gl
1720 arm64_a530_piglit_shader:
1722 - .arm64_a530_piglit
1724 PIGLIT_PROFILES: quick_shader
1725 PIGLIT_RESULTS: freedreno-a530-shader
1727 .vc4-rpi3-test:armhf:
1733 BM_BOOTFS: /boot/armhf
1734 BM_KERNEL_MODULES: vc4
1735 BM_ROOTFS: /lava-files/rootfs-armhf
1736 BM_ROOTFS_EXTRA: /modules/armhf
1737 GPU_VERSION: vc4-rpi3
1738 DEQP_EXPECTED_RENDERER: VC4
1739 DRIVER_URL: https://minio-packet.freedesktop.org/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/mesa-armhf.tar.gz
1741 - ./install/bare-metal/poe-powered.sh
1749 vc4-rpi3-gles2:armhf:
1751 - .vc4-rpi3-test:armhf
1754 BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
1756 # The vc4s are so slow that it takes about a minute to get through the
1757 # default 500 tests in a group, triggering the serial watchdog.
1758 DEQP_RUNNER_OPTIONS: "--tests-per-group 250"
1760 .vc4-rpi3-piglit:armhf:
1763 - .vc4-rpi3-test:armhf
1766 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1772 -x arb_gpu_shader_fp64
1773 -x arb_gpu_shader_gpu5
1774 -x arb_gpu_shader_int64
1775 -x arb_tessellation_shader
1776 -x arb_texture_cube_map
1780 -x depthstencil-default_fb
1783 -x egl_ext_platform_device
1784 -x ext_framebuffer_multisample
1785 -x ext_timer_query@time-elapsed
1786 -x gl-1.0-blend-func
1787 -x gl-1.3-texture-env
1799 -x glsl-fs-convolution-2
1801 -x glsl-vs-loop-nested
1802 -x glsl-vs-mov-after-deref
1803 -x glx-multithread-clearbuffer
1804 -x glx-multithread-shader-compile
1810 -x ppgtt_memory_alignment
1811 -x streaming-texture-leak
1813 PIGLIT_PLATFORM: gbm
1815 vc4-rpi3-piglit-quick_gl:armhf:
1817 - .vc4-rpi3-piglit:armhf
1819 FDO_CI_CONCURRENT: 1
1820 PIGLIT_PROFILES: quick_gl
1821 PIGLIT_RESULTS: "vc4-rpi3-quick_gl"
1823 vc4-rpi3-piglit-quick_shader:armhf:
1825 - .vc4-rpi3-piglit:armhf
1827 FDO_CI_CONCURRENT: 2
1828 PIGLIT_PROFILES: quick_shader
1829 PIGLIT_RESULTS: "vc4-rpi3-quick_shader"
1832 stage: software-renderer
1850 ACO_DEBUG: validateir,validatera
1852 # Can only be triggered manually on personal branches because RADV is the only
1853 # driver that does Vulkan testing at the moment.
1854 radv_polaris10_vkcts:
1860 GPU_VERSION: radv-polaris10
1870 - export RADV_FORCE_FAMILY="pitcairn"
1871 - ./install/fossilize-runner.sh
1873 - export RADV_FORCE_FAMILY="bonaire"
1874 - ./install/fossilize-runner.sh
1876 - export RADV_FORCE_FAMILY="polaris10"
1877 - ./install/fossilize-runner.sh
1879 - export RADV_FORCE_FAMILY="gfx900"
1880 - ./install/fossilize-runner.sh
1882 - export RADV_FORCE_FAMILY="gfx1010"
1883 - ./install/fossilize-runner.sh
1884 # Sienna Cichlid (GFX10)
1885 - export RADV_FORCE_FAMILY="gfx1030"
1886 - ./install/fossilize-runner.sh