2 FDO_UPSTREAM_REPO: mesa/mesa
3 MESA_TEMPLATES_COMMIT: &ci-templates-commit 43ac932d5b8ebf43040d302de3c6e734df178384
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: *ci-templates-commit
14 - '/templates/ci-fairy.yml'
15 - project: 'freedesktop/ci-templates'
16 ref: 52dd4a94044449c8481d18dcdc221a3c636366d2
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-1-4-directx-headers"
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 "2020-12-17-install-ci-fairy"
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 "2020-12-22-runner"
367 # Debian 10 based x86 test image for VK
369 extends: .use-x86_test-base
371 MESA_IMAGE_TAG: &x86_test-vk "2020-12-22-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 "2020-12-03-expect"
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 "2020-12-23-piglit-2"
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 "2020-12-23-piglit-2"
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: "2020-12-02"
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 # 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
611 meson-clover-testing:
623 -D gallium-opencl=icd
625 GALLIUM_DRIVERS: "swrast"
626 BUILDTYPE: "debugoptimized"
630 - .gitlab-ci/meson-build.sh
631 - .gitlab-ci/prepare-artifacts.sh
634 extends: .meson-build
641 -D platforms=x11,wayland
644 -D gallium-extra-hud=true
645 -D gallium-vdpau=enabled
646 -D gallium-xvmc=enabled
647 -D gallium-omx=bellagio
648 -D gallium-va=enabled
649 -D gallium-xa=enabled
651 -D gallium-opencl=disabled
652 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12"
653 VULKAN_DRIVERS: swrast
659 - .gitlab-ci/meson-build.sh
660 - .gitlab-ci/run-shader-db.sh
661 - src/freedreno/.gitlab-ci/run-fdtools.sh
663 # Test a release build with -Werror so new warnings don't sneak in.
665 extends: .meson-build
672 -D platforms=x11,wayland
675 -D gallium-extra-hud=true
676 -D gallium-vdpau=enabled
677 -D gallium-xvmc=disabled
678 -D gallium-omx=disabled
679 -D gallium-va=enabled
680 -D gallium-xa=enabled
681 -D gallium-nine=false
682 -D gallium-opencl=disabled
684 GALLIUM_DRIVERS: "nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12"
691 - .gitlab-ci/meson-build.sh
707 -D platform-sdk-version=26
710 -D gallium-vdpau=disabled
711 -D gallium-xvmc=disabled
712 -D gallium-omx=disabled
713 -D gallium-va=disabled
714 -D gallium-xa=disabled
715 -D gallium-nine=false
716 -D gallium-opencl=disabled
719 # arm64 build: Can't build v3d/vc4 because they require expat for v3d_decode.
720 - 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
722 # Can't do Intel because gen_decoder.c currently requires libexpat, which
723 # is not a dependency that AOSP wants to accept. Can't do Radeon because
724 # it requires LLVM, which we don't have an Android build of.
725 # - 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
741 -D gallium-vdpau=disabled
742 -D gallium-xvmc=disabled
743 -D gallium-omx=disabled
744 -D gallium-va=disabled
745 -D gallium-xa=disabled
746 -D gallium-nine=false
756 VULKAN_DRIVERS: freedreno,broadcom
757 GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
758 BUILDTYPE: "debugoptimized"
774 - .gitlab-ci/meson-build.sh
775 - .gitlab-ci/prepare-artifacts.sh
782 VULKAN_DRIVERS: "freedreno,broadcom"
788 - .gitlab-ci/meson-build.sh
789 - .gitlab-ci/prepare-artifacts.sh
791 meson-arm64-build-test:
796 VULKAN_DRIVERS: "amd"
801 - .gitlab-ci/meson-build.sh
804 extends: .meson-build
810 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12"
811 VULKAN_DRIVERS: intel,amd,freedreno,broadcom
812 CC: "ccache clang-10"
813 CXX: "ccache clang++-10"
815 meson-windows-vs2019:
818 - .use-windows_build_vs2019
819 - .windows-build-rules
822 - . .\.gitlab-ci\windows\mesa_build.ps1
830 - .use-windows_build_vs2019
831 - .windows-test-rules
832 stage: layered-backends
834 - meson-windows-vs2019
836 - meson-windows-vs2019
838 GIT_STRATEGY: none # testing doesn't build anything from source
839 GALLIUM_DRIVER: d3d12
840 PIGLIT_PROFILE: quick_gl
841 PIGLIT_OPTIONS: -x nv_copy_depth_to_color -x repeat-wait
843 - . _install/piglit_run.ps1
846 name: "mesa_${CI_JOB_NAME}"
851 extends: .scons-build
853 SCONS_TARGET: platform=windows machine=x86_64 debug=1
854 SCONS_CHECK_COMMAND: "true"
858 extends: .meson-build
865 GALLIUM_DRIVERS: "r600,radeonsi"
868 -D gallium-vdpau=disabled
869 -D gallium-xvmc=disabled
870 -D gallium-omx=disabled
871 -D gallium-va=disabled
872 -D gallium-xa=disabled
873 -D gallium-nine=false
874 -D gallium-opencl=icd
878 - LLVM_VERSION=8 .gitlab-ci/meson-build.sh
879 - LLVM_VERSION=9 .gitlab-ci/meson-build.sh
880 - .gitlab-ci/meson-build.sh
883 extends: .meson-build
890 -D platforms=x11,wayland
894 -D gallium-vdpau=disabled
895 -D gallium-xvmc=disabled
896 -D gallium-omx=disabled
897 -D gallium-va=disabled
898 -D gallium-xa=disabled
899 -D gallium-nine=false
900 -D gallium-opencl=disabled
901 -D b_sanitize=undefined
902 -D c_args=-fno-sanitize-recover=all
903 -D cpp_args=-fno-sanitize-recover=all
904 UBSAN_OPTIONS: "print_stacktrace=1"
905 VULKAN_DRIVERS: intel,amd,freedreno,broadcom
907 -D vulkan-overlay-layer=true
908 -D vulkan-device-select-layer=true
909 -D build-aco-tests=true
918 VULKAN_DRIVERS: intel,amd,swrast
919 GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink"
920 DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
922 -D vulkan-overlay-layer=true
923 -D vulkan-device-select-layer=true
936 GALLIUM_DRIVERS: "swrast,zink"
937 VULKAN_DRIVERS: "swrast"
947 GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
948 VULKAN_DRIVERS: "amd,swrast"
950 meson-mingw32-x86_64:
951 extends: .meson-build
956 GALLIUM_DRIVERS: "swrast"
960 --cross-file=.gitlab-ci/x86_64-w64-mingw32
965 # Cancel job if a newer commit is pushed to the same branch
968 GIT_STRATEGY: none # testing doesn't build anything from source
970 # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
972 - tar -xf artifacts/install.tar
973 - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
976 name: "mesa_${CI_JOB_NAME}"
985 image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:${TAG}-${MESA_TEMPLATES_COMMIT}"
1001 image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:${TAG}-${MESA_TEMPLATES_COMMIT}"
1011 - meson-clover-testing
1016 name: "mesa_${CI_JOB_NAME}"
1023 - install/piglit/run.sh
1025 .piglit-traces-test:
1034 name: "mesa_${CI_JOB_NAME}"
1036 junit: results/junit.xml
1038 PIGLIT_PROFILES: replay
1039 PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
1040 PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/
1041 PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL: "/mesa-tracie-results/$CI_PROJECT_PATH"
1042 PIGLIT_REPLAY_ARTIFACTS_BASE_URL: "/artifacts/$CI_PROJECT_PATH/$CI_PIPELINE_ID/$CI_JOB_ID"
1043 PIGLIT_HTML_SUMMARY: 0
1044 PIGLIT_JUNIT_RESULTS: 1
1050 LIBGL_ALWAYS_SOFTWARE: "true"
1051 GALLIUM_DRIVER: "llvmpipe"
1058 - .llvmpipe-cl-rules
1063 PIGLIT_RESULTS: "llvmpipe-cl"
1065 -x bswap -x phatk -x clz-optimizations
1067 - install/piglit/run_cl.sh
1069 llvmpipe-piglit-quick_gl:
1077 --process-isolation false
1079 -x egl_ext_platform_device
1080 -x ext_timer_query@time-elapsed
1081 -x glx-multithread-clearbuffer
1082 -x glx-multithread-shader-compile
1085 PIGLIT_PROFILES: quick_gl
1086 PIGLIT_RESULTS: "llvmpipe-quick_gl"
1088 llvmpipe-piglit-glslparser:
1095 PIGLIT_PROFILES: glslparser
1096 PIGLIT_RESULTS: "llvmpipe-glslparser"
1098 llvmpipe-piglit-quick_shader:
1105 PIGLIT_PROFILES: quick_shader
1106 PIGLIT_RESULTS: "llvmpipe-quick_shader"
1111 - .piglit-traces-test
1114 EGL_PLATFORM: "surfaceless"
1115 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-llvmpipe.yml"
1116 PIGLIT_REPLAY_DEVICE_NAME: "gl-vmware-llvmpipe"
1117 PIGLIT_RESULTS: "llvmpipe-replay"
1124 LIBGL_ALWAYS_SOFTWARE: "true"
1125 GALLIUM_DRIVER: "virpipe"
1129 - .piglit-traces-test
1132 EGL_PLATFORM: "surfaceless"
1133 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-virgl.yml"
1134 PIGLIT_REPLAY_DEVICE_NAME: "gl-virgl"
1135 PIGLIT_RESULTS: "virgl-replay"
1136 MESA_GLES_VERSION_OVERRIDE: "3.1"
1137 MESA_GLSL_VERSION_OVERRIDE: "310"
1141 - .piglit-traces-test
1144 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1145 EGL_PLATFORM: "surfaceless"
1146 PIGLIT_REPLAY_DESCRIPTION_FILE: "/install/traces-freedreno.yml"
1147 PIGLIT_REPLAY_DEVICE_NAME: "freedreno-a630"
1148 PIGLIT_RESULTS: "freedreno-a630-replay"
1149 # This lets us run several more traces which don't use any features we're
1151 MESA_GLSL_VERSION_OVERRIDE: "460"
1152 MESA_GL_VERSION_OVERRIDE: "4.6"
1155 junit: results/junit.xml
1157 radv-polaris10-traces:
1159 - .piglit-traces-test
1164 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-radv.yml"
1165 PIGLIT_REPLAY_DEVICE_NAME: "vk-amd-polaris10"
1166 PIGLIT_RESULTS: "radv-polaris10-replay"
1172 - .piglit-traces-test
1177 PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-radv.yml"
1178 PIGLIT_REPLAY_DEVICE_NAME: "vk-amd-raven"
1179 PIGLIT_RESULTS: "radv-raven-replay"
1185 - ./install/deqp-runner.sh
1188 junit: results/junit.xml
1198 - ./install/fossilize-runner.sh
1201 name: "mesa_${CI_JOB_NAME}"
1208 # Don't use threads inside llvmpipe, we've already got all cores
1209 # busy at the deqp-runner level.
1211 GPU_VERSION: llvmpipe
1212 DEQP_EXPECTED_RENDERER: llvmpipe
1223 GPU_VERSION: softpipe
1224 GALLIUM_DRIVER: "softpipe"
1225 DEQP_EXPECTED_RENDERER: softpipe
1230 extends: softpipe-gles2
1236 extends: softpipe-gles2
1238 softpipe-piglit-quick:
1244 GALLIUM_DRIVER: softpipe
1245 # rasterpos skipped until we uprev piglit (commit ff2a7650be7349)
1246 # triangle-rasterization skipped due to flakes thanks to it using a time-based random seed.
1247 # glx-multithread-texture is flaky, undiagnosed
1249 --process-isolation false
1251 -x triangle-rasterization
1252 -x glx-multithread-texture
1254 -x egl_ext_platform_device
1255 -x ext_timer_query@time-elapsed
1256 -x glx-multithread-clearbuffer
1257 -x glx-multithread-shader-compile
1260 -x fs-execution-ordering
1261 -x local-id-explosion
1262 -x arb_pipeline_statistics_query-comp
1263 -x streaming-texture-leak
1265 -x shader-mem-barrier
1266 -x arb_gpu_shader_fp64
1267 -x arb_gpu_shader_int64
1268 -x arb_tessellation_shader
1277 PIGLIT_PROFILES: quick_gl quick_shader
1278 PIGLIT_RESULTS: softpipe-quick
1280 # Note that KHR-GL3* test sets include all tests from the previous
1281 # version, so we only need to run one test list (unlike dEQP-GLES,
1282 # where the test sets are separate).
1292 DEQP_NO_SAVE_RESULTS: 1
1293 GPU_VERSION: virgl-gl
1294 # Don't use threads inside llvmpipe, we've already got all cores
1295 # busy at the deqp-runner level.
1297 DEQP_OPTIONS: "--deqp-log-images=disable"
1298 DEQP_EXPECTED_RENDERER: virgl
1306 DEQP_RUNNER_OPTIONS: "--timeout 180"
1307 extends: virgl-gles2-on-gl
1313 MESA_GLES_VERSION_OVERRIDE: "3.1"
1314 MESA_GLSL_VERSION_OVERRIDE: "310"
1315 MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
1316 extends: virgl-gles3-on-gl
1321 extends: virgl-gles2-on-gl
1326 extends: virgl-gles2-on-gl
1331 extends: virgl-gles2-on-gl
1333 # Rules for tests that should not be present in MRs or the main
1334 # project's pipeline (don't block marge or report red on
1335 # mesa/mesamaster) but should be present on pipelines in personal
1336 # branches (so you can opt in to running the flaky test when you want
1340 - *ignore_scheduled_pipelines
1341 - if: *is-forked-branch
1349 virgl-gles2-on-gles:
1351 VIRGL_HOST_API: GLES
1352 GPU_VERSION: virgl-gles
1357 virgl-gles3-on-gles:
1359 VIRGL_HOST_API: GLES
1360 GPU_VERSION: virgl-gles
1365 virgl-gles31-on-gles:
1367 VIRGL_HOST_API: GLES
1368 GPU_VERSION: virgl-gles
1370 - virgl-gles31-on-gl
1377 BM_KERNEL: /lava-files/cheza-kernel
1378 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
1379 GPU_VERSION: freedreno-a630
1380 BM_DTB: /lava-files/db820c.dtb
1382 DEQP_EXPECTED_RENDERER: FD630
1384 - google-freedreno-cheza
1386 - ./install/bare-metal/cros-servo.sh
1390 - .baremetal-deqp-test
1397 - .baremetal-deqp-test
1404 - .baremetal-deqp-test
1411 - .baremetal-deqp-test
1416 .arm64_a630_gles_others:
1418 - .baremetal-deqp-test
1421 BARE_METAL_TEST_SCRIPT: "/install/bare-metal/arm64_a630_gles_others.sh"
1425 - .baremetal-deqp-test-freedreno-vk
1430 # Force binning in the main run, which makes sure we render at
1431 # least 2 bins. This is the path that impacts the most different
1432 # features. However, we end up with flaky results in
1433 # dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
1436 # Do a separate sysmem pass over the testcases that really affect sysmem
1437 # rendering. This is currently very flaky, leave it as an option for devs
1438 # to click play on in their branches.
1439 .arm64_a630_vk_sysmem:
1441 - .baremetal-deqp-test-freedreno-vk
1445 DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
1446 GPU_VERSION: freedreno-a630-bypass
1454 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1455 # Excluding various features we don't support to keep runtime down in
1456 # deciding that they aren't supported.
1458 # Also excluding some particularly slow tests (gl-1.3-texture-env takes 100s)
1460 # Known flakes in the list are between "arb_blend_func_extended" and
1463 --process-isolation false
1464 -x arb_blend_func_extended-fbo-extended-blend-pattern_gles2
1467 -x copyteximage-border
1470 -x getteximage-simple
1478 -x egl_ext_platform_device
1479 -x ext_timer_query@time-elapsed
1480 -x glx-multithread-clearbuffer
1481 -x glx-multithread-shader-compile
1484 -x arb_gpu_shader_fp64
1485 -x arb_gpu_shader_gpu5
1486 -x arb_gpu_shader_int64
1494 -x gl-1.3-texture-env
1495 PIGLIT_PLATFORM: gbm
1497 # Takes ~20 minutes, so manual-only until we can sort out runtime.
1498 .arm64_a630_piglit_gl:
1500 - .arm64_a630_piglit
1503 PIGLIT_PROFILES: quick_gl
1504 PIGLIT_RESULTS: freedreno-a630-gl
1506 .arm64_a630_piglit_shader:
1508 - .arm64_a630_piglit
1510 PIGLIT_PROFILES: quick_shader
1511 PIGLIT_RESULTS: freedreno-a630-shader
1517 # Cancel job if a newer commit is pushed to the same branch
1522 name: "mesa_${CI_JOB_NAME}"
1527 - results/*.shader_cache
1529 junit: results/junit.xml
1537 BM_ROOTFS: /lava-files/rootfs-arm64
1538 FLAKES_CHANNEL: "#freedreno-ci"
1540 - ./install/bare-metal/fastboot.sh
1545 - google-freedreno-db410c
1547 .baremetal-deqp-test:
1549 BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
1550 DEQP_SKIPS: deqp-default-skips.txt
1551 DEQP_PARALLEL: 0 # Default to number of CPUs
1553 .baremetal-deqp-test-freedreno-vk:
1555 - .baremetal-deqp-test
1558 VK_DRIVER: freedreno
1564 BM_KERNEL: /lava-files/Image.gz
1565 BM_DTB: /lava-files/apq8016-sbc.dtb
1566 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
1567 GPU_VERSION: freedreno-a307
1568 DEQP_EXPECTED_RENDERER: FD307
1572 - .baremetal-deqp-test
1577 # Fractional run, single threaded, due to flaky results
1580 - .baremetal-deqp-test
1587 # Fractional runs with debug options. Note that since we're not
1588 # hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
1589 .arm64_a306_gles3_options:
1591 - .baremetal-deqp-test
1596 # Check that the non-constbuf UBO case works.
1597 - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
1603 BM_KERNEL: /lava-files/db820c-kernel
1604 BM_DTB: /lava-files/db820c.dtb
1605 # Disable SMP because only CPU 0 is at a freq higher than 19mhz on
1606 # current upstream kernel.
1607 BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 nosmp"
1608 FDO_CI_CONCURRENT: 1
1609 GPU_VERSION: freedreno-a530
1610 DEQP_EXPECTED_RENDERER: FD530
1612 - google-freedreno-db820c
1616 - .baremetal-deqp-test
1624 - .baremetal-deqp-test
1642 BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
1643 # SMP is disabled in the current kernels for db820c.
1644 FDO_CI_CONCURRENT: 1
1645 # Excluding for flakes in multisample (MSAA fails covered well by deqp, we
1646 # can enable it once we stabilize that.) and other flakes from
1647 # atomic_counters through userclip in the list.
1649 # Also excluding some particularly slow tests (gl-1.3-texture-env)
1651 # Check fastboot.sh for more piglit tests being excluded!
1653 --process-isolation false
1655 -x gl-1.0-blend-func
1656 -x glsl-1.30@execution@clipping
1658 -x arb_texture_multisample
1659 -x ext_framebuffer_multisample
1661 -x egl_ext_platform_device
1662 -x ext_timer_query@time-elapsed
1663 -x glx-multithread-clearbuffer
1664 -x glx-multithread-shader-compile
1668 -x arb_gpu_shader_fp64
1669 -x arb_gpu_shader_int64
1670 -x arb_tessellation_shader
1679 -x gl-1.3-texture-env
1680 PIGLIT_PLATFORM: gbm
1682 # Takes ~25 minutes, so manual-only until we can sort out runtime.
1683 .arm64_a530_piglit_gl:
1685 - .arm64_a530_piglit
1688 PIGLIT_PROFILES: quick_gl
1689 PIGLIT_RESULTS: freedreno-a530-gl
1691 .arm64_a530_piglit_shader:
1693 - .arm64_a530_piglit
1695 PIGLIT_PROFILES: quick_shader
1696 PIGLIT_RESULTS: freedreno-a530-shader
1698 vc4-rpi3-gles2:armhf:
1705 BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
1706 BM_BOOTFS: /boot/armhf
1707 BM_KERNEL_MODULES: vc4
1708 BM_ROOTFS: /lava-files/rootfs-armhf
1709 BM_ROOTFS_EXTRA: /modules/armhf
1710 GPU_VERSION: vc4-rpi3
1711 DEQP_EXPECTED_RENDERER: VC4
1714 - ./install/bare-metal/poe-powered.sh
1722 stage: software-renderer
1740 ACO_DEBUG: validateir,validatera
1742 # Can only be triggered manually on personal branches because RADV is the only
1743 # driver that does Vulkan testing at the moment.
1744 radv_polaris10_vkcts:
1750 GPU_VERSION: radv-polaris10
1760 - export RADV_FORCE_FAMILY="pitcairn"
1761 - ./install/fossilize-runner.sh
1763 - export RADV_FORCE_FAMILY="bonaire"
1764 - ./install/fossilize-runner.sh
1766 - export RADV_FORCE_FAMILY="polaris10"
1767 - ./install/fossilize-runner.sh
1769 - export RADV_FORCE_FAMILY="gfx900"
1770 - ./install/fossilize-runner.sh
1772 - export RADV_FORCE_FAMILY="gfx1010"
1773 - ./install/fossilize-runner.sh
1774 # Sienna Cichlid (GFX10)
1775 - export RADV_FORCE_FAMILY="gfx1030"
1776 - ./install/fossilize-runner.sh